声明内联元素为块级元素是否有效?

4

我使用以下样式表通过了W3C验证:

a {
  display: block;
}

我想确认一下,使用行内元素作为块级元素的标记是否有效?我知道这样做可以实现效果,但它是否有效呢?

谢谢

5个回答

5

是的,这是完全有效的。而且也很有用。

需要注意的一点是(因为上面的回答非常简短),将通常的内联元素样式化为块级元素的方法非常常见。例如,在从列表创建水平导航菜单时,您经常会看到使用<a>元素并将其样式设置为display:block,以使链接能够占用父列表项的全部宽度和高度。


需要注意的是,这并不改变规则,例如相反的(display:inline)也不能让你把<div>放在<p>里面。 - Niet the Dark Absol
这实际上是我想要的,对于菜单中的项目,而不是将a标签包装在div中,这对我来说毫无意义。 - Michael Samuel
我有另一个问题...使用text-align属性将两个内联DIV居中,这样做是否有效,还是被认为是一种hack技巧? - Michael Samuel
这也是可以的。正如MDN所说,“text-align CSS属性描述了内联内容(如文本)在其父块元素中的对齐方式。text-align不控制块元素本身的对齐,只控制它们的内联内容。”因此,如果内容是内联的,则可以在其上使用text-align(毫无负罪感!)。 - j08691
1
首先,不要使用w3schools,而是使用https://developer.mozilla.org。其次,text-align用于在父级块级容器内对齐内联元素。 - j08691
显示剩余3条评论

3

是的,这是有效的,但你也可以使用inline-block来使用内联元素并保持块级属性。


1
这更像是对OP问题的评论,而不是答案。 - Jace
有时候我的页面上的评论按钮不会显示。 - xShirase
1
+1并欢迎,不要沮丧也不要迷失方向,这是一个学习许多东西的好地方 :-) - The Alpha
我知道,它帮助了我很多次,所以我觉得我也必须做出贡献。谢谢你的欢迎 :-) - xShirase
@SheikhHeera,你的修改很好;)我取消了我的踩,点了个赞。 - Jace

2

是的,这是有效的。

正如你所知道的,有些元素默认情况下是内联或块级的。但在CSS中覆盖这一点是完全有效的。


1

是的,它是有效的。然而,如果您真的不想这样做,您可以将a包装在div中。尽管如此,这是毫无意义的,因为它完全有效;这就是为什么display属性存在的原因。


0

样式表是有效的,因为它符合CSS规范。这只是一件纯粹形式的事情。在CSS中,选择器a没有特殊含义,它只是一个标识符;CSS对于HTML中a元素的含义(比如它是内联元素)并不了解,实际上样式表可以用于样式化XML文档,其中a有完全不同的含义。

另一方面,HTML的有效性与CSS无关。这是有关标记的形式问题,而样式表并不是标记。

它是否在其他非正式意义上“有效”(比如“良好的实践”、“有用的”或“符合样式指南”)是一个不同的问题,是一个争议问题,而不是技术问题。不管怎样,在a元素上设置display:block通常是常见用法,以使其可以像块元素一样设置尺寸(例如,使链接填充表格单元格)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接