没有功能的<custom> html标签?</custom>

时间:2011-07-10 17:15:41

标签: html css

我之前在多个网站上看到过这种情况。

我要做的是使用<header><description>以及<contact>这样的标签,而不是任何属性,代替评论,因为它看起来更清晰。

然而,我想知道他们是否会因此而产生任何影响,以及它是否安全?

6 个答案:

答案 0 :(得分:2)

简短回答;别。它将无效(除了在XHTML中你可以添加这样的标签)

它不仅会在某些浏览器中破坏,而且其他人也会感到困惑。

看到这个qustion: https://stackoverflow.com/questions/211394/when-to-use-custom-html-tags

答案 1 :(得分:2)

  1. 它们不是HTML(are
  2. 除外
  3. Internet Explorer(版本9除外)不允许您在没有JavaScript hacks的情况下设置样式
  4. 您可能会收到意外结果,尤其是在非可视用户代理(例如搜索引擎)和浏览器中使用DOM的工具(例如屏幕阅读器)中。
  5. 如果将来将它们添加到HTML中,它们可能并不意味着您的意图,默认样式表可能会以不必要的方式与您的样式表进行交互。

答案 2 :(得分:0)

如果您想制作其他标签,可以使用:

document.createElement("custom")

在javascript中,然后你可以使用

<custom>bla bla bla</custom>

并应用这样的CSS规则:

custom { display:none;}

这不是有效的HTML,建议不要这样做

答案 3 :(得分:0)

如果您阅读W3C的规范,您会发现浏览器不必冒泡任何异常。浏览器有许多解析器,一个用于 HTML ,一个用于 CSS ,另一个用于 JavaScript 。当您在HTML文档中使用自定义标记时,浏览器会尝试理解它,但它根本无法理解。但好处是,它不会抛出异常。换句话说,您的自定义元素不会在浏览器中造成任何问题。

但是,您放弃了有效徽章,也就是说,您的HTML文档将不再被视为有效。

从CSS的角度来看,将CSS应用于标记不仅限于官方HTML标记,因为您也可以将CSS应用于 XML 之类的内容(例如{{{ 3}})。因此,您可以在技术上跨浏览器格式化自定义元素。

如果你不介意,我会给你更好的建议。为什么不坚持社区认可的HTML5自定义属性?以data前缀开头,可以通过验证测试。防爆。 <a href='...' data-custom-attribute='custom-value'></a>

答案 4 :(得分:0)

首先,<header>实际上是一个有效的HTML5标记。因此,如果您计划使用它,因为它是您自己的定制发明而非有效标签,那么您需要提出替代方案。

一般来说,添加自己的标签不是一个好主意。

正如您在本回答的第一段中所看到的,没有什么可以说您选择作为“自定义”标签的标签将来不会成为标准标签。下一版本的HTML可能包含<description>标记。它可能在未来的浏览器中有规则与您使用它的方式相冲突。 <header>标记可能已经这样做了。要非常谨慎。

一般来说,使用现有的HTML标签要好得多,只需给它们一个表示其功能的类名即可。这是标准行为,也是浏览器所期望的。

如果您必须使用自定义标记,请对其进行样式化时非常小心,因为即使它在不同的浏览器中工作,它们也可能在不同的浏览器中获得不同的默认样式。这意味着您需要在每个浏览器的每个版本中彻底测试您的网站。显然,这是一种很好的做法,但使用自定义标签会使它变得更加重要,并且更有可能引发意想不到的怪癖。

自定义标记 可在大多数浏览器中使用。 HTML5添加了一堆新标签,它们几乎在所有现有浏览器中都运行得很好,尽管有些奇怪的样式。例外(一如既往)是IE,但即使在这里它也可以很容易地工作。

IE需要一个特殊的黑客来获得自定义样式。有一个小的Javascript工具,称为HTML5Shiv,它为所有新的HTML5标签执行此操作。 IE有一个怪癖,这意味着它不会接受它通过Javascript创建之前无法识别的标签,并且脚本会利用这个怪癖。很奇怪,但它确实有效。

因此,如果你真的想要一个自定义标签,它将适用于IE以外的所有浏览器。在IE中,您需要使用自定义标记执行Javascript createElement(),然后它才能正常工作。然后使用CSS重置样式表来确保它们在所有浏览器中看起来都一样。

所以可以做到。但我仍然不推荐它。

答案 5 :(得分:0)

自定义标签不是邪恶的

只考虑:

  • 默认情况下,IE 6-8无法识别它们 - &gt;您必须使用JavaScript来介绍您在页面上使用的每个自定义标记,例如:document.createElement('custom-tag')这意味着您的网站只能在启用JavaScript的情况下正确呈现
  • 在大多数浏览器中,您的自定义标记将被视为内联元素,如<span>,这意味着您必须编写CSS以将其声明为custom-tag { display: block }
  • 我找不到可以证明自定义标签对搜索引擎有任何负面影响的资源。实际上,Google发布了Angular.js,在其 front page 的示例中宣传了自定义代码(<pane><tab>)。
  • 大多数HTML编辑器会将自定义标记标记为无效HTML,因为它们是。
  • 您的网页将不再对HTML规范进行验证(这对您的网站意味着什么取决于您......)

总结:

  • 当有重要元素包含更多元素时,请使用自定义标记 意思是<div>并且没有现有的HTML 4/5 等效即可。对于Web应用程序尤其如此 解析DOM以创建特殊标记/属性/类 组件(如Angular.js)。
  • 如果您构建的只是一个内容正常的简单网站,请坚持下去 标准HTML。您希望您的网站也可以在没有的情况下工作 JavaScript已开启。
  • 如果您构建了一个 Web应用程序,那么自定义标记确实可以 有助于使源更清洁并表达特殊的语义,使用 他们。上面提到的所有负面含义(JavaScript必须是 打开/ CSS声明)对于这些情况并不重要 如果没有这些,您的Web应用程序将无法运行。同样的规则 适用于自定义属性。