您好,这是一个概念性的问题。 W3C 是如何决定使用hidden
与none
的?我问是因为我是 ESL 人(英语作为第二语言)。如果我使用 overflow: hidden
,那么也可以使用 overflow: none
。 display: none
和 visibility: hidden
也是如此。难道不能只是 display: none
和 visibility: none
,因为真正造成差异的是属性 display
和 可见性
而不是它们的值(value)。这更像是一个解释的请求。例如,类似的“奇怪”事情发生了:
<script src="file.js">
和
<link href="file.css">
为什么不同?我了解所有这些在技术上是如何工作的,我只是好奇他们是如何决定属性的名称的。
谢谢。
最佳答案
这些实体(元素、属性、特性等)之所以被命名为不同的东西,是因为它们有不同的用途。让我们从头开始并浏览您的示例。
显示与可见性
display: none;
visibility: hidden;
从the CSS 2.1 specification可以看出,值 none
用于许多不同的属性,以指示不应显示属性的视觉方面。因此,如果该属性是 float
,则 none
表示该元素不是 float 的。对于属性(property)display
, none
表示不显示。
对于 visibility
, hidden
不同,因为它不像display
,不影响元素流。元素的框仍将被渲染,但它将是不可见的。如果您将值 none
赋予 visibility
,它在语义上与 display: none
的含义完全相同,但事实并非如此。
溢出
overflow: hidden;
overflow: none;
这些意味着不同的东西。 hidden
表示溢出元素大小的内容将被裁剪,而none
表示没有溢出控制;实际上关闭溢出。 none
不是 overflow
的有效值, 但在这种情况下,visible
具有相同的效果。
src 与 href
<script src="file.js">
<link href="file.css">
script
和 link
的区别在于,script
的主要目的是嵌入(内联,或通过引用通过src
属性)HTML 文档中的脚本,link
的目的是引用万维网上的其他 URI。您使用 link
来引用 CSS 样式表的事实不是很直观;更直观的解决方案可能是:
<style src="file.css" />
我不知道 HTML 工作组为什么选择使用 link
而不是 style
的详细信息,但通过一些挖掘,似乎link
元素已存在于 HTML 1.0 中和 HTML 2.0直到 HTML 3.0 才引入 style
.
围绕样式表语言的讨论早在 in 1993 就开始了(同年 HTML 1.0 完成)而 HTML 3.0 直到 1995 年才完成,他们在发明 style
元素之前找到了一种嵌入样式表的方法是有道理的。
关于html - 为什么有些名称,例如 none 与 hidden 以及 href 与 src 在 CSS 和 HTML 中如此不一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7355144/