css - parent 按钮上的 Flexbox 不适用于移动 chrome/safari 中的 child 伪选择器内容

标签 css flexbox

这是一个非常具体的问题......但是当父级是移动 safari 和 chrome 中的按钮时,flexbox 规则似乎不适用于伪选择器元素。

这里有一个代码笔可以清楚地证明这一点:http://codepen.io/anon/pen/zKaRXY

在桌面浏览器中,两个 block 的中间都应该有一个“t”。在移动浏览器中,只有一个在中间有这个“t”。

我已经将完整的计算样式从“div”复制并粘贴到“按钮”,但由于某种原因它仍然失败。

<div class="container">
  <button class="button">
    <div class="child"></div>
  </button>

  <div class="button">
    <div class="child"></div>
  </div>
</div>



.container {
  width: 900px;
  margin: 50px auto;
  font-family: "Arial", sans-serif;
}

.button {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 300px;
  background: #dbe8ff;
  width: 500px;
}


.child:before {
  content: "t";
  flex: 0 1 auto;
  background: #fff09b;
}

最佳答案

不仅仅是在移动设备上...您当前的布局从未将 flex 样式应用于伪元素。

伪元素是声明它们的元素的子元素。在这种情况下,它们是 .child 的子代。所以,他们是按钮的孙子,你的风格不起作用。

如果你想以这种方式设置伪类的样式,你必须在 child 上设置 display:flex。

之所以看到t居中,是因为child的维度调整为pseudo的维度,所以这个只能居中。

关于css - parent 按钮上的 Flexbox 不适用于移动 chrome/safari 中的 child 伪选择器内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40014357/

相关文章:

css - 管理 LTE 内容高度,错误?怎么修?

css - 我如何使这个旋转的立方体更灵敏?

html - 如何让堆叠的div宽度相同?

html - Flexbox 布局,左侧有两个元素,右侧有一个元素

html - 水平对齐 youtube 响应式 youtube 视频

html - 水平列表的响应式分隔符

html - Bootstrap 页脚在缩放时上升

javascript - 按属性更改光标

html - Flexbox 在 Div 中收缩图像以用于列堆叠图像

html - 网站上表格列的重新排序