作用:布局网页,摆放盒子和内容。
1. 盒子模型组成
内容区域:width和height
内边距:padding(出现在内容与盒子边缘之间)
边框线:border
外边距:margin(出现在盒子外面)
2. 边框线
属性名:border
属性值:边框线粗细 线条样式 颜色(不区分顺序)
2.1 常用线条样式
线条样式 | 属性值 |
实线 | solid |
虚线 | dashed |
点线 | dotted |
2.2 设置单方向边框线
属性名:border-方向名词(top、right、left、bottom)
属性值:边框线粗细 线条样式 颜色(不区分顺序)
<style>div {width: 200px;height: 200px;background-color: pink;border-top: 1px solid #888;border-right: 2px dashed red;border-bottom: 5px dotted green;border-left: 10px solid orange;}
</style>
3. 内边距
作用:设置内容与盒子边缘之间的距离。
属性名:padding/padding-方位名词
<style>div {/*四个方向 内边距相同 */padding: 30px;/*单独设置一个方向内边距*/padding-top: 10px;padding-right: 20px;padding-bottom: 40px;padding-left: 80px;width: 280px;height: 200px;background-color: pink;}
</style>
padding多值写法
取值个数 | 示例 | 含义 |
一个值 | padding: 10px; | 四个方向内边距均为10px |
四个值 | Padding: 10px 20px 40px 0Px; | 上:10px;右:20px;下:40px;左:80pX |
三个值 | padding:10px 40px 80x; | 上:10px;左右:40px;下:80pX |
两个值 | padding:10px 80px; | 上下:10px;左右:80px |
4. 盒子模型尺寸计算
默认情况:盒子尺寸=内容尺寸+border尺寸+内边距尺寸
结论:给盒子加border和padding会撑大盒子
解决:
- 手动减法:设置盒子尺寸时减去border和padding的尺寸
- 内减模式:会自动调整盒子,不会撑大盒子,语法:box-sizing : border-box
<style>div {width: 200px;height: 200px;/*手动减法*//* width: 160px;height: 160px; */background-color: pink;padding: 20px;box-sizing: border-box;}
</style>
5. 外边距
作用:拉开两个盒子之间的距离(不会撑大盒子)
属性名:margin/margin-方位名词,支持多值写法
<style>div {width: 100px;height: 100px;background-color: orange;/* 外边距,不会撑大盒子 */margin-top: 50px;margin-left: 100px;}
</style>
版心居中效果
<style>div {width: 100px;height: 100px;background-color: orange;/* 版心居中 */margin: 50px auto;}
</style>
6. 外边距问题
6.1 外边距合并现象
场景:垂直排列的兄弟元素,上下margin会合并
现象:取两个margin中的较大值生效
6.2 外边距塌陷问题
场景:父子级的标签,子级的添加上外边距会产生塌陷问题。
现象:导致父级一起向下移动。
解决方法:
- 取消子级margin,父级设置padding(推荐)
- 出现塌陷问题后,父级设置overflow:hidden
- 出现塌陷问题后,父级设置border-top
7. 行内元素内外边距问题
场景:行内元素添加margin和padding,无法改变元素垂直位置。
解决方法:给行内元素添加line-height可以改变垂直位置。
<style>span {/* margin 和 padding 属性,无法改变垂直位置 */margin: 50px;padding: 20px;/*行高可以改变垂直位置 */line-height: 100px;}
</style>
8. 盒子圆角
作用:设置元素的外边框为圆角。
属性名:border-radius
属性值:数字+px/百分比
<style>div {width: 100px;height: 100px;background-color: orange;/* 从左上角顺时针赋值,没有赋值的取对角值 */border-radius: 20px;}
</style>
8.1 正圆形状应用
给正方形盒子设置圆角属性值为宽高的一半/50%。
<style>img {width: 200px;height: 200px;border-radius: 100px;/* 或者 */border-radius: 50%;}
</style>
8.2 胶囊形状应用
给长方形盒子设置圆角属性值为盒子高度的一半。
<style>div {width: 200px;height: 50px;background-color: orange;border-radius: 25px;}
</style>
9. 盒子阴影
作用:给元素设置阴影效果
属性名:box-shadow
属性值:x轴偏移量 y轴偏移量 模糊半径 扩散半径 颜色 内外阴影
注意:
- x轴偏移量和Y轴偏移量必须书写
- 默认是外阴影,内阴影需要添加inset
<style>div {margin: 5px auto;width: 200px;height: 80px;background-color: orange;box-shadow: 2px 5px 10px 1px rgba(0, 0, 0, 0.5)}
</style>
10. 元素溢出
作用:控制溢出元素的内容显示方式。
属性名:overflow
属性值 | 效果 |
hidden | 溢出隐藏(推荐) |
scroll | 溢出滚动(无论是否溢出,都显示滚动条位置) |
auto | 溢出滚动(溢出才显示滚动条位置) |