在 Chrome 中查看网页时,我注意到该<head>
标签已{display: none;}
分配了 CSS。
这让我想到,<head>
标签只是浏览器决定不显示的常规标签吗
即使这没有明显的用处,我是否可以使用<cheese>
标签代替<head>
标签并使用 css"cheese {display: none;}"
来实现与标签相同的功能<head>
?
在 Chrome 中查看网页时,我注意到该<head>
标签已{display: none;}
分配了 CSS。
这让我想到,<head>
标签只是浏览器决定不显示的常规标签吗
即使这没有明显的用处,我是否可以使用<cheese>
标签代替<head>
标签并使用 css"cheese {display: none;}"
来实现与标签相同的功能<head>
?
<head>
和display:none
是的,该<head>
标签是一个常规标签,就像任何其他应用了默认用户代理样式表的标签一样display:none;
。我很酷的技巧,你可以证明这是展示你的风格:
head,
style {
display:block;
}
为了获得额外的乐趣,您可以添加contenteditable
到您的 head 标签中,以便您可以从页面内编辑页面的样式。
<cheese>
至于创建一些随机标签,如<cheese>
,这不会按预期工作(很可能不会),因为浏览器并不期待它。当您在 HTML 中做不在规范中的事情时,它可能不会以标准方式处理。
例如,当您尝试在旧版本的 IE 中使用新的 HTML5 语义标签(、、、<section>
... <nav>
)时,它们无法识别它们并导致页面乱码。引入 Modernizr 应用了一些 polyfill 来解决这个问题并模拟常规的<div>
.
就纯显示而言 - 是的{display:none;}
将隐藏您的元素。
然而,HTML<head>
在 HTML 中作为 head 元素的容器具有独特的含义,<cheese>
但并不共享这一点。
浏览器知道它不会被显示,并且搜索引擎爬虫了解<head>
标签的特殊含义。
浏览器呈现包含在标签对中的文档正文。<body></body>
这是呈现和显示的文档部分。
HTML 定义了自己的一组标签和属性,这些标签和属性构成了该语言。文档类型声明 (DTD) 定义了所附文档使用的标记和属性集。因此,当您的 DTD 用于 HTML5 时,您可以使用 HTML5 特定的标签和属性(或者更确切地说,您应该和浏览器也应该这样做)。
因此,如果您想将自己的标签添加到组合中,例如<cheese>
可以将其放在文档中的任何位置,如果它在<body></body>
标签对中,则浏览器更有可能按字面意思呈现标签(因为它不是 HTML 的一部分,它不知道该怎么办)。
如果将它添加到<body></body>
标签之前,那么您的文档将不会形成良好的格式(即,它不遵循 HTML 文档类型的规则),但它不会影响浏览器呈现的内容。