Jquery “定义”是否是一种不良做法;海关;HTML标记

Jquery “定义”是否是一种不良做法;海关;HTML标记,jquery,html,css,Jquery,Html,Css,我正在代码中使用自定义HTML标记()。这是一种不好的做法,如果是的话,应该用什么来代替 在我看来,它增加了代码的可读性,因为它在标记名中具有含义,而不是创建自定义HTML标记现在已经非常好了,但是,您需要知道如何正确创建它们,以获得更好的浏览器支持。确保它们有“意义”,或“角色”,以提高可读性。当使用web组件时,这是非常棒的 下面是一篇关于创建自定义html元素的好文章: 自定义HTML标记被误解,实际上应该被视为最佳实践 浏览器将下载并解析具有自定义或未知标记的标记,而不会产生任何问题。浏

我正在代码中使用自定义HTML标记(
)。这是一种不好的做法,如果是的话,应该用什么来代替


在我看来,它增加了代码的可读性,因为它在标记名中具有含义,而不是

创建自定义HTML标记现在已经非常好了,但是,您需要知道如何正确创建它们,以获得更好的浏览器支持。确保它们有“意义”,或“角色”,以提高可读性。当使用web组件时,这是非常棒的

下面是一篇关于创建自定义html元素的好文章:

自定义HTML标记被误解,实际上应该被视为最佳实践

浏览器将下载并解析具有自定义或未知标记的标记,而不会产生任何问题。浏览器还将使用您提供的CSS规则为它们设置样式。下面是一个例子:

HTML

Hello自定义标记

CSS

my-alert[status="success"] { 
  color: white;
  background-color: green; 
}
.alert.alert-success { 
  color: white;
  background-color: green; 
}
前端世界对类的狂热(部分原因是旧浏览器无法很好地处理未知标记*),因此上述操作通常如下所示:

HTML

Hello自定义标记

CSS

my-alert[status="success"] { 
  color: white;
  background-color: green; 
}
.alert.alert-success { 
  color: white;
  background-color: green; 
}
两者的工作原理完全相同,但自定义标记设计与自定义元素规范一致,使用熟悉的HTML构造(标记、属性、嵌套),并准备此小静态警报,以基于标准的向后兼容方式演变为真正的自定义元素或Web组件。我认为自定义标记代码看起来比一个包含大量类的非语义标记要好得多

这里有一个更深入的解释(完全披露:我写的):

*旧的HTML 2.0规范在处理未知标记时不是很容错,但幸运的是,HTML 4.01中发生了变化:

为了促进不同版本HTML实现之间的实验和互操作性,我们建议以下行为:

如果用户代理遇到它无法识别的元素,它应该尝试呈现该元素的内容。 如果用户代理遇到它无法识别的属性,它应该忽略整个属性规范(即属性及其值)。 如果用户代理遇到无法识别的属性值,则应使用默认属性值。 如果遇到未声明的实体,则应将该实体视为字符数据


供参考:

自定义元素的主要问题是,如果将来将它们添加到标准或浏览器中,则会发生冲突。您应该添加前缀。这将解决未来的冲突。看看下面的答案,我没意识到我在定制标签上落后于时代。很好的答案和链接文章-我喜欢自定义标记+属性方法,而不是一个类列表<代码>状态一个有效属性?我认为您必须使用数据前缀,例如
data status
它不是标准属性,但它是有效的标记。如果你使用一个自定义的前缀标签,将来也不会有冲突的风险。据我所知,标签中不允许使用减号。一些浏览器可能仍然接受它。Quote:“标记包含一个标记名,给出元素的名称。HTML元素的名称都只使用U+0030位零(0)到U+0039位九(9)之间的字符,U+0061拉丁文小写字母A到U+007A拉丁文小写字母Z,以及U+0041拉丁文大写字母A到U+005A拉丁文大写字母Z。在HTML语法中,标记名,即使是外来元素的标记名,也可以使用大写字母和小写字母的任意组合来编写,当转换为所有小写字母时,这些字母与元素的标记名匹配;标记名是大小写插入的好听的。”