在HTML5中,使用CSS定义自己的标签是否可以?我知道它通常可以看作是不好的做法,但为什么呢?为什么没有开发人员可以使用的XHTML5?
EDIT ============================================== =============编辑 有人问如何定义自己的标签,所以这是一个例子。假设我想将文本向右移动10个像素。我有几个选项:
<li>
等等moveright
,然后输入我的CSS:moveright {margin-left:10px;}
在大多数情况下,我会在课程中使用div
,但如果我必须多次使用,我可能想要使用最后一个选项,以节省自己的输入。所以,简而言之就是懒惰。而且,喜欢HTML5,XML和CSS3的人!
答案 0 :(得分:7)
截至今天,定义您自己的HTML5标签并不是一件好事。 HTML5规范明确禁止它。原因是为了避免与将来添加的官方HTML5标签和人们的自定义标签发生任何潜在的冲突。
在实践中,你可以做到;几乎每个浏览器都允许你这样做,它会起作用,但你会破坏规范。
然而,目前正在制定一项旨在允许它的规范修正案。这个规范尚未最终确定,但它已被少数人使用。
新规范基本上说如果你想定义自己的标签,它就没问题;只需将x-
添加到代码名称的前面。
因此,您需要创建<x-mytag>
,而不仅仅是<mytag>
。
我建议密切注意W3C的规格,看看它何时完成,以及它们是否会进行最后一分钟的更改,但就目前而言,我会继续使用它。
但是,请记住,此用途的目的是创建小部件。换句话说,例如,如果您正在构建自己的组合框或树视图控件。它并不是真的只是在文档流中随意创建新标记 - 我们已经有了HTML类;如果您对元素的所有操作都是基本样式,那么只需使用div
和类。
希望有所帮助。
参考文献:
当前规范:http://www.w3.org/html/wg/drafts/html/master/dom.html#elements
作者不得使用本规范或其他适用规范不允许的元素,属性或属性值,因为这样做会使语言在将来更难扩展。
Brand new article from HTML5Rocks
本文非常好地解释了如何创建符合新规范的自定义元素。如果你想做这类事,那就是必读。
但要注意文章顶部的警告,在这个答案中回应我自己:
抬起头来!本文讨论的API尚未完全标准化且仍在不断变化。在您自己的项目中使用实验API时要小心。