有谁知道我是否可以在网页中使用自定义 HTML 属性,大多数移动设备都可以读取它?或者某些设备会默认忽略属性?换句话说:安装在移动设备中的大多数默认网络浏览器都能够处理自定义属性?
我有一些这样的代码:
<input type="text" id="txt1" value="0" percent="50" idColor="12">
有谁知道我是否可以在网页中使用自定义 HTML 属性,大多数移动设备都可以读取它?或者某些设备会默认忽略属性?换句话说:安装在移动设备中的大多数默认网络浏览器都能够处理自定义属性?
我有一些这样的代码:
<input type="text" id="txt1" value="0" percent="50" idColor="12">
您正在谈论的项目是属性。如果网络浏览器不理解某个特定属性,它应该忽略它们。
现代浏览器通常将未知属性视为分配给元素的属性,没有任何默认影响,但在 CSS 和 JavaScript 中被识别为属性。例如,在您的情况下,CSS 选择器input[idColor]
将匹配那些input
具有属性的元素idColor
,即使 HTML 规范中没有定义这样的属性。
然而,在 JavaScript 中,它们通常不能直接作为属性使用,因此例如document.getElementById('txt1').percent
会 yield undefined
,尽管存在浏览器差异。但document.getElementById('txt1').getAttribute('percent')
会屈服50
。
我希望这也适用于移动浏览器,尽管我只在 Android 上进行了测试。
然而,在 HTML 中组成自己的属性名称是不安全的。如果未来的某个 HTML 规范,或者只是某个浏览器,为一个名为 的属性赋予了意义,会发生percent
什么?对于我们现在所能做的一切,其含义可能非常令人惊讶。
因此,在客户端脚本中使用携带任意数据的属性的推荐方法是使用以 .开头的名称data-
。这为您提供了自己的命名空间。任何合理的浏览器或搜索引擎都不会将此类属性视为页面作者的私人游乐场,不要搞砸。所以最好使用 eg data-percent="50" data-color="12"
。