美文网首页全栈工程师修炼之路
标签类型划分与嵌套规则

标签类型划分与嵌套规则

作者: siberiawolf0307 | 来源:发表于2016-11-29 18:32 被阅读18次

标签类型

标签类型:行内元素和块元素,这两个叫法是官方定义的,其他的内联叫法也是一个意思。

  • 块元素(block)
  • 行内元素(inline)

块元素

  1. 默认独占一行
  2. 如果没有指定宽度,宽度是auto,也就是父容器的宽度
  3. 块元素支持所有的css样式

行内元素

  1. 内容撑开宽高
    元素的宽高是由内容撑开的,内容多高宽,元素就多高宽
  2. 不支持设置宽高
    直接通过width:200px;height:200px设置元素宽高无效
  3. 不支持上下的margin和padding,但是支持左右的margin和padding
    上下的padding虽然能撑开,但是撑开的结果是不正确的。
  4. 行内元素只要容器够大,都会在一行当中显示
  5. 代码换行会被解析成一个空格
    两个行内元素之间的换行会被解析成一个空格,这个空格大小是半个字体。如果字体是宋体,两个元素之间的会存在半个字体(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设置会有问题

标签嵌套规则

  1. 行内标签不能嵌套块标签,块标签可以嵌套行内标签
  2. a标签不能再嵌套a标签
  3. h1-h6,dt 这类标签的性质是标题,不能再嵌套块级标签(可以嵌套行内标题)
  4. p标签不能嵌套块标签(可以嵌套行内标签)
  5. ul和li、dl和dt、dd等都是固定的标签,都有固定的嵌套规则。嵌套规则不要乱。

相关文章