8

在 Chrome 中查看网页时,我注意到该<head>标签已{display: none;}分配了 CSS。

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

即使这没有明显的用处,我是否可以使用<cheese>标签代替<head>标签并使用 css"cheese {display: none;}"来实现与标签相同的功能<head>

4

3 回答 3

6

<head>display:none

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

jsFiddle

head,
style {
    display:block;
}

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

jsFiddle

<cheese>

至于创建一些随机标签,如<cheese>,这不会按预期工作(很可能不会),因为浏览器并不期待它。当您在 HTML 中做不在规范中的事情时,它可能不会以标准方式处理。

例如,当您尝试在旧版本的 IE 中使用新的 HTML5 语义标签(、、、<section>... <nav>)时,它们无法识别它们并导致页面乱码。引入 Modernizr 应用了一些 polyfill 来解决这个问题并模拟常规的<div>.

于 2013-04-21T11:40:22.523 回答
3

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

然而,HTML<head>在 HTML 中作为 head 元素的容器具有独特的含义,<cheese>但并不共享这一点。

浏览器知道它不会被显示,并且搜索引擎爬虫了解<head>标签的特殊含义。

于 2013-04-21T11:39:49.837 回答
0

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

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

因此,如果您想将自己的标签添加到组合中,例如<cheese>可以将其放在文档中的任何位置,如果它在<body></body>标签对中,则浏览器更有可能按字面意思呈现标签(因为它不是 HTML 的一部分,它不知道该怎么办)。

如果将它添加到<body></body>标签之前,那么您的文档将不会形成良好的格式(即,它不遵循 HTML 文档类型的规则),但它不会影响浏览器呈现的内容。

于 2013-04-21T11:41:53.063 回答