iOS中的Flex图像,使图像宽度均匀

Posted

技术标签:

【中文标题】iOS中的Flex图像,使图像宽度均匀【英文标题】:Flex images in iOS, make images even width 【发布时间】:2019-06-28 21:05:12 【问题描述】:

如何在 ios 中实现这一点?在 Firefox 中它可以工作,但找不到适用于 iPad 的解决方案。

<style>
#products 
    display: flex;

#products img 
    width: auto !important;
    height: auto !important;

</style>

<div id="products">
<img src="https://nomadweb.design/img/imac-frame-ilioslighting.jpg"   />
<img src="https://nomadweb.design/img/phone-frame-ilioslighting.jpg"   />
<img src="https://nomadweb.design/img/imac-frame-mallachandcompany.jpg"   />
<img src="https://nomadweb.design/img/phone-frame-mallachandcompany.jpg"   />
<img src="https://nomadweb.design/img/imac-frame-bighousesound.jpg"   />
<img src="https://nomadweb.design/img/phone-frame-bighousesound.jpg"   />
</div>

这是它在 Firefox 中的外观 你如何在 iOS 中做到这一点?

这是它在 Firefox 中的响应方式,希望在 iOS 中实现相同的效果。

【问题讨论】:

它在 ios 上的显示效果如何? 图片以全宽显示,因此太宽了。 你试过display: -webkit-box;display: -webkit-flex;吗? 【参考方案1】:

方法 1:确保在标记中设置图像的固有尺寸(自然大小),以保持纵横比。

#products 
  display: flex;


#products img 
  min-width: 0;
  max-width: 100%;
  height: 100%;
<div id="products">
  <img src="https://i.imgur.com/5fhlNOd.jpg"  >
  <img src="https://i.imgur.com/SLZv3Yu.jpg"  >
  <img src="https://i.imgur.com/eQ6LawW.jpg"  >
  <img src="https://i.imgur.com/0W3B4ce.jpg"  >
  <img src="https://i.imgur.com/7jGyI95.jpg"  >
  <img src="https://i.imgur.com/oFhKzAZ.jpg"  >
</div>

方法2:为每张图片添加一个包装器,尺寸是可选的。

#products 
  display: flex;


#products img 
  width: 100%;
  height: auto;
<div id="products">
  <div><img src="https://i.imgur.com/5fhlNOd.jpg"></div>
  <div><img src="https://i.imgur.com/SLZv3Yu.jpg"></div>
  <div><img src="https://i.imgur.com/eQ6LawW.jpg"></div>
  <div><img src="https://i.imgur.com/0W3B4ce.jpg"></div>
  <div><img src="https://i.imgur.com/7jGyI95.jpg"></div>
  <div><img src="https://i.imgur.com/oFhKzAZ.jpg"></div>
</div>

【讨论】:

【参考方案2】:

我找到了一个可行的解决方案 - 如果您不介意稍微更改标记,那么我建议将每个图像包装在另一个 div 中,设置其 min-width: 0 并让图像完全包含包含 div 的内容:

<style>
#products 
    display: flex;

#products img 
    width: 100% !important;
    height: auto !important;

.product 
  min-width: 0;

</style>

<div id="products">
<div class="product"><img src="https://nomadweb.design/img/imac-frame-ilioslighting.jpg"   /></div>
<div class="product"><img src="https://nomadweb.design/img/phone-frame-ilioslighting.jpg"   /></div>
<div class="product"><img src="https://nomadweb.design/img/imac-frame-mallachandcompany.jpg"   /></div>
<div class="product"><img src="https://nomadweb.design/img/phone-frame-mallachandcompany.jpg"   /></div>
<div class="product"><img src="https://nomadweb.design/img/imac-frame-bighousesound.jpg"   /></div>
<div class="product"><img src="https://nomadweb.design/img/phone-frame-bighousesound.jpg"   /></div>
</div>

此解决方案在 Firefox、Chrome(Linux 上的桌面)和 iOS Safari 版本 11(在 browserstack 上检查)上有效并经过测试。

【讨论】:

您是在电脑还是移动设备(即:ipad 或 iphone)上测试 Firefox 和 Chrome? 我在桌面 Chrome 和桌面 Firefox(都在 Linux 上)以及移动 Safari o iOS 版本 11 在 browserstack 上进行了测试。 好的。您是否尝试过在元标记中设置设备宽度? 我认为这没有必要,因为它在 codepen 和 *** sn-p 引擎上都可以正常工作,而且它们都没有设置元标记。它应该没有任何效果。【参考方案3】:

添加了flex-wrap: wrap;,如果它不适合div,它将在下一行显示图像。希望这可以帮助。谢谢

#products 
    display: flex;
  flex-wrap: wrap;
  justify-content:center;

#products img 
    width: auto !important;
    height: auto !important;
<div id="products">
<img src="https://nomadweb.design/img/imac-frame-ilioslighting.jpg"   />
<img src="https://nomadweb.design/img/phone-frame-ilioslighting.jpg"   />
<img src="https://nomadweb.design/img/imac-frame-mallachandcompany.jpg"   />
<img src="https://nomadweb.design/img/phone-frame-mallachandcompany.jpg"   />
<img src="https://nomadweb.design/img/imac-frame-bighousesound.jpg"   />
<img src="https://nomadweb.design/img/phone-frame-bighousesound.jpg"   />
</div>

【讨论】:

这不是想要的结果,需要将所有图像放在 1 行,均匀放置。 % 中添加图像width。并给外divwidth:100% 使每张图像的宽度相同并扭曲比例。 iOS 或 Safari 好像不支持自动宽度? @drooh 你想为每张图片设置不同的尺寸吗?? 是的,在 Firefox 和 Chrome 中它是这样工作的。它保持图像比例

以上是关于iOS中的Flex图像,使图像宽度均匀的主要内容,如果未能解决你的问题,请参考以下文章

是否可以随着容器宽度的增加均匀分布图像,同时增加或减少每行中的项目数?

Flex Container 中的子 Div 的宽度百分比不均匀

Flex 4 文件参考选定的图像文件尺寸(宽度和高度)

Internet Explorer中的图像缩放使图像被宽度按下

如何根据swift 4或5中的图像大小使图像视图高度和宽度(纵横比)动态? [关闭]

在 Internet Explorer 中包含 100% 宽度图像的 flex 子框的高度不正确