gpt4 book ai didi

css - Chrome 没有正确覆盖 flex box 的 justify-content

转载 作者:行者123 更新时间:2023-11-28 10:00:32 26 4
gpt4 key购买 nike

我在 Chrome 40.0.2214.93 中遇到一个问题,如果我重写元素的 justify-content,我会得到一些意外的行为。

我在这里为此创建了一个 JS Fiddle: http://jsfiddle.net/n670tmeu/

html

<header id="top">
<div id="box1">
This is Box 1
</div>
<div id="box2">
This is Box 2
</div>
</header>

CSS

header {
background-color: #ccc;
width: 100%;
display: -webkit-flex;
display: -moz-flexbox;
display: -ms-flexbox;
display: flex;
-webkit-justify-content: flex-end;
-moz-justify-content: flex-end;
-ms-justify-content: flex-end;
justify-content: flex-end;
}

header#top {
-webkit-justify-content: space-between;
-moz-justify-content: space-between;
-ms-justify-content: space-between;
justify-content: space-between;
}

#box1, #box2 {
border-width: 1px;
border-style: solid;
border-color: red;
}

您会注意到更具体的 header#top 覆盖了 justify-content 但是在 Chrome 中它最终将第一个元素推送到 flex- end 位置然后为 space-between 添加额外的空间。

我已经在 FireFox 35.0.1 和 Safari 7.1.2 中尝试过,它们都可以正常工作。这是 Chrome 中的错误还是我做错了什么?

最佳答案

这是一个已知错误,已在最新的金丝雀版本 (42.0.2289.0) 中修复:

https://code.google.com/p/chromium/issues/detail?id=452606

与此同时,您可以使用 this jQuery 解决方法作为临时修复:

$('body *').each(function(i, el) {
var justifyContents = $(el).css('justify-content').split(' ');
var flexFlows = $(el).css('flex-flow').split(' ');
if (flexFlows[0] == 'row' && justifyContents.length > 1) {
if (justifyContents[0] == 'space-between' || justifyContents[0] == 'flex-start') {
$(el).css('justify-content', justifyContents[0]+' left');
} else if (justifyContents[0] == 'flex-end') {
$(el).css('justify-content', justifyContents[0]+' right');
}
}
});

关于css - Chrome 没有正确覆盖 flex box 的 justify-content,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28203658/

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