0

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

哪个 HTML 标签适合对 inline-block 元素进行分组?<div><span>其他什么?为什么?

4

4 回答 4

2

您最初的假设是:

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

是不正确的。

div元素在 HTML 规范中定义如下

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

span元素定义如下

span元素本身没有任何意义,但与全局属性(例如类、语言或目录)一起使用时会很有用。它代表它的孩子。

重要的区别在于div元素具有流式内容的内容模型,而span元素具有短语内容的内容模型。父元素的内容模型定义了父元素可能包含的子元素。

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

于 2013-10-01T19:57:22.550 回答
1

Because of browser comparability issues with inline-block (IE6,IE7) and the need to apply the fix of *display:inline; zoom:1; to get them to wotk on block elements..

I would go with <span>, because even IE6 % IE7 support inline-block when its applied to inline elements. (the fix is needed for block elements like <div>)

于 2013-10-01T20:28:17.700 回答
1

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

<span>...<div>foo</div>...</span>

即使您将 更改为内联或内联块,也不是严格有效的。

因此,如果您的元素是 inline 或inline-block ,请使用<span>. 如果它是块级元素,请使用<div>.

祝你好运!

于 2013-10-01T19:17:46.050 回答
0

两者都是通用包装器,但考虑到span默认情况下是 inline 并且默认情况下div是块,div将更适合保存具有inline-block显示 CSS 规则的元素。

于 2013-10-01T19:09:30.923 回答