CSS中上下margin的传递和折叠

技术CSS中上下margin的传递和折叠 CSS中上下margin的传递和折叠CSS中上下margin的传递和折叠
1.上下margin传递
1.1.margin-top传递为什么会产生上边距传递
块级

CSS中上下边距的转移和折叠

CSS中上下margin的传递和折叠

1.上下margin传递

1.1.margin-top传递

为什么会发生最高利润转移?

块级元素的顶部线父元素的顶部线,重叠,那么这个块级元素的边距顶值将被传递给父元素。

示例:设置内盒边距-top : 20px;参考{

宽度: 100 px;

高度: 100像素;

背景-color : # f00;

color: # fff

}。方框{

宽度: 200 px;

高度: 200 px;

背景-color : # 0f 0;

}。内部{

宽度: 100 px;

高度: 100像素;

背景色: # 00f;

边距-top : 20px;

}

Div class='reference '引用框/div

div class='box '

div class='inner'/div

/div

Run:内部页边距的值被传递到框中。

1.2.margin-bottom传递

为什么会发生底部边距转移?

块级元素的底部线父元素的底部线父元素的高度是auto,重叠,那么这个块级元素的边距底值将被传递给父元素。

示例:为内盒设置边距-bottom : 20px;并将height: auto设置为父元素;方框{

宽度: 200 px;

height: auto/*将自动设置为父元素的高度,或者不设置高度。默认为自动*/

背景-color : # 0f 0;

}。内部{

宽度: 100 px;

高度: 100像素;

背景色: # 00f;

边距-bottom : 20px;

color: # fff

}。参考{

宽度: 100 px;

高度: 100像素;

背景-color : # f00;

color: # fff

}

div class='box '

div class='inner'inner/div

/div

Div class='reference '引用框/div

Run:将内部页边空白的值传递给box。

1.3.如何防止出现传递问题

为父元素设置顶部填充或底部填充,以防止顶部线条或底部线条重叠。

将边框设置到父元素可以解决边距转移的问题;

触发BFC(块格式上下文),简单理解为为父元素设置一个附魔,以防止上下页边距被忽略(最佳解决方案)。有以下几种方法可以触发BFC:

添加浮点(浮点的值不能为无);

设置一个不可见的溢出属性(除了可见,可以使用其他属性值,如隐藏、自动、滚动等。);

设置位置(位置(位置的值不能是静态的或相对的);

将显示值设置为内嵌块、表格单元格、flex、表格标题或内嵌flex;

2.上下margin折叠

边距崩溃,也称为外边距崩溃。两个垂直相邻的边距(上边距、下边距)可以合并成一个边距。但是水平边距(左边距、右边距)永远不会折叠。

2.1.兄弟块级元素之间上下margin折叠

示例:将box1的底部边距设置为40px,将box2的顶部边距设置为20px。

. box1 {

宽度: 100 px;

高度: 100像素;

背景-color : # f00;

边距-底部: 40px;

}

. box2 {

宽度: 100 px;

高度: 100像素;

背景-color : # 0f 0;

边距-top : 20px;

}

div class='box1'box1/div

div class='box2'box2/div

结果:两个盒子之间的距离为40px。

2.2.父子块级元素之间上下margin折叠

示例:内部将上边距设置为40px,父元素框将上边距设置为20px。参考{

宽度: 100 px;

高度: 100像素;

背景色: # 00f;

color: # fff

}。方框{

宽度: 200 px;

高度: 200 px;

背景-color : # f00;

边距-top : 20px;

}。内部{

宽度: 100 px;

高度: 100像素;

背景-color : # 0f 0;

边距-top : 40px;

}

Div class='reference '引用框/div

div class='box '

div class='inner'inner/div

/div

结果:上边距为40px。

2.3.总结

父子块级元素之间上下边距折叠的原因是,inner将上边距传递给了父元素框,然后将父元素框与其自己的上边距进行了比较。

折叠后的最终计算规则:比较两个值,取较大的值;

如果要防止上下页边距折叠,只能设置其中一个;

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/155864.html

(0)

相关推荐

  • 数据结构index是什么(数据库索引可以用hash实现吗)

    技术数据库中plan_hash_value有什么用这篇文章给大家分享的是有关数据库中plan_hash_value有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

    攻略 2021年12月13日
  • 怎么解决nginx php-cgi 自动关闭问题

    技术怎么解决nginx php-cgi 自动关闭问题这篇文章主要介绍“怎么解决nginx php-cgi 自动关闭问题”,在日常操作中,相信很多人在怎么解决nginx php-cgi 自动关闭问题问题上存在疑惑,小编查阅

    攻略 2021年10月26日
  • 怎么确认java项目能接收多少并发(栈和队列java用什么实现)

    技术Java队列数据结构的实现方法是什么这篇文章主要介绍“Java队列数据结构的实现方法是什么”,在日常操作中,相信很多人在Java队列数据结构的实现方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法

    攻略 2021年12月16日
  • mysql数据库误删除后怎么办

    技术mysql数据库误删除后怎么办小编给大家分享一下mysql数据库误删除后怎么办,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,要确保mysql开启了binlog日志功能在/etc/my.cnf文

    攻略 2021年11月2日
  • 使用SqlBulkCopy时为注意Sqlserver表中使用缺省值的列的示例分析

    技术使用SqlBulkCopy时为注意Sqlserver表中使用缺省值的列的示例分析本篇文章给大家分享的是有关使用SqlBulkCopy时为注意Sqlserver表中使用缺省值的列的示例分析,小编觉得挺实用的,因此分享给

    攻略 2021年12月4日
  • vue中如何实现后台进程定时爬取头条文章

    技术vue中如何实现后台进程定时爬取头条文章这篇文章将为大家详细讲解有关vue中如何实现后台进程定时爬取头条文章,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

    攻略 2021年11月24日