两种盒模型
- content-box 内容盒: 内容就是盒子的边界
- border-box 边框盒: 边框才是盒子的边界
举例说明:
<div class="content-box">
内容盒
</div>
<div class="border-box">
边框盒
</div>
.content-box {
margin:25px;
border: 5px solid red;
padding: 10px;
box-sizing: content-box;
width: 100px;
}
.border-box {
margin:25px;
border: 5px solid red;
padding: 10px;
box-sizing: border-box;
width:100px;
}
效果图:
虽然都设置了相同的宽度为100Px,但可以看到两种盒模型的宽度是不同的
内容盒的盒模型:只有内容宽度是100px,
边框盒的盒模型:padding + border + content = 100px
综上可得出公式:
- content-box: width = 内容宽度
- border-box: width = 内容宽度 + padding + border
请简述 CSS 盒模型是什么
CSS 盒模型有两种,一种是 content-box 一种是 border-box。
content-box 的宽度 width 表示内容区的宽度,不包含 padding 和 border;
border-box 的宽度 width 表示内容区 + padding + border 的总和。
一般优先使用border-box。
Margin合并
兄弟合并
第一个div的Margin-bottom (下外边距)会和第二个div的margin-top(上外边距)合并
父子合并
parent的上边距会和第一个孩子的上边距重合,parent的下边距会和最后一个孩子的下边距重合
这种margin合并只存在与上下外边距,左右外边距不会合并
取消Margin合并
对于兄弟合并: 用 display: inline-block;
对于父子合并:
- 给parent加 border
2. 给parent加 padding
3. 给parent加 overflow: hidden;
基本单位
长度单位
- px 像素
- em 相对于自身font-size的倍数
- 百分数
- 整数
- rem
- vw和vh
颜色
- 十六进制: #FF6600 或者可简写成 #F60(只能将6位简写成3位,即当每两位数字相同时才可以)
- RGBA: rgb(0,0,0)或者rgba(0,0,0,0)【a表示透明度】
- hsl: hsl(360,100%,100%)或者hsla(360,100%,100%,0)【a表示透明度】,HSL即色相、饱和度、亮度
应用:画一个彩虹
总结:
- 用overflow: hidden; 解决margin合并
- parent div 表示parent下的所有div
- parent > div 表示parent下的第一个div