4.9.1 盒子模型和内联模型

HTML元素分为盒子元素和内联元素。从外观来看,盒子元素就是那些默认占满一行的元素,例如div,而内联元素一般都用在文本,默认是不会换行的,例如span、a
<div>
    默认占满一行
</div>
<span>可以和别的元素同一行</span>
<a href="#">链接也是内联元素</a>
盒子元素除了自动换行外,还有什么特点呢,如下图:


这张图展示了盒子元素
1.最里面黄色是元素的高度和宽度,width是宽度,height是高度
2.绿色部分是填充:padding
3.黑色是边框:border
4.最外面的蓝色是间距:margin
内联元素(如a、span)设置这些样式,有些是无效的。

常用的盒子元素:div、p、h1到h6
常见的内联元素:span、a、li
所有元素都可以改变为盒子元素或者内联元素,display就是专门用来改变元素的:
display:block    变为盒子元素
display:inline    变为内联元素
display:inline-block  内联盒子元素,可以设置盒子元素的属性,同时不会独占一行。
display:none 元素不显示

下面的例子是把一个span变成一个盒子元素:
<span style="width:200px;background:orange">我是内联元素,宽度200没有生效</span>
<span style="width:200px;background:red">我是别的内联元素</span>
<span style="display:block;width:200px;background:orange">我是内联元素,现在变成了盒子元素,宽度200生效不能与别的元素同一行</span>
<span style="width:200px;background:red">我是别的元素</span>

高度height和宽度width
盒子可以设置高度和宽度,也可以只设置其中一个:
<div style="width:200px;height:200px;background:#FFF">
    长和宽都是200像素
</div>
<div style="width:200px;background:orange">
    只设置宽度200像素
</div>
如果内容超过设定的高度和宽度,内容就会溢出去:
<div style="width:200px;height:50px;background:orange">
    只设置宽度100像素,高度50像素,如果内容放不下,那就溢出了
</div>