CSS属性选择器详解:从基础用法到实战案例

来源:IPIPP.com作者:陈平安
导读:本期聚焦于小伙伴创作的《CSS属性选择器详解:从基础用法到实战案例》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《CSS属性选择器详解:从基础用法到实战案例》有用,将其分享出去将是对创作者最好的鼓励。

CSS属性选择器用法详解

CSS属性选择器是CSS选择器中非常实用的一种类型,它允许开发者根据HTML元素的属性及其属性值来匹配元素,不需要额外给元素添加class或者id就能实现精准样式控制。下面我们就来详细介绍CSS属性选择器的常见用法,并搭配代码示例说明。

一、存在性选择器

存在性选择器用来匹配包含指定属性的所有元素,不管该属性的值是什么,只要元素有这个属性就会被选中。

语法格式:[属性名]

比如我们要给所有带有title属性的元素添加下划线样式,就可以使用存在性选择器:

/* 选中所有包含title属性的元素 */
[title] {
    text-decoration: underline;
    color: #333;
}

下面的HTML元素中,第一个<div>title属性,会被上述样式选中,第二个没有title属性则不会生效:

<div title="这是提示文本">有title属性的div</div>
<div>没有title属性的div</div>

二、属性值完全匹配选择器

这种选择器会匹配属性值完全等于指定值的元素,只有属性值和给定值完全一致时才会生效。

语法格式:[属性名="属性值"]

比如我们要给所有typetext<input>元素设置边框样式:

/* 选中type属性值为text的input元素 */
input[type="text"] {
    border: 1px solid #ccc;
    padding: 6px 10px;
    border-radius: 4px;
}

对应的HTML示例中,只有第一个<input>会被选中:

<input type="text" placeholder="请输入用户名">
<input type="password" placeholder="请输入密码">

三、属性值包含匹配选择器

该选择器会匹配属性值中包含指定字符串的元素,只要属性值里出现了目标字符串就会被选中,不需要完全相等。

语法格式:[属性名*="字符串"]

比如我们要给所有class属性中包含btn的元素设置基础按钮样式:

/* 选中class属性中包含btn字符串的元素 */
[class*="btn"] {
    display: inline-block;
    padding: 8px 16px;
    cursor: pointer;
    border: none;
    border-radius: 4px;
    font-size: 14px;
}

下面的HTML元素中,两个<button>class都包含btn,都会被选中:

<button class="btn primary-btn">主要按钮</button>
<button class="small-btn">小按钮</button>

四、属性值开头匹配选择器

这种选择器匹配属性值以指定字符串开头的元素,常用来匹配特定的前缀属性值。

语法格式:[属性名^="字符串"]

比如我们要给所有hrefhttps://ipipp.com开头的链接设置特殊颜色:

/* 选中href以https://ipipp.com开头的a元素 */
a[href^="https://ipipp.com"] {
    color: #e63946;
    font-weight: bold;
}

对应的HTML示例中,第一个链接会被选中:

<a href="https://ipipp.com/index">ipipp首页</a>
<a href="https://www.baidu.com">百度首页</a>

五、属性值结尾匹配选择器

该选择器匹配属性值以指定字符串结尾的元素,常用来匹配文件后缀、特定结尾的属性值。

语法格式:[属性名$="字符串"]

比如我们要给所有href.pdf结尾的链接添加PDF图标标识:

/* 选中href以.pdf结尾的a元素 */
a[href$=".pdf"]::after {
    content: " (PDF文件)";
    font-size: 12px;
    color: #666;
}

下面的HTML元素中,第一个链接会被选中:

<a href="https://ipipp.com/guide.pdf">使用指南</a>
<a href="https://ipipp.com/intro.html">介绍页</a>

六、属性值单词匹配选择器

这种选择器匹配属性值是独立单词或者由空格分隔的单词列表中包含目标单词的元素,和*=的区别是它要求完整的单词匹配,不会匹配部分字符串。

语法格式:[属性名~="单词"]

比如我们要给class中包含独立单词active的元素设置激活样式:

/* 选中class属性中包含独立单词active的元素 */
[class~="active"] {
    background-color: #f0f0f0;
    color: #1d3557;
}

下面的HTML元素中,第一个<li>会被选中,第二个不会被选中,因为第二个的classactiveactive-item的一部分,不是独立单词:

<li class="nav-item active">首页</li>
<li class="nav-item active-item">列表页</li>

七、属性值连字符匹配选择器

该选择器匹配属性值等于指定值,或者属性值以指定值-开头的元素,常用来匹配语言相关的属性,比如lang属性。

语法格式:[属性名|="值"]

比如我们要给lang属性为zh或者zh-开头的元素设置中文字体:

/* 选中lang为zh或者zh-开头的元素 */
[lang|="zh"] {
    font-family: "Microsoft YaHei", sans-serif;
}

下面的HTML元素中,两个<p>都会被选中:

<p lang="zh">这是简体中文内容</p>
<p lang="zh-CN">这是中国大陆地区的中文内容</p>

八、组合使用属性选择器

属性选择器还可以和其他选择器组合使用,也可以多个属性选择器同时匹配同一个元素,实现更精准的选择。

比如我们要给typecheckboxdisabled属性存在的复选框设置禁用样式:

/* 同时匹配type为checkbox、存在disabled属性的input元素 */
input[type="checkbox"][disabled] {
    opacity: 0.5;
    cursor: not-allowed;
}

对应的HTML示例中,第一个复选框会被选中:

<input type="checkbox" disabled> 不可选的复选框
<input type="checkbox"> 可选的复选框

总结

CSS属性选择器的灵活性很高,不需要额外添加多余的class就能根据元素的属性实现样式控制,在实际开发中可以减少HTML的冗余代码。不同类型的属性选择器适用场景不同,大家可以根据实际需求选择合适的选择器类型,也可以组合使用来实现更复杂的匹配逻辑。

CSS属性选择器属性值匹配选择器语法样式控制HTML属性

免责声明:已尽一切努力确保本网站所含信息的准确性。网站部分内容来源于网络或由用户自行发表,内容观点不代表本站立场。本站是个人网站免费分享,内容仅供个人学习、研究或参考使用,如内容中引用了第三方作品,其版权归原作者所有。若内容触犯了您的权益,请联系我们进行处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。前端、网络、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握网站开发与运维所需的核心技术栈。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端逻辑,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。