HTML中的块元素与内联元素:为什么要区分?


15

块元素和内联元素之间的区别在我看来总是很奇怪。整体差异在于,block元素占据了整个宽度,因此迫使该元素之前和之后的换行,而inline元素仅占据了内容的全部。为什么不只使用一种元素-内联元素,您还可以在其中应用自定义高度/宽度并使用它?您要换行吗?<br />在该行为中插入,或者在CSS中添加一个特殊标记。现在的样子,我看不到它能解决任何问题,相反,它只会强制我认为应该由设计师决定的属性。

那么为什么要两种呢?


这个问题我最喜欢的部分是它如何使用的内联样式<br/><p>标签来获取与第一段分隔的最后一行。也许您应该开始着眼于视觉意图上的巨大差异,而不是实现上的差异。
riwalk

1
虽然我100%相信块元素很有用并且不同意您提出的解决方案,但这仍然是一个很大的问题。
妮可,

Answers:


13

你说:

您要换行吗?<br />在该行为中插入,或者在CSS中添加一个特殊标记。现在的样子,我看不到它能解决任何问题,相反,它只会强制我认为应该由设计师决定的属性。

您走在正确的道路上- 样式应由设计师决定。

但是,您遇到了其他问题。 插入<br/>标签实际上是“强制由设计师决定的属性”的选项–在标记文档内,一旦<br/>存在,就在那里–只有使用一些棘手的/易受攻击的CSS,您才能删除其效果。

elements另一方面,内联/块是纯样式的元素,具有针对常见用例的便利默认值。视觉属性本身可以由CSS设计人员使用display:inline或立即更改display:block

例如,这些天来导航常用的元素- <li>。这些是默认block元素,但是设计人员将使它们float内联显示(block具有比仅占用整条线更多的特殊属性,但这是另一天的讨论)。


3

大多数元素都有标准格式...您的问题可以扩展为说这种格式也应该是设计者的决定,应该删除。我一直只是认为这是一个起点,并在需要时删除了格式(通常不是)。但最终,有些事情是自然的。例如,如果您有一个段落,则希望它是一个块元素,因为那就是该段落的性质。无论元素是否具有默认设置(例如block或inline),我都绝对希望使用此功能来指定此选项。我说这是因为IMO清洁工可以用这种方式打破事情,而不是扔东西<br />在HTML中。它做同样的事情吗?是。但是,随着HTML的最新发展,人们将大量精力集中在使它成为一种语义语言上,在格式化方面,您对HTML的投入更少,而在CSS中的投入则更多。该<br />装置换行符其通常指的是在一个段或其它含句子结构换行符。最后,这对我来说并不重要,但是我个人希望能够具有块和内联的区别,所以我希望他们至少不要从CSS方面删除它!


2

这有点像说段落和句子之间没有真正的区别。段落界定了一想法。通常,一个句子是针对单个想法的。

标记是关于语义的,而不是显示的。实际上,设计人员可以自由地将默认为块样式的任何元素视为内联元素,反之亦然。


2

LaTeX中,有两种模式(不包括数学模式):水平模式和垂直模式。元素(字符)是小盒子,在段落中“水平”累积。然后,这些较大的盒子垂直堆积。这类似于(X)HTML:内联和阻止。


0

听起来像是向后兼容的问题。内联元素可能是HTML标准的更高版本,因此在1992年仍可以查看1992年编写的网页,仍然受支持-就像那里有大量的19年历史的网页...!


-1

我认为显示模式在块和内联之间是如此不同,以至于在标记级别上应该加以区别。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.