ios safari 中的 flex 项目离开屏幕

Posted

技术标签:

【中文标题】ios safari 中的 flex 项目离开屏幕【英文标题】:flex items going off screen in ios safari 【发布时间】:2017-12-01 21:47:29 【问题描述】:

我需要连续三个街区。右边的两个将具有固定的宽度。左边的块是文本块,应该是灵活的。

我的代码适用于 Edge、Firefox 和 Chrome 中的所有分辨率,但不适用于 ios Safari。

这是真实 iPhone 的屏幕截图。你可以看到它看起来像一个垃圾。最后 2 块超出了屏幕,但我不明白为什么。

.container 
  display: flex;
  justify-content: flex-end;


.left 
  border: 1px solid #808080;


.center 
  border: 1px solid #000;
  padding: 10px;
  margin: 5px;


.right 
  border: 1px solid #008000;
<div class="container">
  <div class="left">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt doloribus, nihil deleniti expedita labore porro commodi consequuntur, corporis delectus nam, ipsa? Eius inventore est molestias ex, eos odio. Consequuntur, voluptatibus!</div>
  <div class="center">KK</div>
  <div class="right">18:42</div>
</div>

codepen:https://codepen.io/quinnvalor/pen/mwpPaz

【问题讨论】:

【参考方案1】:

弹性容器的初始设置是flex-shrink: 1。这意味着弹性项目可以缩小。

显然,Safari 处理这种行为的方式与其他浏览器不同。

对于跨浏览器解决方案,请覆盖默认行为。

flex-shrink: 0 添加到固定宽度的项目中。

.container 
  display: flex;
  justify-content: flex-end;

.left 
  border: 1px solid #808080;

.center 
  border: 1px solid #000;
  padding: 10px;
  margin: 5px;
  flex-shrink: 0;  /* NEW */

.right 
  border: 1px solid #008000;
  flex-shrink: 0;  /* NEW */
<div class="container">
     <div class="left">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Sunt doloribus, nihil deleniti expedita labore porro commodi consequuntur, corporis delectus nam, ipsa? Eius inventore est molestias ex, eos odio. Consequuntur, voluptatibus!</div>
  <div class="center">KK</div>
      <div class="right">18:42</div>
</div>

https://codepen.io/anon/pen/JJMEGp

【讨论】:

以上是关于ios safari 中的 flex 项目离开屏幕的主要内容,如果未能解决你的问题,请参考以下文章

显示 flex 在 Chrome 和 Safari 中的行为不同

flex-item 中的图像在 Safari、iOS 和 Firefox 中重写了“max-width: none”

iOS Safari 中的垂直居中 flexbox 覆盖

flex div 中的 SVG 图像在 Safari 和 Chrome 中的显示方式不同

在 Safari 中重叠 CSS flexbox 项目

iOS 版 Safari 上垂直弹性框中的最后一个元素在横向模式下被裁剪