【问题标题】:Image Fit and Positioning Compatibility Across Browsers跨浏览器的图像适合和定位兼容性
【发布时间】:2023-04-08 15:48:01
【问题描述】:

我创建了一个 html/javascript/css 页面,该页面在“轮播”中显示照片,用户可以在其中单击左右箭头来更改照片。轮播本身,即父/容器,高 500 像素,宽 100% 的父 div。里面的图像应该是最大 100% 宽和最大 100% 高。换句话说,无论纵横比如何,它都会将自己融入 imgCarousel。

这适用于大多数浏览器。我已经确认它可以在 IE、Edge、Chrome 和 Firefox 中运行。但是,它在 Safari 中不起作用。我个人无法使用 Mac,但我知道它在 Safari 中不起作用,因为其他人已经查看了我之前的页面。它也不适用于某些 android 移动浏览器(尽管它适用于 Android Chrome)。

似乎在这些不起作用的浏览器中,顶部实际上并未设置为 50%,但转换仍然正常工作。这是基于视觉检查。此外,图像的大小似乎不正确。延伸到全宽,高度延伸到100%以上;

很遗憾,我无法在这些浏览器上使用开发人员工具进行测试,因为我无法使用 Mac,而且我似乎无法找到可用于相同容量的移动浏览器的开发人员工具。

如果此处不违反协议,我可以链接到相关页面。

我做了一些研究,看看是否存在任何兼容性问题/修复,但我在这项研究中没有成功。如果有人知道我可以包含兼容性修复程序的任何方式,请告诉我。

谢谢。

.imgCarousel {
    display: flex;
    justify-content: space-between;

    vertical-align: middle;

    height: 500px;
    background-color: black;
    text-align: center;
    margin: auto;
}

.imgCarousel img {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);

    max-height: 100%;
    max-width: 100%;
    object-fit: contain;

    cursor: pointer;

}

【问题讨论】:

  • 您能在 JSfiddle、CodePen、sn-p 中发布轮播的演示吗?还是只是一个网站链接?
  • 你可以在你的 windows box 上安装 safari。
  • 您可能缺少transform 属性的这些浏览器的浏览器前缀。
  • 还要确保他们的 safari 是最新的。发现用户拥有古老版本的 safari 对我来说并不少见。如果是这样,它可能不支持其中一些 css 属性。您还应该将您知道的属性放在声明中更高的位置,因为某些解析器在遇到错误时会停止解析声明。
  • 网站链接在这里:link。此外,似乎不再支持 Windows 版本的 Safari。当我从第 3 方位置下载时,许多更现代的 html 和 css 组件都不起作用。

标签: css image cross-browser


【解决方案1】:

尝试添加这个列表,包括歌剧前缀:

    transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -o-transform: translateY(-50%);

【讨论】:

  • 谢谢。我已经进行了调整。不幸的是,它并没有解决问题(至少在手机上),但包含在代码中还是很好的。我无法在 Safari 上确认。
猜你喜欢
  • 1970-01-01
  • 2011-06-18
  • 2012-08-09
  • 2014-11-30
  • 2011-03-21
  • 1970-01-01
  • 2011-06-07
  • 2011-03-10
相关资源
最近更新 更多