我之前在多个网站上看到过这种情况。
我要做的是使用<header>
和<description>
以及<contact>
这样的标签,而不是任何属性,代替评论,因为它看起来更清晰。
然而,我想知道他们是否会因此而产生任何影响,以及它是否安全?
答案 0 :(得分:2)
简短回答;别。它将无效(除了在XHTML中你可以添加这样的标签)
它不仅会在某些浏览器中破坏,而且其他人也会感到困惑。
看到这个qustion: https://stackoverflow.com/questions/211394/when-to-use-custom-html-tags
答案 1 :(得分:2)
答案 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)
只考虑:
document.createElement('custom-tag')
这意味着您的网站只能在启用JavaScript的情况下正确呈现 <span>
,这意味着您必须编写CSS以将其声明为custom-tag { display: block }
<pane>
和<tab>
)。<div>
并且没有现有的HTML 4/5
等效即可。对于Web应用程序尤其如此
解析DOM以创建特殊标记/属性/类
组件(如Angular.js)。