千家信息网

如何理解HTML5中的标准属性与自定义属性

发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章将为大家详细讲解有关如何理解HTML5中的标准属性与自定义属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。正如 HTML5 语法中所阐述的,
千家信息网最后更新 2025年01月17日如何理解HTML5中的标准属性与自定义属性

这篇文章将为大家详细讲解有关如何理解HTML5中的标准属性与自定义属性,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

正如 HTML5 语法中所阐述的,元素可以包含属性(attributes)给一个元素设置各种属性(properties)。

有些属性被定义为全局的,可以用在任何元素上,而其他的被定义为元素特有的。所有的属性都有一个名称和一个值,看起来如下面的示例所示。

下面是一个使用 HTML5 属性的例子,演示了如何用名为 class 的属性和值 "example" 标记一个 div 元素:

...

属性只能在起始标签中指定,绝对不能用在结束标签中。

HTML5 属性不区分大小写,可以全部大写或者混合使用,尽管最常见的约定是始终使用小写。

标准属性
下面列出的属性几乎所有的 HTML5 标签都支持。

属性选项功能
accesskey用户自定义定义访问元素的键盘快捷键。
alignright, left, center水平对齐标签。
backgroundURL在元素后面设置一个背景图像。
bgcolor数值,十六进制值,RGB值在元素后面设置一个背景颜色。
class用户定义。分类一个元素,便于使用级联样式表。
contenteditabletrue, false定义用户是否可以编辑元素的内容。
contextmenuMenu id为元素定义上下文菜单。
data-XXXX用户定义。自定义属性。 HTML 文档的作者可以定义自己的属性。 自定义属性必须以 "data-" 开头。
draggabletrue,false, auto定义用户是否可以拖动元素。
height数字值定义表格,图像或表格单元的高度。
hiddenhidden定义元素是否应该可见。
id用户定义。命名元素,便于使用级联样式表。
item元素列表。用于组合元素。
itemprop条目列表。用于组合条目。
spellchecktrue, false定义元素是否必须有拼写或错误检查。
styleCSS 样式表。给元素定义内联样式。
subject用户定义 id。定义元素关联的条目。
tabindexTab number定于元素的 tab 键顺序。
title用户定义。元素的"弹出"标题。
valigntop, middle, bottomHTML 元素内标签的垂直对齐方式。
width数字值。定义表格,图像和表格单元的宽度。

自定义属性
HTML5 还引入了一个新特性,就是可以添加自定义的数据属性。

自定义数据属性以 data- 开头,基于我们的需求命名。下面是一个简单的例子:


...

上面的例子中两个叫做 data-subject 和 data-level 的自定义属性在 HTML5 中是完全有效的。我们还可以使用 JavaScript API 或者在 CSS 中以获取标准属性类似的方式获取它们的值。

在HTML元素中添加自定义属性,通过JavaScript进行访问,如果你之前有尝试过,你会发现,容易忽略标记验证,而HTML5可以为你提供在有效的网页内创建并使用自己的元素属性的功能。

创建HTML5文件:

如果你还没想好要使用哪一个,可以复制下面的代码:

XML/HTML Code复制内容到剪贴板

  1. >

  2. <

  3. html

  4. >

  5. <

  6. head

  7. >

  8. <

  9. script

  10. >

  11. /*functions here*/

  12. script

  13. >

  14. head

  15. >

  16. <

  17. body

  18. >

  19. body

  20. >

  21. html

  22. >


在body中设置自定义元素,在head部分脚本区域利用JavaScript元素进行访问。

创建元素:

首先,添加一些简单的内容和自定义属性以及ID等元素,以便我们能够识别JavaScript示例。

XML/HTML Code复制内容到剪贴板

  1. <

  2. div id="product1" data-product-category="clothing"

  3. >

  4. Cotton Shirt

  5. div

  6. >


正如你所看到的那样,自定义属性的形式为:"data-*",在"data-"部分设定名称或者你选定的名称。在HTML5中使用自定义属性,这是唯一有效的方法。因此,如果你想验证网页是否有效可才采用这种方法。

当然,项目细节部分决定了自定义属性对你是否有用,以及该将其如何命名。这个示例可适用于不同产品类别的零售网站。

自定义属性允许你以一种特殊的方式利用页面内的JavaScript代码来设置元素,例如,动画显示功能。如果没有标准的HTML元素,我们建议使用自定义属性。

添加测试按钮

在页面上利用自身的JavaScript元素即可执行事件,前提是将下面的代码添加到页面中:

XML/HTML Code复制内容到剪贴板

  1. <

  2. input type="button" value="get attribute" onclick="getElementAttribute('product1')"

  3. />


获取属性:

在JavaScript中访问属性最常用的方法是使用"getAttributes",这也是我们要做的第一步。在页面的head脚本区域添加以下函数:

JavaScript Code复制内容到剪贴板

  1. function getElementAttribute(elemID) {

  2. var theElement = document.getElementById(elemID);

  3. var theAttribute = theElement.getAttribute('data-product-category');

  4. alert(theAttribute);

  5. }

这里,我们为示例增加了alert 值,当然你也可以根据自身需求在脚本中添加。

获取数据:

你可以使用元素数据集来替代DOM "getAttributes",这或许更有效,尤其是在某种情况下,代码通过多种属性进行迭代,然而,浏览器对数据集的支持依然非常低,所以牢记这一点,此代码与//后面的方法一样可执行相同的进程。

//var theAttribute = theElement.getAttribute('data-product-category');
var theAttribute = theElement.dataset.productCategory;
从属性名称开始在数据集中删除"data-",它仍然包含在HTML中。

请注意,如果你的自定义属性名称中有一个连字符,当通过数据访问时这会呈现出camel-case形式,即("data-product-category" 变成"productCategory")。

其他模块、函数

我们已经获取该属性,脚本仍然可以设置和删除。下面的代码演示了如何使用标准的JavaScript模块和数据集来设置属性。

JavaScript Code复制内容到剪贴板

  1. //DOM method

  2. theElement.setAttribute('data-product-category', 'sale');

  3. //dataset version

  4. theElement.dataset.productCategory = "sale";

  5. 你也可以使用DOM方法或者数据集来删除某个属性:

  6. //DOM method

  7. theElement.removeAttribute('data-product-category');

  8. //dataset version

  9. theElement.dataset.productCategory = null;

在HTML5中实现自定义属性技术上并不是很复杂,真正困难的是选择使用的方法是否适用于你的项目;如果适用,该如何使其更有效?请记住,现在启用数据集方法作为页面功能还为时尚早,毕竟很多浏览器暂不支持此功能。

关于如何理解HTML5中的标准属性与自定义属性就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

属性 元素 数据 内容 用户 方法 标准 有效 代码 剪贴板 功能 名称 标签 面的 页面 剪贴 样式 示例 脚本 表格 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 如何让自己的无线网络安全 慈溪一站式软件开发商 数据库中视图可以派生视图吗 网络技术学的是什么就业方向 定制软件开发有增值税吗 小米操作系统软件开发 网络数据库资源包括微博吗吗 广东农商行招聘软件开发工程师 金证股份服务器 北京电费缴费软件开发团队 大厂网络安全要学什么 互联网科技思想 天津电商软件开发公司 游戏软件开发客户管理 深圳工控软件开发如何收费 软件开发企业全盘账务处理 斗地主手游软件开发 网络安全即是防线又是底线 泰拉瑞亚永久服务器ip地址 机械cae软件开发就业如何 东北亚网络安全 燃烧的远征转服务器声望会清零吗 浏览器代理服务器地址 网络技术与网络技术的就业前景 移动数据为什么连接不上服务器 普通服务器和云服务器 第三方网络技术信息中心 公司服务器一般能存储多久 30w块服务器 传奇数据库删除装备
0