sách gpt4 ăn đã đi

css - Flex-box 忽略包裹的 child 的边距(边距折叠)

In lại 作者:技术小花猫 更新时间:2023-10-29 11:20:09 25 4
mua khóa gpt4 giày nike

给定以下 HTML:



A




B


和以下 CSS(无前缀):

.outer {
display: box;
box-orient: vertical;

chiều cao: 100px;
chiều rộng: 100px;

background: red;
margin: 10px;
}

.inner {
height: 50px;
margin-top: 10px;
background: green;
}

A and B

đây là mộtCodePen .

MỘT包裹在

中所以它的边距被忽略了。

问:如何实现B MỘT 的行为(边距)与 flex 盒模型?

注意:div 包装器可以深入多层

定位:最新的 Chrome/Safari/iOS

非常感谢您的帮助!

编辑:感谢@JoséCabo,我想到了这个:

.outer {
hiển thị: flex;
flex-direction: cột;

chiều cao: 100px;
chiều rộng: 100px;

background: red;
margin: 10px;
}

.inner {
height: 50px;
margin-top: 10px;
background: green;
}

CodePen

Chrome : Mạ crôm

Safari : Safari

不幸的是,正如@cimmanon 所提到的,它在 Safari 中不起作用,所以我仍然需要一些帮助。

câu trả lời hay nhất

你看到的其实和Flexbox无关,而是所谓的margin collapse

.outer div {
border: 1px solid;
}

边框的添加防止边距塌陷。与其依赖边距,我建议在父容器上放置一个填充:

.outer {
padding-top: 10px;
}

ví dụ:

.wrapper {
background: #eef;
border: 1px solid darkgray;
}

.container {
hiển thị: flex;
flex-wrap: wrap;
margin: -1em;
}

.item {
flex-grow: 1;
margin: 1em;
viền: 1px màu đen đặc;
padding: 1em;
min-width: 6em;
}


<đầu>

JS Bin




item

item

item

item

item

item




现在,要覆盖所有前缀,您需要这样的东西:

.outer {
display: -moz-box;
display: -webkit-flexbox;
display: -ms-flexbox;
display: -webkit-flex;
hiển thị: flex;
-moz-box-orient: vertical;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: cột;
chiều cao: 100px;
chiều rộng: 100px;
background: red;
margin: 10px;
}

关于css - Flex-box 忽略包裹的 child 的边距(边距折叠),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057411/

25 4 0
Xem sitemap của VNExpress