gpt4 book ai didi

css - IE 10/11 flex 子溢出对齐的解决方法

转载 作者:行者123 更新时间:2023-11-28 08:35:34 25 4
gpt4 key购买 nike

如果 flex 容器有 justify-content: center,并且有一个比容器宽的 flex 子容器,则内容在除 IE10 和 IE11 之外的所有浏览器中保持居中(内容在两个方向上均等地溢出)。

在大多数浏览器中你会得到这个:

enter image description here

在 IE 10/11 中你得到这个:

enter image description here

我需要一种方法来在那些 IE 浏览器中实现居中布局,同时又不完全放弃 flexbox 方法。如有必要,我愿意接受 CSS hack IE 解决方法。

这是一个例子:

.wrap {
width: 100%;
height: 100%;
}

.layer {
display: -ms-flexbox;
display: flex;
-ms-flex-pack: center;
justify-content: center;
-ms-flex-align: center;
align-items: center;
margin: 0 auto;
width: 100px;
height: 100px;
border: 1px solid blue;
}

.layer-inner {
font-size: 20px;
width: auto;
white-space: nowrap;
line-height: 1em;
}
<div class="wrap">
<div class="layer">
<span class="layer-inner">
This overlowing text should be centered
</span>
</div>
</div>

最佳答案

我想通了。在 IE 10/11 中,“justify-content”和“align-items”的行为不同。如果 child 在对齐内容轴上比容器大,那么 IE 10/11 将只使用“对齐内容:flex-start”行为。如果子项沿“align-items”轴大于容器,内容将根据“align-items”值正确对齐,即使子项溢出容器。

我的解决方案只是将“flex-direction: column”添加到下面的代码片段中:

.wrap {
width: 100%;
height: 100%;
}

.layer {
display: -ms-flexbox;
display: flex;
-ms-flex-direction: column;
flex-direction: column;
-ms-flex-pack: center;
justify-content: center;
-ms-flex-align: center;
align-items: center;
margin: 0 auto;
width: 100px;
height: 100px;
border: 1px solid blue;
}

.layer-inner {
font-size: 20px;
width: auto;
white-space: nowrap;
line-height: 1em;
}
<div class="wrap">
<div class="layer">
<span class="layer-inner">
This overlowing text should be centered
</span>
</div>
</div>

关于css - IE 10/11 flex 子溢出对齐的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42302289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com