<div/>
以任何方式与<span style="display:block" />
不同吗?
它们渲染得很好。这两者之间有什么语义差异?
答案 0 :(得分:50)
是的,他们是不同的。
即使您使用display: block
设置范围,您仍然无法在其中放置块级元素:
<div><p>correct</p></div>
<span style="display: block;"><p>wrong</p></span>
(X)HTML仍然必须服从(X)HTML DTD(无论你使用哪一个),无论CSS如何改变。
答案 1 :(得分:13)
这是一个真正不同的例子(至少对于有效代码):
<a href='example.com'>
<span class='title' style='display:block;'>The title of the image is also a link</span>
<img src="example.com/someimage.jpg"/>
</a>
这使您可以使跨度成为块级元素,并允许图像和跨度在鼠标悬停时一起突出显示。
div无法嵌套在标签内。
答案 2 :(得分:3)
A&lt; div&gt;是一个块级元素,除了定义一个离散的内容块之外,它没有自己的特定语义。一个&lt; span&gt;是一个内联元素,除了定义内联内容的离散段之外,它没有自己的特定语义。
你可以使用CSS将跨度显示作为一个块,但绝对没有理由这样编辑:除了纯粹的视觉效果,正如Gabriel演示的那样;我的意思是你不应该使用CSS来试图强迫跨度在文档结构方面具有块级重要性。此外,如果您这样做,您的内容可能对没有CSS的用户(例如盲人用户或搜索引擎)毫无意义。
如果是块,请使用div。如果它是内联内容的一部分,请使用范围。请记住,CSS仅仅是关于演示;如果您的内容可用,您的标记仍需要以合理的方式构建。
有关详细信息,请参阅http://www.w3.org/TR/html401/struct/global.html#edef-DIV。
答案 3 :(得分:1)
是。它们可以包含不同的东西,允许在不同的地方使用。
在CSS不可用的环境中(例如在某些电子邮件系统中),它们也会以不同的方式呈现