盒子类型
每个元素在页面中都会生成一个矩形区域(盒子)。元素是html的概念,盒子是css的概念。
盒子类型:
1)行盒
属性display
取值为inline
的元素。
行盒不换行。如<span>
、<a>
、<img>
等元素默认就是行盒。
display默认值就是inline。
2)块盒
属性display
取值为block
的元素。
块盒最后有个换行,也就是独占一行。如<h>
、<div>
、<p>
等容器元素默认就是块盒。
盒子的组成部分
无论是行盒还是块盒,从内到外,都是由以下四个部分组成:
1)内容(content)
涉及的属性有width
、height
等。设置盒子内容的宽高。
内容部分叫做整个盒子的内容盒(content-box)。
2)填充(padding)
盒子边框到盒子内容的距离,也称作内边距。
涉及的属性有padding-left
、padding-right
、padding-top
、padding-bottom
等。
div{
padding-top: 20px;
padding-bottom: 40px;
padding-left: 80px;
padding-right: 5px;
}
这里也可以用简写属性padding,写为padding: padding-top、padding-right、padding-bottom、padding-left
,即上右下左,顺时针顺序。
如图中的属性值可以改写为padding: 20px 5px 40px 80px
。
padding简写属性还有很多其他写法,比如padding: 50px 20px 50px 20px
,上下相同,左右相同,可以简写为padding: 50px 20px
。
更多的简写方式可以到MDN页面查看。
填充区 + 内容区 = 填充盒(padding-box)。
3)边框(border)
边框 = 边框样式(border-style
) + 边框宽度(border-width
) + 边框颜色(border-color
)
如:
div{
width: 100px;
height: 100px;
background: lightblue;
border-width: 4px;
border-style: solid;
border-color: blueviolet;
}
注意仅设置边框宽度而不设置边框样式是不行的,因为border-style
的默认取值是none
,不会显示。
如果没有设置border-color
,那么边框颜色默认与字体颜色相同。
其实这里的border-width
、border-style
、border-color
都是简写属性,也就是说,还可以写成如:
div{
width: 100px;
height: 100px;
background: lightblue;
border-width: 10px 5px 20px 30px;
border-style: solid dashed dotted groove ;
border-color: blueviolet red yellow green;
}
border
本身也是一个简写属性,如可以写border: 4px dashed red
,表示上右下左边框都是宽度4像素、虚线、红色。
边框区 + 填充区 + 内容区 = 边框盒(border-box)。
4)外边距(margin)
表示边框到其他盒子的距离。
div{
width: 100px;
height: 100px;
background: lightblue;
border: 2px solid red;
}
.div1{
margin:10px 5px 30px 40px;
}
以上介绍的都是块盒,对于行盒,上面的一些参数有些不同的特性,以后再说。