标记是默认情况下不显示的常规标记

时间:2013-04-21 11:35:55

标签: html

我注意到在Chrome浏览器的网页中,<head>标记已分配了CSS {display: none;}

这让我想到,<head>标签只是浏览器决定不显示的常规标签

即使这没有明显的用途,我是否可以在<cheese>标记的位置使用<head>标记并使用css "cheese {display: none;}"来实现与一个<head>代码?

3 个答案:

答案 0 :(得分:5)

<head>display:none

是的,<head>标记是常规标记,就像其他应用了display:none;的默认用户代理样式表一样。我可以做的很酷的技巧来证明这是为了展示你的风格:

jsFiddle

head,
style {
    display:block;
}

为了获得额外的乐趣,您可以将contenteditable添加到头标记中,以便您可以在页面内编辑页面的样式。

jsFiddle

<cheese>

至于创建一些像<cheese>这样的随机标签,这不会像预期的那样有效(好吧可能不会),因为浏览器不期望它。当您使用不符合规范的HTML进行操作时,可能无法以标准方式处理。

这方面的一个示例是当您尝试在旧版本的IE中使用新的HTML5语义标记(<section><nav>,...)时,他们无法识别它们并将其弄乱翻页。引入Modernizr应用一些polyfill来修复此问题并模拟常规<div>

答案 1 :(得分:3)

就纯粹显示而言 - 是{display:none;}会隐藏你的元素。

然而,HTML <head>在HTML中作为头元素的容器具有不同的含义,而<cheese>不会共享此内容。

浏览器知道它不会显示,搜索引擎抓取工具理解 <head>标记的特殊含义。

答案 2 :(得分:0)

浏览器呈现文档 body ,它包含在<body></body>标记对中。这是呈现和显示的文档的一部分。

HTML定义了自己的一组标签和组成语言的属性。文档类型声明(DTD)定义所包含文档正在使用的标记和属性集。因此,当你的DTD用于HTML5时,你使用特定于HTML5的标签和属性(或者更确切地说,你应该,浏览器也应该这样做。)

因此,如果您想要添加自己的标记,比如说<cheese>,您可以将它放在文档的任何位置,如果它在<body></body>标记对中,则浏览器更有可能呈现字面上的标签(因为它不是HTML的一部分,它不知道如何处理它)。

如果您要在<body></body>代码之前添加它,那么您的文档将不会格式正确(即,它不遵循HTML文档类型的规则),但它对浏览器呈现的内容没有任何影响。