html - 为什么有些名称,例如 none 与 hidden 以及 href 与 src 在 CSS 和 HTML 中如此不一致?

标签 html css naming w3c

您好,这是一个概念性的问题。 W3C 是如何决定使用hiddennone 的?我问是因为我是 ESL 人(英语作为第二语言)。如果我使用 overflow: hidden,那么也可以使用 overflow: nonedisplay: nonevisibility: hidden 也是如此。难道不能只是 display: nonevisibility: 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">

scriptlink 的区别在于,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/

相关文章:

html - 取消 Bootstrap 的 noclose 类

javascript - 切换到备用样式表时如何防止出现主样式表?

创建一个文本文件,其中文件名基于一个或两个数组中的值

c# - Image.FromFile 为无效图像格式抛出 OutOfMemoryException 是否有原因?

html - knockout 过滤器无法正常工作

html - 用纯CSS显示视网膜显示图像

HTML - srcset 不能使用 w?不产生图像?

firefox - CSS3 转换(连接到 JS 类更改)在 FF 中不起作用

c++ - "congruent hash"与 "identity hash"是否有标准名称/模板原型(prototype)?

html - div 触摸浏览器的左端和右端