自定义元素上的非数据属性可以成为标准属性吗? [已关闭]

问题描述 投票:0回答:1

在本文中,作者建议在设计语法高亮 Web 组件时使用

data-
属性。

给出的理由是:

从技术上来说,浏览器会让我们这样写属性:

<code-tab language="HTML" escaped="true" line-numbers="true">

但是,如果这些属性名称中的任何一个成为网络标准,则可能会导致问题。数据属性可以保护我们免受这种情况的影响,因为它们是开发人员定义的。

这是正确的吗?

属性本身可以成为网络标准吗?我假设它们的含义基于上下文,因此

language
上下文中的
code-tab
之类的属性将被视为该上下文中唯一的?

html web-component custom-data-attribute lit-element
1个回答
1
投票

是的,这是完全正确的,例如,最近 HTML 标准确实向所有元素添加了

popover
属性。如果您的自定义元素使用该属性,那么现在将使用默认的
display: none
规则1:

进行渲染

if (!("popover" in HTMLElement.prototype)) {
  console.warn("This browser doesn't support the popover attribute");
}
<my-elem>Some content</my-elem>
<my-elem popover>Hey!?</my-elem>

更好地使用

data-attribute
,或者已经在其他元素上定义的属性,因此不会将其作为全局属性,因为会发生冲突。


1。或者,如果您的组件足够流行,它可能会阻止标准使用完美合适的属性名称,因为它会破坏使用它的网站。

© www.soinside.com 2019 - 2024. All rights reserved.