盒子模型

2024-01-09  本文已影响0人  SeanLink

CSS盒子模型

HTML每个元素都可以看做为一个盒子

具备四个属性

◼ 内容(content)

◼ 内边距(padding)

◼ 边框(border)

◼ 外边距(margin)

18cb47bec04.png

◼ 因为盒子有四边, 所以margin/padding/border都包括top/right/bottom/left四个边:

18cb47dc9c7.png

内容 - 宽度和高度

◼ 设置内容是通过宽度和高度设置的:

◼ 注意: 对于行内级非替换元素来说, 设置宽高是无效的!

另外还可以设置如下属性:

下面两个不太常用:

内边距 - padding

◼ padding属性用于设置盒子的内边距, 通常用于设置边框和内容之间的间距;
◼ padding包括四个方向, 所以有如下的取值:

◼ padding单独编写是一个缩写属性:

◼ padding并非必须是四个值, 也可以有其他值;

padding的其他值

18cb482cd1b.png

边框 border

边框样式的取值

18cb4860c4e.png

同时设置的方式

18cb487d5c4.png

圆角 – border-radius

这四个属性 border-top-left-radius、border-top-right-radius、border-bottom-right-radius,和 border-bottom,left-radius 简写为一个属性。

◼ border-radius常见的值:

外边距 - margin

margin属性用于设置盒子的外边距, 通常用于元素和元素之间的间距;
◼ margin包括四个方向, 所以有如下的取值:

◼ margin单独编写是一个缩写属性:

◼ margin也并非必须是四个值, 也可以有其他值;

margin的其他值

18cb49303a2.png

上下margin的传递

◼ margin-top传递

◼ margin-bottom传递

◼ 如何防止出现传递问题?

◼ 建议

上下margin的折叠

◼ 垂直方向上相邻的2个margin(margin-top、margin-bottom)有可能会合并为1个margin,这种现象叫做collapse(折叠)

◼ 水平方向上的margin(margin-left、margin-right)永远不会collapse

◼ 折叠后最终值的计算规则

◼ 如何防止margin collapse?

上下margin折叠的情况

两个兄弟块级元素之间上下margin的折叠
父子块级元素之间margin的折叠

18cb499a423.png

外轮廓 - outline

◼ outline表示元素的外轮廓

◼ outline相关属性有

◼ 应用实例

盒子阴影 - box-shadow

◼ shadow的常见格式如下

18cb49bfa56.png

盒子阴影

在线测试阴影效果

https://html-css-js.com/css/generator/box-shadow/

18cb49e08bf.png

文字阴影 - text-shadow

◼ text-shadow用法类似于box-shadow,用于给文字添加阴影效果
◼ shadow的常见格式如下

18cb4a1b4b2.png

◼ 我们可以通过一个网站测试文字的阴影:
https://html-css-js.com/css/generator/box-shadow

行内非替换元素的注意事项

◼ 以下属性对行内级非替换元素不起作用

◼ 以下属性对行内级非替换元素的效果比较特殊

CSS属性 - box-sizing

◼ box-sizing用来设置盒子模型中宽高的行为
◼ content-box

◼ border-box

box-sizing: content-box

◼ 元素的实际占用宽度 = border + padding + width
◼ 元素的实际占用高度 = border + padding + height

18cb4a3d560.png

box-sizing: border-box

◼ 元素的实际占用宽度 = width
◼ 元素的实际占用高度 = height

18cb4a42d35.png

IE盒子模型

18cb4a48053.png

元素的水平居中方案

◼ 在一些需求中,需要元素在父元素中水平居中显示(父元素一般都是块级元素、inline-block)
◼ 行内级元素(包括inline-block元素)

◼ 块级元素

上一篇下一篇

猜你喜欢

热点阅读