第六章 属性选择器
时间:2022-11-22 04:00:00
我们通常提到的 属性选择器 是指 [type = "radio"] 这类选择器,实际上 这是一个简称。
指的是 “属性值匹配选择器”; 正式文件:
类选择器 和 ID 都属于选择器 属性选择器。 应为本质上 类选择器 是 匹配 HTML 中 class 的属性值, ID 选择器 是 匹配 HTML 中的 Id 属性值。
ID选择器 和 类选择器
ID选择器 和 类选择器 都属于 属性选择器, 看他们的身份起来 高贵而 特殊, 毕竟 HTML 原生属性那么多, 就 id 和 class 两个属性 有专门的选择器; 实际上 正式因为他们 足够的普通 才有此待遇。几乎 所有的 HTML 元素都有 name type 这些常见属性; 但是 他两 主要出现在 控件 元素上。 如果所有的 元素 的 name 都比较 有意义的话。 相信 也会有 他两的 专属 属性选择器
ID选择器 和 类选择器 虽然性质一致, 都属于 属性选择器。 但他们的实际表现 却有明显差异
1. 语法不同
ID 选择器 前面的字符是 #, 类选择器的字符是 .
/* ID 选择器 */ #foo { } /* 类选择器 */ .foo { }
2. 优先级不同
ID 选择器 比 类选择器 优先级 高一级, 在实际开发中 以类选择器主。 所以不玩就不能有 不要使用 ID选择器
列表类容 1
#cs-li { color: red; } .cs-li { color: blue; }
同时用 ID选择器 和 类选择器 设置颜色; 但是 类选择器 不能覆盖 ID选择器
3. 独特性和可重复性
ID 具有唯一性, 而 天生就有类 重复使用;
.cs-button { } .cs-button-primary { }
但是 ID 选择器 不能这样使用
#cs-button { } /* 无效 */ #cs-button-primary { } /* 无效 */
无论是 使用 JavaScript 的选择器 API 获取元素, 还是使用 CSS 的 ID 选择设置样式, 对于 ID, 其语义不能重复; 单实际开发的时候, 语义重复也可以;这并不影响功能
//长度为 2 document.querySelecorAll('#cs-button').length; /* 可同时设置 按钮1 和 按钮2 的样式 */ #cs-button { }
但不建议这样使用,但不建议这样使用! 应为 ID 选择器 主要是提供 JavaScript 使用的
属性值 选择器直接匹配:
属性值 直接匹配 选择器包括下面4 种:
[attr]
[attr="val"]
[attr~="val"]
[attr|="val"]
这四类 选择器的兼容性 都不错,前面两种 大家看的比较多。后面两种 见的人 估计少一些
[attr]
表示 只要包含指定的 属性就匹配, 特别适合一些 HTML 布尔属性, 这些布尔属性 只要有属性值!无论值的 内容是什么, 大家都认为这样的属性是 true; 例如 以下输入框的写法 都是警用:
此时, 若要使用属性选择器 判断输入框是否 禁用, 直接用下面的选择器 就可以了。 无需关系 具体属性值 到底是什么:
[disabled] {}
说到 disabled 就不得不提 另一个常见的布尔属性 checked, 两者看上去都很不错 其实也有类似 差别不小!一般不建议使用! checked
[attr="val"]
[attr=''value''] 是属性值 选择器完全匹配, 例如单选 或者 复选框:
[type="radio"] {} [type="checkbox"] {}
或者
,