1、盒模型计算
offsetWidth = (内容宽度+内边距+边框) 无外边距
#div1{
width: 100px;
padding: 10px;
border: 1px solid #ccc;
margin: 10px;
}
div1的offsetWidth为 1+10+100+10+1=122px
添加 box-sizing:border-box 后width就是整个宽度
#div2{
width: 100px;
padding: 10px;
border: 1px solid #ccc;
margin: 10px;
box-sizing:border-box;
}
div2的offsetWidth为 100px = 1+10+78+10+1
2、margin纵向重叠
相邻元素的margin-top和margin-bottom会发生重叠,空白标签也会重叠也会被忽略。
<body>
<style>
p{
font-size: 16px;
line-height: 1;
margin-top: 10px;
margin-bottom: 15px;
}
</style>
<p>AAA</p>
<p></p>
<p></p>
<p></p>
<p>BBB</p>
</body>
重叠后取最大值所以为15px
3、margin负值问题
margin-top和marginleft 负值,元素向上、向左移动
margin-right负值,右侧元素左移,自身不受影响
margin-bottom负值,下方元素上移,自身不受影响
4、BFC理解与应用
什么是BFC?如何应用
- block format context 块级格式化上下文
- 一块独立渲染区域,内部元素的渲染不会影响边界以外的元素
形成BFC的常见条件
- float不是none时
- position是absolute或fixed
- overflow不是visible
- display是flex、inline-block等
BFC的常见应用
清除浮动
1.添加新元素
clear{
clear:both
}
2.对父元素添加伪元素
container::after{
content:'',
display:block,
height:0,
c;ear:both
}
3.对父元素添加overflow:hidden