是否有任何HTML元素作为典型的内联块存在?

zee*_*eel 8 html css html5

div是典型的块级元素,span而是内联对应元素.它们是该显示类型的最简单形式,没有其他属性.在很多情况下,我会给他们任何一种风格:

display: inline-block;
Run Code Online (Sandbox Code Playgroud)

这使得他们表现得非常方便.因为div它意味着盒子可以轻松地彼此相邻,同时保持其定义的宽度和高度.因为span我可以用它来制作彩色矩形.该inline-block显示器是伟大的事情太多了,但我从来没有见过,作为一个开始元素inline-block没有别的事情.

图像(img)是,但它们显然适合与a相同的东西div,它们具有那种风格,但它们实现了不同的目的.

那么有一个我不知道的元素是典型的inline-block,还是遗漏了?

如果没有,为什么?使用inline-block很多,所以似乎应该有一些元素采用这种基本形式.

Dav*_*mas 6

我能想到的唯一具有内嵌外观,但允许a widthheight被设置的元素是:

  • img,
  • input,
  • textarea
  • select,和
  • button

但是,这里唯一可以采用HTML内容的button元素是元素; 这不是理想的使用,button因为它旨在成为用户可能/应该与之交互的元素; 而不仅仅是一个容器元素.

虽然你可能对这样一个元素有多种用途,但是没有令人信服的理由,因为displayW3C或任何其他权威机构应该明确地定义一个属性,因为它可以很容易地改变属性.特别是考虑到inline和之间唯一的区别inline-block是能够分配尺寸和margin.


sou*_*edi 6

没有这样的元素,并且有一些很好的理由为什么不呢.

inline-block在当代网页设计中有多种用途.但它不是原始设计的一部分,原始设计仅包括块和内联元素.相反,它源自<img>NSCA Mosaic.(它使用了错误的标记并帮助击败了原始的"响应式设计".我认为我们刚刚开始用img修复问题).

在时间轴的下方,inline-block仍然不是IE4或5或任何版本的Netscape的一部分.它不是早期HTML4时代的一部分.因此,我们不希望在该版本的标准中找到您的假设元素. inline-block只出现在CSS2,之后来到了HTML4.(查看每个标准中的参考部分).

与之不同block,inline-block 受标记中的空白影响.这是由名称暗示的,它是你<img>在一些文本中间看到的期望(也称为wordprocessor对象锚定为"字符").但是,除了它的起源之外,依赖于空格的标记很快变得非常麻烦.我不希望W3C HTML5在新元素中加入它.

指定它肯定会涉及关于"语义",内容分离和表示等的争论(以及它的名称:).如果默认呈现使空白显着 - 那不是该元素语义的一部分吗?考虑使用图像来表示单词 - 或单词的单个字母(使用适当的替代文字).这说明在这个元素周围存在空白(或不存在)将具有语义上的重要性,就像存在空白的分类词在语义上有意义一样.这对我来说似乎是个大问题.

inline-block经常被推广为现代化的替代方案float.但两者都不是真正合适的.这就是为什么CSS3将标准化新的布局模式:"flexbox""grid",以支持具有真实,干净标记的现代响应式设计.没有虚拟标记(或虚拟生成的内容).没有黑客攻击空白依赖.