【问题标题】:Is it valid to have an inline element without a block-level parent?没有块级父级的内联元素是否有效?
【发布时间】:2018-04-12 19:06:43
【问题描述】:

我想知道 HTML 文档中的内联元素是否需要块级父元素。比如下面的HTML...

<html>
    <head>
    </head>
    <body>
        <b>Some Text</b>
    </body>
</html>

这是一个有效的 HTML 文档吗?还是必须将&lt;b&gt;&lt;/b&gt; 标记封装在块级元素中才能被视为有效,例如&lt;p&gt;&lt;div&gt;? (希望 HTML4 和 HTML5 的答案是一样的?)

很多人都问过类似的问题:我可以将块级元素放在内联元素中吗?我想知道相反的情况:内联元素可以放在块之外的任何地方- HTML 文档中的 level 元素?

我在 RFC 中看到了这一点:

某些可能出现在 BODY 中的 HTML 元素被称为“块级”,而另一些则是“内联”(也称为“文本级”)......

通常,块级元素可能包含内联元素和其他块级元素。通常,内联元素可能只包含数据和其他内联元素。 https://www.w3.org/TR/html401/struct/global.html#h-7.5.3

但是,它并没有完全说出来。

【问题讨论】:

  • 您可以验证您的 html 并查看
  • HTML 4.01 中最明显的例子是内联元素可以作为既不是块级也不是内联级的元素的子级,即作为表格单元格的子级。跨度>
  • @Alohci :table 元素是块级的,developer.mozilla.org/en-US/docs/Web/HTML/Block-level_elements。那将是“某个父母”,可能不是直接的,而是遥远的曾曾祖父母,但仍然是父母。

标签: html css


【解决方案1】:

如果您愿意,您可以将内联元素放置在任何地方、块级别内、外部、任何地方,甚至在body 之外!它们将呈现相同的内容,只是没有您对块级元素所期望的任何填充/边距。

MDN reference 内联元素中,它们总是(在两个示例中给出)显示在块级元素的内部,但这并不意味着它们不能独立于块元素之外。这只是意味着它通常不会完成,因为它在语义上是错误的 - 即,您有包含内联元素的块级元素,而不是单独存在的内联元素。

虽然从技术上讲,您提供的示例不是块元素外部的内联元素示例,因为body 是块元素。

【讨论】:

    猜你喜欢
    • 2013-01-02
    • 2011-08-29
    • 1970-01-01
    • 2010-12-15
    • 1970-01-01
    • 2013-06-05
    • 1970-01-01
    • 2012-09-03
    相关资源
    最近更新 更多