【发布时间】:2013-10-08 20:34:04
【问题描述】:
我很好奇定义自己的元素并使用 JavaScript 或 JQuery 选择它们是否可靠。
我遇到了"Are custom elements valid HTML5?" 的问题,但我对半生不熟的规范不感兴趣,也对定义我自己的元素的正式方式不感兴趣。
我只是想知道,例如我是否使用
<orange-juice />
在我的文档中并尝试像这样选择它(通过 CSS,通过 jQuery)
orange-juice.fresh
它是否可以跨浏览器工作(当然,它甚至可能受到 HTML5 规范的一部分明确允许的支持?)
编辑:跨浏览器,如 IE9+ 和主要桌面浏览器。
编辑: 也许橙汁的例子有点误导,就像提到 CSS 一样。我不想创建自己的语义元素,也不想真正设置内容样式,我想附加一些元信息,然后由脚本解释。它同样可以是一个带有数据属性的空 div,但我觉得<my-meta-element /> 会比<div id="i-am-just-an-innocent-fill-in-carrying-some-information-which-does-not-have-anything-to-do-with-me-being-a-generic-block-displayed-element"></div> 更好的选择
【问题讨论】:
-
不这么认为。你为什么要这个?语言和验证器是为了一致性和可重用性而创建的。
-
定义“跨浏览器”。我知道这在 IE8 中不起作用。
-
好吧..它可能很容易测试,所以尝试一下,让我们知道!
;) -
看看这个答案stackoverflow.com/a/11467718/603520。简而言之,答案可能是,但正如@f00bar 所说,试一试,让我们知道。不过我不建议这样做。
-
正如@adeneo 所说,有一种技术可以让你做到这一点,这基本上是通过使用 Javascript 创建它们(一旦将自定义元素添加到 DOM,即使 IE8 也不会忽略它们)。查看 HTML5shiv 以了解他们如何在旧浏览器中将其作为 HTML5 元素的 polyfill。