标签类型
标签类型:行内元素和块元素,这两个叫法是官方定义的,其他的内联叫法也是一个意思。
- 块元素(block)
- 行内元素(inline)
块元素
- 默认独占一行
- 如果没有指定宽度,宽度是auto,也就是父容器的宽度
- 块元素支持所有的css样式
行内元素
- 内容撑开宽高
元素的宽高是由内容撑开的,内容多高宽,元素就多高宽 - 不支持设置宽高
直接通过width:200px;
和height:200px
设置元素宽高无效 - 不支持上下的margin和padding,但是支持左右的margin和padding
上下的padding虽然能撑开,但是撑开的结果是不正确的。 - 行内元素只要容器够大,都会在一行当中显示
- 代码换行会被解析成一个空格
两个行内元素之间的换行会被解析成一个空格,这个空格大小是半个字体。如果字体是宋体,两个元素之间的会存在半个字体(8像素)的空格。
![Uploading Paste_Image_514465.png . . .]
元素类型转换
块元素与行内元素之间的转换,通过display属性进行。只是显示的时候,浏览器解析时的表现形式。并不会修改标签本身的类型。
display:inline; // 块元素转换为行内元素
display:block; // 行内元素转换为块元素
inline-block的特性
inline-block
行内块元素,可以支持行内元素的特性,也可以支持块级元素。
在某些布局时,可以通过display:inline-block
来布局。
display:inline-block;
特性
- 让行内元素支持宽高、margin、padding
- 让块元素在一行内显示
- 跟行内元素一样,如果存在换行会被解析成空格
- 不给宽高时,宽度是由内容撑开
- IE6、7 上inline-block设置会有问题
标签嵌套规则
- 行内标签不能嵌套块标签,块标签可以嵌套行内标签
- a标签不能再嵌套a标签
- h1-h6,dt 这类标签的性质是标题,不能再嵌套块级标签(可以嵌套行内标题)
- p标签不能嵌套块标签(可以嵌套行内标签)
- ul和li、dl和dt、dd等都是固定的标签,都有固定的嵌套规则。嵌套规则不要乱。