The div
是典型的块级元素,并且span
是内联对应项。它们是该显示类型的最简单的形式,没有其他属性。在很多情况下,我会给它们中的任何一个风格:
display: inline-block;
这使得它们的行为方式非常方便。为了div
这意味着盒子可以轻松地彼此相邻,同时保持定义的宽度和高度。为了span
我可以用它来制作彩色矩形。这inline-block
显示对于很多事情来说都很棒,但我从未见过一个元素以inline-block
没有任何其他事情发生。
Images (img
)是,但它们显然是not适合做同样的事情div
,他们有那种风格,但他们实现了不同的目的。
那么是否有一个我不知道的元素才是最本质的inline-block
,或者这个被遗漏了?
如果没有,为什么?的用途inline-block
数量众多,所以似乎应该有一些元素采用这种基本形式。
不存在这样的元素,并且有一些充分的理由可以解释为什么不这样做。
inline-block
在当代网页设计中有多种用途。然而它不属于原创设计 http://www.w3.org/History/19921103-hypertext/hypertext/WWW/MarkUp/MarkUp.html,仅包含块元素和行内元素。相反,它源自<img>
由 NSCA Mosaic 添加。 (其中使用错误的标记 http://www.cs.tut.fi/~jkorpela/html/empty.html#incl并帮助击败了最初的“响应式设计”。我想我们才刚刚开始修复img的问题 http://www.w3.org/community/respimg/).
时间线再往下看,inline-block
仍然不是 IE4 或 5 或任何版本的 Netscape 的一部分。它不是早期 HTML4 时代的一部分。因此,我们不会期望在该版本的标准中找到您的假设元素。inline-block
只出现在 CSS2 中,它出现在HTML4 http://www.w3.org/TR/html4/。 (查看每个标准中的参考部分)。
Unlike block
, inline-block
受标记中空格的影响 https://stackoverflow.com/questions/16465378/how-to-get-rid-of-unwanted-space-between-inline-block-columns/16469536#16469536。它的名字就暗示了这一点,这就是你所期望的<img>
在一些文本的中间(又名“作为字符”锚定的字处理器对象)。但除了其起源之外,依赖于空白的标记很快就会变得非常麻烦。我不希望 W3C HTML5 将此纳入新元素中。
指定它肯定会涉及关于“语义”、内容和表示的分离等的争论(以及如何称呼它:)。如果默认渲染使空白变得重要——这不是该元素语义的一部分吗?考虑使用图像来表示单词 - 或单词的各个字母(带有适当的替代文本)。这说明该元素周围是否存在空格在语义上是重要的,就像分隔单词的空格的存在在语义上是重要的一样。这对我来说似乎是一个大问题。
inline-block
经常被宣传为使用的现代替代品float
到处。但两者都不是真正合适的。这就是 CSS3 将标准化新布局模式的原因:“弹性盒” http://weblog.bocoup.com/dive-into-flexbox/ and "grid" http://hugogiraudel.com/2013/04/04/css-grid-layout/#grid,以真实、干净的标记支持现代响应式设计。没有虚拟标记(或虚拟生成的内容)。没有围绕空白依赖进行黑客攻击。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)