哪个HTML标记适合内联块样式? div还是span?

时间:2013-10-01 19:05:29

标签: html css

<div>标记用于对块元素进行分组。
<span>标记用于对内联元素进行分组。

哪个HTML标记适合分组内联块元素? <div><span>或其他什么?为什么呢?

4 个答案:

答案 0 :(得分:2)

您最初的假设是:

  

<div>标记用于对块元素进行分组   <span>标记用于对内联元素进行分组。

不正确。

div elements are defined as follows in the HTML spec

  

div元素根本没有特殊含义。它代表了它的孩子。它可以与class,lang和title属性一起使用,以标记一组连续元素共有的语义。

span elements are defined as follows

  

span元素本身并不意味着什么,但与全局属性一起使用时可能很有用,例如class,lang或dir。它代表了它的孩子。

重要的区别在于div元素的内容模型为flow content,而span元素的内容模型为phrasing content。父元素的内容模型定义了父元素可以包含的子元素。

子元素是否为display: inline-block并不重要,如果子元素不属于适当的内容模型,则可能无法有效地放置在父元素中。

答案 1 :(得分:1)

根据HTML规范,<span>是内联元素,<div>是块元素。现在可以使用显示 CSS属性进行更改,但是有一个问题:就 HTML验证而言,您不能将块元素放在内联元素中:

<span>...<div>foo</div>...</span>
即使您更改为内联块或内联块,

也不是严格有效。

因此,如果您的元素是内联字符或内嵌块,请使用<span>。如果是阻止级别元素,请使用<div>

祝你好运!

答案 2 :(得分:1)

由于浏览器与inline-block(IE6,IE7)的可比性问题以及需要应用*display:inline; zoom:1;的修补程序才能让它们在block元素上运行..

我会选择<span>,因为即使IE6%IE7应用于inline-block元素,也支持inline。 (block

<div>元素需要修复此问题

答案 3 :(得分:0)

两者都是通用包装器,但考虑到默认情况下span是内联的,默认情况下div是阻止的,div更适合保存inline-block显示的元素CSS规则。