首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >那么,如果自定义HTML属性不是有效的XHTML呢?

那么,如果自定义HTML属性不是有效的XHTML呢?
EN

Stack Overflow用户
提问于 2009-06-15 07:26:42
回答 11查看 18.9K关注 0票数 78

我知道这是一些人不赞成他们的原因,但这真的很重要吗?我认为,在与JavaScript交互以及从服务器存储信息和向服务器发送信息时,它们提供的功能超过了对验证的关注。我是不是遗漏了什么?“无效”HTML的后果是什么?难道定制的DTD不能解决这些问题吗?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2009-06-15 07:29:34

其分支是w3c在2年、5年、10年后出现,并创建具有相同名称的属性。现在你的页面坏了。

HTML5将为合法的自定义属性(如data-myattr="foo")提供数据属性类型,因此您现在就可以开始使用它,并且可以合理地避免将来的名称冲突。

最后,您可能会忽略自定义逻辑是class属性背后的理性。尽管它通常被认为是一个样式属性,但实际上它是在元素上设置自定义元属性的一种合法方式。不幸的是,您基本上只能使用布尔属性,这就是HTML5添加数据前缀的原因。

顺便说一句,我所说的“基本上布尔型”是指原则上的。实际上,没有什么可以阻止您在类名中使用分隔符来定义自定义值和属性。

class="document docId.56 permissions.RW"

票数 76
EN

Stack Overflow用户

发布于 2009-06-15 08:22:08

验证本身并不是目的,而是一种工具,用于帮助及早发现错误,并减少在多种浏览器类型上使用网页时可能面临的神秘渲染和行为问题的数量。

添加自定义属性现在不会影响这些问题中的任何一个,将来也不会这样做,但由于它们不会验证,这意味着当您评估页面验证的输出时,您需要在重要的验证问题和不重要的问题之间仔细选择。每次更改页面并重新验证时,您都必须重复此操作。如果您的页面完全通过验证,那么您将获得一条漂亮的绿色PASS消息,并且您可以继续进行下一阶段的测试,或者进行下一步需要进行的更改。

票数 10
EN

Stack Overflow用户

发布于 2009-06-15 07:45:57

我见过痴迷于验证的人做着比使用简单的自定义属性更糟糕/奇怪的事情:

代码语言:javascript
复制
<base href="http://example.com/" /><!--[if IE]></base><![endif]-->

在我看来,自定义属性真的无关紧要。正如其他人所说,关注标准中未来添加的属性可能是很好的。但是现在我们在HTML5中有了data-*属性,所以我们被保存了。

真正重要的是您有正确的嵌套标记和正确的引号属性值。

我甚至使用自定义标记名称(由HTML5引入的名称,如header、footer等),但这些名称在IE中有问题。

顺便说一句,我经常发现讽刺的是,所有那些验证狂热分子是如何在谷歌的聪明技巧面前低头的,比如iframe上传。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/994856

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档