如果一个块元素包含另一个块元素,那么将其更改为带有CSS的内联元素是否错误?

如果一个块元素包含另一个块元素,那么将其更改为带有CSS的内联元素是否错误?

我知道在内联元素中放置块元素是错误的,但是下面的内容呢?

想象一下这个有效的标记:

<div><p>This is a paragraph</p></div>

现在添加这个CSS:

div {
   display:inline;
}

这会造成内联元素包含块元素的情况(div变为内联元素,而p默认为块)。

页面元素仍然有效吗?

在应用CSS规则之前或之后,我们如何以及何时判断HTML是否有效?

最新情况:从那以后,我了解到在HTML 5中,将块级元素放入链接标记中是完全有效的,例如:

<a href="#">
      <h1>Heading</h1>
      <p>Paragraph.</p></a>

如果您想要一大块HTML作为链接,这实际上是非常有用的。


拉莫斯之舞
浏览 651回答 3
3回答

MYYA

不管它是否有效,元素结构都是错误的。不将块元素放入内联元素的原因是为了使浏览器能够以一种易于预测的方式呈现这些元素。即使它没有破坏HTML或CSS的任何规则,它仍然会创建无法按预期呈现的元素。浏览器必须处理元素,就像HTML代码无效一样。

翻过高山走不出你

HTML和CSS仍然有效。理想情况下,您不需要这样做,但是这种特定的CSS实际上是一种方便的方法(语法上是有效的,但不是语义上有效的),它可以获得InternetExplorer的双边距错误,而不需要使用条件样式表或黑客来使CSS失效。(X)HTML比CSS具有更多的语义值,因此CSS在语义上是有效的并不重要。在我看来,这是可以接受的,因为它解决了一个恼人的浏览器问题,而没有使您的代码无效。
打开App,查看更多内容
随时随地看视频慕课网APP