通常,在CSS中,当父级和最后一个子级具有边距时,这些边距会折叠以创建单个边距。例如
article {
margin-bottom: 20px
}
main {
background: pink;
margin-bottom: 20px;
}
footer {
background: skyblue;
}
<div id="container">
<main>
<article>
Item 1
</article>
<article>
Item 2
</article>
</main>
<footer>Footer</footer>
</div>
如您所见,即使20px
在article
和main
标记上都指定了的边距,您也只能20px
在最后 一篇文章 和 页脚 之间得到一个边距。
但是,当使用 flexbox 时,我们40px
在上一个 文章 和 页脚 之间 留有 边距- 20p
从文章到main
的全边距为x,20px
从main到 footer的 边距为全x 。
#container {
display: flex;
flex-direction: column;
}
article {
margin-bottom: 20px
}
main {
background: pink;
margin-bottom: 20px;
}
footer {
background: skyblue;
}
<div id="container">
<main>
<article>
Item 1
</article>
<article>
Item 2
</article>
</main>
<footer>Footer</footer>
</div>
有没有一种方法可以使 flexbox的页 边距行为与非flexbox的 页 边距相同?
边距折叠是 块格式化上下文的功能。
在[ flex格式化环境中 没有边际崩溃。
3. Flex容器:flex
和inline-flex
display
值
一个伸缩容器为其内容建立一个新的伸缩格式上下文。这与建立块格式化上下文相同,除了使用Flex布局而不是块布局。例如,浮点数不会侵入flex容器,并且flex容器的边距不会随其内容的边沿收缩。
你好,我正在尝试使用flex均匀地分配额外的可用宽度的div框之间的图像之间的边距。我试过使用弹性基础:30%;然而,它不是均匀地分配图像的边距,而是将图像垂直地堆叠在彼此的顶部。 null null
主要内容:定义各个方向上的内边距,内边距简写形式内边距(padding)是指元素内容区与边框之间的区域,与外边距不同,内边距会受到背景属性的影响。您可以通过下面的属性来设置元素内边距的尺寸: padding-top:设置元素内容区上方的内边距; padding-right:设置元素内容区右侧的内边距; padding-bottom:设置元素内容区下方的内边距; padding-left:设置元素内容区左侧的内边距; padding:内边距属性的
主要内容:为元素设置外边距,外边距折叠元素的外边距(margin)是围绕在元素边框以外(不包括边框)的空白区域,这片区域不受 background 属性的影响,始终是透明的。 为元素设置外边距 默认情况下如果不设置外边距属性,HTML 元素就是不会有外边距,但也有例外的情况,因为浏览器会为一些 HTML 元素设置默认的外边距,例如 元素。您可以使用下面的属性来为 HTML 元素设置外边距: margin-top:设置元素上方的外边距;
我使用flexbox在桌面窗口屏幕中布局我的index.html,在一行中有两个div元素,在第二行中有一个长div元素,在第三行中有两个div元素,其中一个包含一个列表。我需要第一行和第三行中两个div元素之间的一些行间距。当我尝试在div元素上使用左边缘或右边缘时,div元素会相互折叠。 我试图改变每个div元素的宽度,但它们最终会互相折叠。我还尝试了在内容类上证明内容和对齐内容,但没有任何结
外边距会在元素外创建额外的空白区域,这个区域不能放置其他元素。因此,大多数情况下,普通流中都是通过外边距来控制元素之间的距离,使元素间出现间隔。 外边距默认是透明的,在这个区域中可以看到父元素的背景。也不能通过任何属性,来为外边距设置颜色,或让其不透明。但是,可以通过 margin属性来设置外边距的宽度,其值可以是百分比、长度值、或 auto。 由于外边距也是可选的,默认值是 0。所以,如果没有显