2.16学习总结

margin相关问题及解决方案

兄弟元素

左右margin相加,上下margin取大值

父子元素

左右margin设置离父元素左右的距离,上下margin可能会传递给父元素

内联元素

上下的padding和margin都有效,但是不影响上下元素的布局,左右与块元素相同

外边距重叠问题

与父元素相邻子元素一个上/下的外边距,会传递到父元素

设置父元素:

解决方案1:给父元素设置display:flex

解决方案2:给父元素添加一个边框,此时要注意边框会撑大元素本身,所以此时需要添加box-sizing:border-box

解决方案3:通过设置父元素的padding来实现,此时会发生与添加边框一样的问题

解决方案4:设置父元素浮动,但父元素会脱离文档流

解决方案5:设置父元素绝对定位或固定定位,使父元素脱离文档流

解决方案6:设置父元素overflow值不为默认值(visible)

方案4、56是开启父元素的BFC

解决方案7:设置父元素一个伪元素选择器设置

.fa::before {

content:“”;

display:table;

}

与解决高度塌陷一起设置

.fa::before,

.fa::after{

content: "";

display: table;

clear: both;

}

设置子元素

解决方案1:给子元素设置浮动,此时margin:50px auto;auto失效

设置html页面:

解决方案1:在父与子元素之间添加一个table标签

水平布局:

               width+padding+border+margin<父元素的width

               1. width+padding+border+margin都设置了确定值

                  当小于父元素的width时,多余的部分给margin-right吸收

               2.当width不设置或者设置为auto值时,多余的部分有宽度吸收

                 当margin-left=auto,多余的部分由margin-left吸收

                 当margin-right=auto,多余的部分由margin-right吸收

               总结:当设置了auto就将多余的部分给它,注意能设置auto值的属性:width,margin-left,margin-right

               3.有二个属性设置auto时

                 width与margin-left/width和margin-right同时设置auto值时,对于部分有width吸收,margin-left/margin-right没有值

                 margin-left和margin-right同时设置为auto时,多余部分平分给左右外边距=》块元素的水平居中

               4.设置三个auto

                width与margin同时设置auto时,多余部分由宽度吸收

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值