gpt4 book ai didi

html - 证明内容 flex-end 不适用于 IE

转载 作者:太空宇宙 更新时间:2023-11-03 20:04:55 25 4
gpt4 key购买 nike

Flex-end 适用于 chrome 和 firefox,但不适用于 ie,请执行以下代码

.flex-container {  display: flex;
flex-wrap: nowrap;
background-color: DodgerBlue; flex-direction: column;flex-flow:column;
justify-content: flex-end;height:100px
}
<h1>Flexible Boxes</h1>

<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</div>

<p>Try to resize the browser window.</p>
<p>A container with "flex-wrap: nowrap;" will never wrap its items.</p>
<p><strong>Note:</strong> Flexbox is not supported in Internet Explorer 10 or earlier versions.</p>

最佳答案

IE 似乎使用 justify-content 当出现溢出时 以不同方式对齐元素。它不仅发生在 flex-end 上,使用 center 时也会遇到同样的情况。任何会造成顶部溢出的值都不会按预期工作。

在行方向也会发生。任何会产生左溢出的属性都将不起作用。

对齐无效的示例:

.container {
display:inline-flex;
height:50px;
width:50px;
margin:50px;
border:2px solid green;
}
.container span {
flex-shrink:0;
width:200%;
background:red;
}

.alt {
flex-direction:column;
}

.alt span {
height:200%;
width:auto;
}
<div class="container" style="justify-content:flex-end;">
<span></span>
</div>

<div class="container" style="justify-content:center;">
<span></span>
</div>

<div class="container alt" style="justify-content:flex-end;">
<span></span>
</div>

<div class="container alt" style="justify-content:center;">
<span></span>
</div>

我很惊讶这么说,但似乎 IE 在这些情况下做得很好,因为它防止了不必要的溢出,这可能会产生如本问题 Centered flex-container grows beyond top 中所述的问题。还有这个Can't scroll to top of flex item that is overflowing container

考虑到这一点,很难说这是不是一个错误。这可能是设计使然,IE 团队决定避免不良 溢出。 1


这就是说,这里有一个hack,它使用了一些负边距,可以让您在 IE 上获得所需的行为:

.flex-container {
display: flex;
flex-wrap: nowrap;
background-color: DodgerBlue;
flex-direction: column;
flex-flow: column;
justify-content: flex-end;
height: 100px
}
.flex-container > div:first-child {
margin-top:-100vh; /*put a very big margin here*/
}
<h1>Flexible Boxes</h1>

<div class="flex-container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</div>

同样的技巧适用于前面的例子:

.container {
display:inline-flex;
height:50px;
width:50px;
margin:50px;
border:2px solid green;
}
.container span {
flex-shrink:0;
width:200%;
background:red;
}

.alt {
flex-direction:column;
}

.alt span {
height:200%;
width:auto;
}
<div class="container" style="justify-content:flex-end;">
<span style="margin-left:-100%;"></span>
</div>

<div class="container" style="justify-content:center;">
<span style="margin: 0 -100%;"></span>
</div>

<div class="container alt" style="justify-content:flex-end;">
<span style="margin-top:-100%;"></span>
</div>

<div class="container alt" style="justify-content:center;">
<span style="margin:-100% 0;"></span>
</div>

1:我暂时没有任何官方证明。

关于html - 证明内容 flex-end 不适用于 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058700/

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