Html 为什么我要在我的自定义属性前面加上";数据-“;?
因此,我使用的任何自定义数据属性都应该以“data-”开头:Html 为什么我要在我的自定义属性前面加上";数据-“;?,html,attributes,custom-data-attribute,Html,Attributes,Custom Data Attribute,因此,我使用的任何自定义数据属性都应该以“data-”开头: 约翰说:你好,你好吗? 如果我忽略这一点,会发生什么坏事吗?即: <li class="user" name="John Resig" city="Boston" lang="js" food="Bacon"> <b>John says:</b> <span>Hello, how are you?</span> </li> 约翰说:你好,你
约翰说:你好,你好吗?
如果我忽略这一点,会发生什么坏事吗?即:
<li class="user" name="John Resig" city="Boston"
lang="js" food="Bacon">
<b>John says:</b> <span>Hello, how are you?</span>
</li>
约翰说:你好,你好吗?
我想一件坏事是,我的自定义属性可能与具有特殊含义的HTML属性冲突(例如,name
),但除此之外,仅仅编写“示例文本”而不是“数据示例文本”是否有问题?(它不会验证,但谁在乎呢?根据,将这些自定义数据属性添加到HTML5 SEPC的全部目的是允许在仍然有效的情况下将自定义数据嵌入HTML中
如果您不关心验证(并且,正如您所说,您的自定义属性不会与现有的HTML属性冲突,如
name
、id
、style
,等等),那么我想您不必使用数据-
前缀。但是考虑到编写有效的、兼容的代码并不是一个巨大的成本,我不明白您为什么不这么做。保留以数据为前缀的自定义属性有几个好处-*
input
元素上的required
属性已知在过去的一些流行网站上有一些冲突)我想我的问题是,我从编写验证代码中得到了什么价值?(考虑到重复输入无意义的“data-”前缀并不是没有成本的)首先,您可以使用验证器来发现标记中的问题。当你在一个页面上工作时,这是一个巨大的胜利,因为在一个长页面上很容易失去一个结束div或其他东西。如果你定期确保你的标记是有效的,你就更有可能在不可避免的错误出现后很快找到它们。我不会屏住呼吸等待(2),但(1)和(3)是好的点你会想到浏览器引入新功能的日子很慢,而且很少。现在大多数浏览器都支持
数据集
元素属性,以简化对数据-*
属性的访问:lang属性是用于普通口语的默认html属性。在当前上下文中使用它会与它的默认行为冲突,这是为什么应该使用data-*前缀的一个完美例子。数据属性有一个主要缺点:您无法轻松看到JavaScript为元素设置的值,除非您从JavaScript获取这些值,否则它不会出现在DOM中。这就是为什么我总是使用较短的形式,即使它有点冒险
<li class="user" name="John Resig" city="Boston"
lang="js" food="Bacon">
<b>John says:</b> <span>Hello, how are you?</span>
</li>