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