Safari图像大小自动高度CSS

Jar*_*red 3 css css3

我正在最新版本的Safari for Windows 7中测试此问题.

问题是这个代码适用于所有其他浏览器但仍可以使用:

 <style type="text/css">
    .userImg { height: 100%; width: 100%; }
    .imgContainer { height: auto; width: 150px; }
 </style>

 <div class="imgContainer">
    <img id="img" class="userImg" src="TemplateFiles/Hydrangeas.jpg" alt="" />
 </div>
Run Code Online (Sandbox Code Playgroud)

有没有人知道如何使用CSS在Safari中按比例调整图像大小?

谢谢!

Dav*_*ráč 111

对于那些需要使用 height auto并且图像的父级设置为 display: flex 的人,这个技巧会有所帮助。

image { align-self: flex-start; }
Run Code Online (Sandbox Code Playgroud)

如果你的图像父级设置了 flex-direction: column,你需要这样做。

image { justify-self: flex-start; }
Run Code Online (Sandbox Code Playgroud)

  • 2020 年,你也可以在 Safari 中使用灵活的图像来实现这一目标,大卫! (7认同)
  • 太棒了,我刚刚遇到了这个问题,解决方案是你昨天对 8 年前的问题的回答。这可能是 Safari 中的一个新错误吗? (5认同)
  • 哈哈,我想时机不错。**但我不会说这是一个错误。** 众所周知,Safari 在许多情况下的行为与其他已知浏览器不同,但这些不是错误。当您设置显示柔性时,它还会为其子级分配一些其他属性。**align-items** 的 flex childs 的初始值为 **stretch**。**我的猜测**是,由于这个原因,图像可能会忽略您设置的高度,然后纵横比就会被破坏。 (4认同)
  • 谢谢@DavidVoráč!我会付钱给任何能告诉我*为什么* Safari 表现得如此令人费解的方式的人。它符合规范吗?Safari 是一款我会庆祝被 Google 的 Blink 帝国吞并的浏览器。 (4认同)

小智 7

对于那些需要使用height auto 的人,您也可以尝试使用以下方法:

.userImg{
    object-fit: contain;
}
Run Code Online (Sandbox Code Playgroud)


j08*_*691 6

只需在图像上设置宽度即可.浏览器将按比例自动缩放图像.

.userImg { width: 100%; }
.imgContainer { height: auto; width: 150px; }?
Run Code Online (Sandbox Code Playgroud)

  • 在 Safari iOS 上,它不会按比例缩放:| (8认同)