显然不是这种情况,因为每个元素都可以拥有它自己的默认值。
见这里:
https://developer.mozilla.org/en-US/docs/Web/CSS/display
初始值:内联
适用于:所有元素
当然,在这种情况下看起来更正确的文档是矛盾的。
https://www.w3schools.com/css/css_display_visibility.asp
这里有什么我想念的吗?
似乎清楚地说明“所有元素”都将“初始值”设置为内联。
答案 0 :(得分:12)
TL:DR:您感到困惑 - 属性的初始值为inline
以及属性适用的元素(无论其值是多少)
他们没有关系。
以下是关于它的official Documentation
匹配MDN Docs。
是的,显示的初始值为inline
,下面的行(在您的问题中)表示它可以将display
属性应用于所有元素,这是真的而不是以内联方式启动“所有元素” ,因为如果您阅读MDN文档,您会看到:
显示CSS属性指定用于的渲染框的类型 一个元素。 在HTML中,默认
display
属性值取自 HTML规范中描述的行为或来自 浏览器/用户默认样式表。 XML中的默认值为inline
, 包括SVG
元素。
(强调是我的)
这一行意味着任何浏览器/用户代理都可以自由设置元素的初始值,因为他们认为它更好。
N.B。请注意,初始值表示使用initial
值本身,因此每当您设置display:initial
时,它将根据上述文档状态变为display:inline
。
答案 1 :(得分:9)
初始值:内联
...指出用户代理的官方建议是将display:initial
解释为display:inline
,而不是元素类型的默认值(即block
<div>
},inline-block
<span>
等等...)。
因此,在实践中,在display:initial;
上设置<div>
会在尊重标准建议的用户代理中应用display:inline;
,而不是display:block;
,因为大多数开发人员都会想要承担。在 任何元素 上设置display:initial;
应该被解释为display:inline
。这就是它的意思。
最终,这很有用,因为它可以减少复杂属性(例如display
)的模糊性。
至于为什么MDN提供这些信息,一般来说,MDN和W3C /官方来源之间的矛盾很少(如果有的话),这使它成为一种有价值和可靠的资源。它的主要质量是以更易于访问的格式(比官方文档)为没有扎实的Web技术/概念背景的人提供信息。
就个人而言,除了阅读文章/示例本身之外,我发现自己经常使用它作为获取任何网络概念的完整官方资源列表的最快方式,因为你总能在最后找到链接。关于该主题的MDN文章(如适用)。
答案 2 :(得分:6)
这两件事情没有关系。
属性的初始值是指该属性的CSS定义的默认值。每个CSS属性都有一个初始值,无论元素类型如何,因为CSS属性不以任何方式与任何文档语言的元素相关联。此初始值旨在作为无法识别的元素的默认值,以保证每个元素都具有用于级联目的的每个属性的值,从而确保浏览器知道如何在遇到它时呈现该无法识别的元素。
所谓的&#34;默认值&#34;属性只是浏览器在其UA默认样式表中设置的任意值。 HTML5规范包含一个参考文档,关于哪些默认值应该应用于哪些HTML元素,哪些浏览器主要遵循,但这与CSS的初始值概念完全无关(也不与其初始值的定义相矛盾,因为it defines default styles separately为&#34;用户代理级别样式&#34;)。
&#34;另一方面,适用于&#34;与初始值无关。即使某个属性仅适用于某些类型的元素,这些元素始终也会包含每个CSS属性,包括不适用于它们的属性。什么&#34;适用于&#34;实际上意味着&#34;对#34;有影响。如果某个属性不适用于某个元素,则只表示该元素无效。
例如,您可能会发现flex
属性only applies to flex items。但是,每个元素都有一个flex
属性,无论它是否真的是一个弹性项目,并且它们几乎都具有初始值,因为我不知道任何UA样式改变它的值来自任何元素的初始值。你仍然可以在一个不是灵活项目的元素上设置一个任意值,它根本就没有效果 - 但是你可以强制灵活的作为这个元素的子元素的项目继承{{{ 1}}(你实际上不会这样做,我只是陈述一个例子)。
事实上,flex: inherit
和ul
元素中存在一个真实世界的例子 - 许多作者(包括我自己)在这些元素上设置列表样式,当你看到的列表标记真的属于对于继承其列表样式的ol
子项,由于列表样式仅适用于列表项,li
和ul
本身不是列表项。
如上所述,W3Schools不是官方文档。为了避免混淆,假设W3Schools不存在。如果它更容易理解,继续使用MDN,但总是与位于w3.org和whatwg.org的官方规范交叉引用(MDN通常很好地链接到它,它几乎从不链接到W3Schools)。 p>
答案 3 :(得分:4)
每个用户代理(浏览器)都为HTML页面应用默认样式表。您可以在默认的HTML4 style sheet中看到:
dir, hr, menu, pre { display: block; unicode-bidi: embed }
li { display: list-item }
head { display: none }
...
根据元素更改默认显示属性。
答案 4 :(得分:2)
原生 xhtml 浏览器也是如此。 HTML浏览器完全不同,它不必等待单独的指令。在HTML中,所有已知元素默认情况下都预定义了显示渲染。 (这当然可以被覆盖)。
有些浏览器根本不支持样式。 HTML标记 语义 。所有xhtml都是 泛型 ,当然,默认情况下,所有标签都同样[未知]且不加思索地内联。