为什么块级和内联元素之间的HTML存在功能差异?

时间:2011-11-03 18:04:11

标签: html web-standards

注意:我不是在谈论显示器 - 我理解为什么他们有不同的默认值。我在谈论块和内联元素之间的功能差异,尤其是关于嵌套等事情

我一次又一次地被告知,HTML是关于描述内容,做什么和做什么,而不是它们的样子(超出与标签相关的默认风格元素,可以改变)。

因此,它似乎是“块”级别标签和“内联”级别标签之间的划分(不是那些标签的显示,而是这些标签的固有差异),这种情况会绊倒并复杂化许多新手,甚至更多的经验页面设计师,是任意的......看似违反原则,如果你愿意的话。这种行为似乎应该通过风格控制,而不是作为块的内置元素存在。在某些方面,它在风格上受到控制 - 我们都知道有一些CSS可以使跨度看起来像一个div,反之亦然。

那么在块和内联之间进行功能区分有什么意义呢?为什么它们不像其他任何嵌套元素一样?为什么一切都不是“内联”元素的“块”设置为“显示:内联”?它仅仅是为了向后兼容,还是对我看不到的看似随意的部门有好处?

请注意,这可能会更好地作为社区维基问题,因为它不太可能有一个明确的答案,但我不确定细节。

作为一个例子,根据我的理解,以下将是无效的html:

<label style="display:block">
 <h4>Name</h4>
 <span class='sub'>Whether legal, pseudonymous, or made up</span>
 <input id="name"></input>
</label>

为什么?

1 个答案:

答案 0 :(得分:0)

  

为什么一切都不是“内联”元素的“块”设置为“display:inline”?

嗯,几乎是这样的;只是反过来。相反,一切都是“内联”,“块”元素设置为“display:block”。

但那真的很烦人,如果对于你创建的每个页面,你需要告诉它div标签应该被视为块元素。因此,假设默认样式,在http://www.w3.org/TR/CSS2/sample.html

处得到最佳说明