Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 我为什么要用“为什么?”;数据-“;在我的属性中还是标记中的破折号?_Html_Custom Data Attribute_Custom Tag - Fatal编程技术网

Html 我为什么要用“为什么?”;数据-“;在我的属性中还是标记中的破折号?

Html 我为什么要用“为什么?”;数据-“;在我的属性中还是标记中的破折号?,html,custom-data-attribute,custom-tag,Html,Custom Data Attribute,Custom Tag,根据许多最近的HTML规范,当我们使用自定义属性(指规范中未定义的任何属性)时,我们应该在它们前面加上data-。然而,我认为没有理由这样做(除非您需要完全有效的HTML,显然)。几乎所有当前浏览器都正确地忽略了自定义属性,这意味着除了与其他代码中同名的属性之外没有冲突,我们甚至可以忽略带有自定义前缀或类似内容的属性(如上所示)。如果有的话,还有什么好处?至少有人问过这个问题,但这两个问题都很老了 我忘了在哪里读过它,但一些指南说自定义HTML标记需要破折号,而单单词标记无效。首先,为什么?第二

根据许多最近的HTML规范,当我们使用自定义属性(指规范中未定义的任何属性)时,我们应该在它们前面加上
data-
。然而,我认为没有理由这样做(除非您需要完全有效的HTML,显然)。几乎所有当前浏览器都正确地忽略了自定义属性,这意味着除了与其他代码中同名的属性之外没有冲突,我们甚至可以忽略带有自定义前缀或类似内容的属性(如上所示)。如果有的话,还有什么好处?至少有人问过这个问题,但这两个问题都很老了

  • 我忘了在哪里读过它,但一些指南说自定义HTML标记需要破折号,而单单词标记无效。首先,为什么?第二,我们应该这样做吗?为什么(除了有效之外)?下划线或camelCase等是否有问题。?此外,如果与
    数据
    属性一样,您为它们添加前缀或后缀等,则与现有元素的冲突不应成为问题。请再次参阅


  • 我相信所有这些问题以前都被问过,但我正在把它们结合在一起。这是一个好主意吗(快,有人问Meta)?

    数据-*属性有两个优点:

  • 这是一个惯例,意味着其他程序员将很快理解它是一个自定义属性
  • 您可以免费获得一个DOM Javascript API:。如果您使用jQuery,它将利用它来填充您找到的键和值
  • 自定义元素名称中出现
    -
    的原因是:

  • 这是一种让HTML解析器知道它是自定义元素而不是标准元素的快速方法
  • 如果为DOM元素注册自定义Javascript原型,则不会遇到添加具有相同名称的新标准元素会导致冲突的问题

  • 您应该使用自己的自定义元素名称吗?现在,它是如此的新,所以不要期望它会得到完全的支持。假设它确实有效。你必须平衡额外的复杂性和好处。如果你可以不使用类名,那么就使用类名。但是,如果您需要一个全新的元素,并为该元素提供一个定制的Javascript DOM原型,那么您可能会有效地使用它。

    对于
    数据-
    #1,idk,“data”似乎是一个奇怪的选择。我想这是使用它的另一个原因,因为它在HTML代码中就像一个受伤的拇指。对于自定义的
    破折号
    元素(这可以是它们的新名称吗?)#2,请参见我所说的
    数据
    属性。你可以加个前缀什么的。我会更新我的问题。你链接到的那篇文章就是我想到的那篇文章。不过,“让解析器知道它不是标准元素”的理由对我来说没有意义。你能解释一下吗?浏览器将HTML代码解析成各种模型和对象,这样我们就有了一个网页。其中一些模型是幕后的,而其他部分我们可以通过Javascript和CSS进行交互。除了一些默认样式(vs)之外,许多元素之间没有太大差异。但有些确实具有特殊属性,如:,等等。一些特殊属性在幕后,例如解码视频文件,然后其中一些具有特殊的Javascript方法,例如。浏览器想知道元素是否为自定义元素的原因是,如果您定义自定义元素,它将继续查找自定义元素的自定义Javascript DOM原型。通过知道名称是custom,它就知道以后可能需要对其应用自定义Javascript原型。好的,因此标记的自定义是一种预防措施,但是像这样的
    数据-
    有什么原因吗?而且,如果你给了它,它可能会事先知道&不知道你是否不知道,但是否有任何性能改进等。?如果你使用像AngularJS这样的东西,它能完成所有的举重任务吗?