HTML元素的属性

简介: HTML元素的属性

HTML元素的属性


常见通用属性


HTML属性的一般语法如下:


<标签名 属性名1="属性值" 属性名2="属性值" ... 属性名N="属性值">内容</标签名>


属性值使用 单引号 和 双引号 均可。

对于HTML元素来说,有几个常见的、通用的属性:class,id,style。

  • • class:表示元素的“类名列表”。CSS和JavaScript可以通过类选择器或者DOM方法,来选中元素。一个元素可以有多个class, 多个class之间用空格分割。


<div class='classname-1 classname-2 classname-3'></div>


  • • id: 表示元素的唯一标识。CSS和JavaScript可以通过类选择器或者DOM方法,来选中元素。一般来说,一个元素,只能有一个ID。一般情况下,开发者应确保ID具有唯一性


<div class='foo'></div>


注意:如果页面有两个元素的id相同,使用document.getElementById获取的元素是HTML代码里靠前的那一个。使用document.querySelectorAll可以获取所有相同id的元素。


  • • style: 定义元素的样式。在style属性里面定义的样式,优先级是比较高的。关于样式优先级,在后面的css教程中会进行总结。


<div style="color: #f00;font-size: 12px"></div>


class, id, style 这三个属性,是所有元素都支持的。这种所有元素都支持的属性,被称为全局属性。除了这几个最常用的,还有一些不太常见但很有用的全局属性:

  1. 1. accessKey: 定义键盘快捷键来激活或者聚焦元素
  2. 2. contenteditable:指出该元素的内容是否可以被编辑。
  3. 3. draggable: 定义元素是否可以被拖动。取值为:"true" 或 "false"
  4. 4. title: 当鼠标悬停在元素上面时,提示框显示的文本。


属性的值

HTML元素的属性值均为字符串类型


<div id='foo' class='bar' data-obj='{"foo":"bar"}'></div>


一些内容属性(例如required, readonly, disabled, checked)是布尔值属性。如果一个布尔值属性存在,则其值是 true,如果不存在,其值是 false。

HTML5规定了布尔值属性的取值规则:如果属性存在,其值必须是一个空字符串(即该属性的值未分配),或者是一个大小写无关的 ASCII 字符串,该字符串与属性名严格相同,前后都没有空格。下述例子是为一个布尔值属性取值的几个有效方式。


<button disabled >这是一个按钮</button> - ✅ disabled 生效
<button disabled="">这是一个按钮</button> - ✅ disabled 生效
<button disabled="true">这是一个按钮</button> - ✅ disabled 生效
<button disabled="false">这是一个按钮</button> - ✅ disabled 生效。这个需要特别注意
<button>这是一个按钮</button> - ❌ disabled 不生效


注意:draggable 属性是枚举属性, 不是布尔值属性。因此,想要draggable生效,必须使用 draggable="true"。若不设置draggable属性,则遵循浏览器默认行为。


自定义属性


有的时候,我们需要在HTML元素上挂一下额外的信息。这就需要用到HTML元素的自定义属性。自定义属性一般使用这种格式:data-* 。举例如下:


<div data-custom="hello"></div>
<div data-obj='{"foo":"bar"}'></div>


HTML元素的无障碍适配


什么是无障碍适配?这里摘抄一段MDN上的解释:


无障碍是一种让尽可能多的用户可以使用你的网站的做法。传统上我们认为这只与残疾人士有关,但提升网站的无障碍也可以让其他用户群体受益。比如使用移动设备的人群,那些使用低速网络连接的人群。你也可以把无障碍看成是同等地对待每一个人,给他们平等的机会,无论他们的能力或所处的环境如何。就像不能让坐轮椅的人可以进入大楼是错误的 (现代公共建筑通常有轮椅坡道或电梯);不能让视觉有障碍的人士可以浏览我们的网站同样不正确。我们都是不同的,但我们都是人,因此享有同等的人权。


按照我自己的理解,无障碍适配就是让网页能够表达更好的语义,使得操作系统能够更好将网页内容反馈给有需要的人群。举个例子,无障碍是要让屏幕阅读器(操作系统)能够识别出页面上的内容,朗读出来,供盲人感知。


如何更好的实现无障碍?第一点,就是书写有良好语义的HTML代码。"div标签一把梭"的形式是不推荐的。举个最简单的例子:


<div>这是一个按钮</div> - ❌ 这种写法不推荐
<button>这是一个按钮</button> - ✅ 这种写法更加友好


但是,当页面上的UI控件变得复杂时,单纯的HTML语义已经无法满足需求了。这个时候,就需要 WAI-ARIA。WAI-ARIA 是一套规范,定义了一组可用于其他元素的 HTML 特性,用于提供额外的语义化以及改善缺乏的无障碍。简单来说,就是给HTML元素加上几个属性,来补充语义信息。


  • • 首先是role属性。这个属性是说明元素是干什么的。比如,当我们的页面弹出一个弹窗时,我们可以在弹窗的DOM上加上: role='alert'。


<div class='modal' role='alert'>
    你好
</div>


读屏软件会读出:提示 你好

完整的role定义,可以在这里查看:传送门


  • • 接着是 aria-* 属性。这一类属性是增加更多的语义说明。例如:<a href="xxx" role="button" aria-label="返回上一页">返回</a>读屏软件会读出:返回上一页 按钮


这里的 aria-label 换成 title 属性,也能达到相同的效果。

所有的aria-*属性,可以在这里查看:传送门


  • • 然后是元素的状态属性,尽量不要使用class类来表示状态,可以使用类似 disabledaria-disabled 来表示状态
<div aria-disabled role="button" title="提交">确认</div>
相关文章
|
25天前
|
移动开发 开发者 UED
HTML5 语义元素详解
HTML5引入了诸多语义元素
WK
|
19天前
|
存储 移动开发 前端开发
HTML5新增了哪些其他元素和属性
这段文字介绍了HTML5中新增的多种元素和属性,包括页面布局元素如header、nav等,表单元素如email、tel输入框等,以及其他元素如canvas、svg等。此外,还介绍了全局及表单属性,例如contenteditable、placeholder等,这些新功能显著增强了HTML5在现代网页设计与开发中的实用性与灵活性。
WK
44 1
|
27天前
|
JavaScript 前端开发 容器
用HTML DOM实现有条件地渲染网页元素(上)
用HTML DOM实现有条件地渲染网页元素(上)
|
27天前
|
存储 JavaScript 前端开发
用HTML DOM实现有条件地渲染网页元素(下)
用HTML DOM实现有条件地渲染网页元素(下)
|
25天前
|
移动开发 JavaScript 前端开发
HTML5 表单属性详解
HTML5引入了多种新的表单属性,使表单创建与验证更加便捷高效。新增的输入类型包括`email`、`url`、`tel`等,常用属性有`placeholder`、`required`等。表单元素如`&lt;form&gt;`可设置提交方法和目标URL,`&lt;button&gt;`及`&lt;input type=&quot;submit&quot;&gt;`用于提交。新元素`&lt;datalist&gt;`和`&lt;output&gt;`提供更多功能。HTML5还提供了内置表单验证机制,增强用户体验。
|
26天前
|
移动开发 数据安全/隐私保护 UED
HTML5 表单元素详解
HTML5 引入了新的表单元素和属性,如 `&lt;form&gt;、&lt;input&gt;、&lt;textarea&gt;、&lt;select&gt;` 和 `&lt;button&gt;`,以及 `required、min、max` 等属性,增强了表单的创建与交互。其中,`&lt;input&gt;` 支持多种类型如 `email、url、date` 等,提供了更好的用户体验和数据验证。此外,HTML5 还新增了原生表单验证功能,简化了开发流程并提升了安全性。
WK
|
19天前
|
Web App开发 存储 移动开发
HTML5新增了哪些表单元素
HTML5通过新增多种表单元素和属性,提升了用户体验与交互性。例如,`email`和`url`元素分别验证邮箱地址和网址格式;`number`和`range`便于输入数字及区间值;`date`等元素简化了日期时间的选择;`search`添加搜索图标,`color`提供颜色选择器;`datalist`结合`input`属性给予用户下拉列表选项;`keygen`用于生成密钥对以增强安全性;`output`则用于动态展示计算结果。这些改进共同提高了表单的功能性和易用性。
WK
16 2
WK
|
19天前
|
移动开发 UED HTML5
HTML5新增了哪些表单属性
HTML5新增的表单属性包括:autocomplete(启用或禁用自动完成建议)、autofocus(自动聚焦)、form(关联表单外的表单元素)、formaction等重写版本(自定义提交行为)、height/width(设置图像输入尺寸)、list(指定可选列表)、min/max/step(设置数值范围)、multiple(多选文件/选项)、pattern(正则表达式验证)、placeholder(占位符提示)和required(必填校验)。这些新功能显著提升了表单的灵活性和用户体验,使数据输入更加准确有效。
WK
16 1
|
11天前
|
Web App开发 数据采集 移动开发
HTML5新增的属性和标签
HTML5新增的属性和标签
48 0
|
11天前
|
数据采集 数据安全/隐私保护
html常见的表单元素有哪些,html表单元素有哪些?
html常见的表单元素有哪些,html表单元素有哪些?
8 0