HTML(或者只是XHTML?)对于标签上的非标准属性,它是相对严格的.如果它们不是规范的一部分,那么您的代码将被视为不符合规范.

但是,非标准属性对于将元数据传递给Javascript非常有用.例如,如果假设链接显示弹出窗口,则可以在属性中设置弹出窗口的名称:

<a href="#null" class="popup" title="See the Popup!" 
   popup_title="Title for My Popup">click me</a>

或者,您可以将弹出窗口的标题存储在隐藏元素中,如范围:

<style>
    .popup .title { display: none; }
</style>
<a href="#null" title="See the Popup!" class="popup">
    click me
    <span class="title">Title for My Popup</span>
</a>

然而,对于哪种方法应该是更好的方法,我却左右为难.第一种方法更简洁,我猜也不会对搜索引擎和屏幕阅读器造成太大影响.相反,第二种 Select 使存储大量数据变得更容易,因此更具通用性.它还符合标准.

我很好奇这个社区的 idea 是什么.你是怎么处理这种情况的?第一种方法的简单性是否超过了潜在的缺点(如果有)?

推荐答案

我是建议的HTML5解决方案(data-个前缀属性)的忠实粉丝.编辑:我想补充的是,对于自定义属性的使用,可能还有更好的示例.例如,自定义应用程序将使用的标准属性中没有类似项的数据(例如,基于不一定可以用className或id表示的内容对事件处理程序进行自定义).

Html相关问答推荐

如何将背景图像放置在窗口的最顶部?

在inline-box中设置线高会使CSS中的高度变得奇怪

如何改进这个jQuery滑动器的功能?

springBoot + Thymeleaf:属性中的UTF-8

使用tauri构建的Next.js应用程序不显示我的404页面

垂直页眉,每行只显示一个使用css的字母

Angular /HTML5不会播放本地文件夹中的音频mpeg

如何在元素的三条边中间换行边框?

不能以Angular 更改输入的S边框 colored颜色

滚动平滑在笔记本电脑上不起作用,但在Nextjs网站的手机浏览器中起作用

Tailwind CSS 忽略我的元素的填充

jquery向单词中的一组字母添加跨度

CSS Grid 布局:1 大图和 3 小图

获取链接到功能的网页表单

CSS 网格跨度行到所有行

在带有换行文本的工具提示中显示溢出文本

屏幕缩小时背景图像裁剪高度

是否可以使 huxtable 输出悬停?

防止 HTML 表格在 Quarto 中使用全页宽度

网站页脚中的 Quarto 安装版本