Html 为什么MDN文档声明所有元素的初始显示值都是内联的?

Html 为什么MDN文档声明所有元素的初始显示值都是内联的?,html,css,display,Html,Css,Display,显然不是这样,因为每个元素都有自己的默认值 请看这里: 初始值:内联 适用于:所有元素 当然,在这种情况下,与似乎更为正确的文档相矛盾 这里有我遗漏的东西吗 它似乎清楚地表明“所有元素”的“初始值”设置为内联。首先不是官方文档,是 TL:DR:您弄糊涂了--属性的初始值是inline,该属性应用于哪些元素(不管它的值是多少) 他们没有关系 这是关于它的最新消息 哪一场比赛 是的,display的初始值是inline(在您的问题中)下面的一行表示它可以将display属性应用于所有元素,这

显然不是这样,因为每个元素都有自己的默认值

请看这里:

初始值:内联

适用于:所有元素

当然,在这种情况下,与似乎更为正确的文档相矛盾

这里有我遗漏的东西吗

它似乎清楚地表明“所有元素”的“初始值”设置为内联。

首先不是官方文档,是

TL:DR:您弄糊涂了--属性的初始值是
inline
,该属性应用于哪些元素(不管它的值是多少)

他们没有关系


这是关于它的最新消息

哪一场比赛

是的,display的初始值是
inline
(在您的问题中)下面的一行表示它可以将
display
属性应用于所有元素,这是正确的,并且不会以inline开始“所有元素”,因为如果您阅读MDN文档,您会看到:

display CSS属性指定用于显示的渲染框的类型 元素在HTML中,默认的
显示
属性值取自 HTML规范中描述的行为或来自 浏览器/用户默认样式表。
XML中的默认值为
inline
, 包括
SVG
元素

(这是我的)

这句话的意思是,任何浏览器/用户代理都可以自由地设置元素的初始值,因为他们认为它更好

N.B.请记住,初始值意味着使用
initial
值本身,因此,无论何时设置
display:initial
,它都将变为
display:inline
,如上述文档所示

每个用户代理(浏览器)为HTML页面应用默认样式表。您可以在默认设置中看到:

默认显示特性将根据图元进行更改

初始值:内联

…声明用户代理的官方建议是将
display:initial
解释为
display:inline
,而不是作为元素类型的默认值(即
block
inline block
,等等)

因此,在实践中,设置
display:initial
上的code>将应用
显示:内联而不是
display:block大多数开发人员都会这么想。设置<代码>显示:初始上的代码>任何元素都应解释为
显示:内联
。这就是它的意思

最终,这是有用的,因为它减少了复杂属性(如
display
)的模糊性


至于MDN为什么提供这些信息,一般来说,MDN和W3C/官方来源之间很少(如果有)矛盾,这使它成为一个有价值和可靠的资源。它的主要特点是,它以一种更易于访问的格式(比官方文档)为那些对web技术/概念没有扎实背景的人提供信息


就我个人而言,除了阅读文章/示例之外,我发现自己经常使用它作为获取任何web概念的官方资源完整列表的最快方式,因为您总是可以在MDN文章末尾找到关于该主题的链接(如果适用)。

对于本机xhtml浏览器来说也是如此。HTML浏览器完全是另一回事,它不必等待单独的指令。在HTML中,默认情况下,所有已知元素的显示呈现都是预定义的。 (这当然可以被覆盖)


有些浏览器根本不支持样式。HTML标记是语义的。所有xhtml都是通用的,当然,默认情况下,所有标记都是相同的[未知]和不加区分的内联

这两件事没有关系

属性的初始值是指CSS为该属性定义的默认值。无论元素类型如何,每个CSS属性都有一个初始值,因为CSS属性不会以任何方式绑定到任何文档语言的元素。此初始值用作未识别元素的默认值,以确保每个元素都有一个用于级联的每个属性的值,从而确保浏览器知道如何在遇到未识别元素时呈现该元素

属性的所谓“默认值”只是浏览器在其默认样式表中设置的任意值。HTML5规范包含一个参考文档,说明哪些默认值应该应用于哪些HTML元素,浏览器主要遵循这些元素,但这与CSS的初始值概念完全无关(它也与初始值的定义不矛盾,因为它是“用户代理级样式”)

另一方面,“适用于”与初始值无关。即使某个属性只适用于某些类型的元素,这些元素也将始终具有每个CSS属性,包括不适用于它们的属性。“适用于”实际上是指“对……有影响”。如果某个属性不应用于某个元素,则表示该属性无效

例如,您可能会发现
flex
属性。然而,每个元素都有一个
flex
属性,不管它实际上是否是一个flex项,它们几乎都有它的初始值,因为我不知道任何UA样式会从任何元素的初始值更改它的值。您仍然可以在不是flex项的元素上设置任意值,这根本不会产生任何效果-但是您可以,例如,使用
flex:
dir, hr, menu, pre   { display: block; unicode-bidi: embed }
li              { display: list-item }
head            { display: none }
...