4、CSS入门——属性选择器

目录

  • [1. 存否和值选择器](#1. 存否和值选择器)
  • [2. 子字符串匹配选择器](#2. 子字符串匹配选择器)
  • [3. 大小写敏感](#3. 大小写敏感)
  • 参考

1. 存否和值选择器

  这些选择器允许基于一个元素自身是否存在或者基于各式不同的按属性值的匹配来选择元素。

选择器 示例 描述
attr atitle 匹配带有一个名为attr的属性的元素
attr=value ahref="https://example.com" 匹配带有一个名为attr的属性的元素,其attr属性的值为value
attr\~=value pclass\~="special" 匹配带有attr属性、且属性值是以空格分隔的单词列表的元素------列表中恰好有一个词完整等于value
attr|=value divlang|="zh" 匹配带有attr属性、且属性值正好等于value、或者以value开头并紧跟一个连字符(-)的元素
html 复制代码
<!doctype html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8" />
    <title>开始学习 CSS</title>
    <link rel="stylesheet" href="learning.css" />
</head>

<body>
<h1>Attribute presence and value selectors</h1>
<ul>
    <li>Item 1</li>
    <li class="a">Item 2</li>
    <li class="a b">Item 3</li>
    <li class="ab">Item 4</li>
</ul>
</body>
</html>
css 复制代码
body {
  font-family: sans-serif;
}
li[class] {
  font-size: 120%;
}

li[class="a"] {
  background-color: yellow;
}

li[class~="a"] {
  color: red;
}

2. 子字符串匹配选择器

  这些选择器让更高级的属性的值的字符串的匹配变得可行。例如,如果你有box-warning和box-error类,想把开头为"box-"字符串的每个物件都匹配上的话,你可以用class\^="box-"来把它们都选中。

选择器 示例 描述
attr\^=value liclass\^="box-" 匹配带有一个名为attr的属性的元素,其值开头为value子字符串
attr$=value liclass$="-box" 匹配带有一个名为attr的属性的元素,其值结尾为value子字符串
attr\*=value liclass\*="box" 匹配带有一个名为attr的属性的元素,其值的字符串中任何地方至少出现一次value字符串
html 复制代码
<!doctype html>
<html lang="en-US">
<head>
    <meta charset="utf-8" />
    <title>learning CSS</title>
    <link rel="stylesheet" href="learning.css" />
</head>

<body>
<h1>Attribute substring matching selectors</h1>
<ul>
    <li class="a">Item 1</li>
    <li class="ab">Item 2</li>
    <li class="bca">Item 3</li>
    <li class="bcabc">Item 4</li>
</ul>
</body>
</html>
css 复制代码
body {
  font-family: sans-serif;
}
li[class^="a"] {
  font-size: 120%;
}

li[class$="a"] {
  background-color: yellow;
}

li[class*="a"] {
  color: red;
}

3. 大小写敏感

  如果你想在大小写不敏感的情况下,匹配属性值的话,你可以在闭合括号之前,使用i值。这个标记告诉浏览器,要以大小写不敏感的方式匹配ASCII字符。没有了这个标记的话,值会按照文档语言对大小写的处理方式,进行匹配------HTML中是大小写敏感的。

html 复制代码
<!doctype html>
<html lang="en-US">
<head>
    <meta charset="utf-8" />
    <title>learning CSS</title>
    <link rel="stylesheet" href="learning.css" />
</head>

<body>
<h1>Case-insensitivity</h1>
<ul>
    <li class="a">Item 1</li>
    <li class="A">Item 2</li>
    <li class="Ab">Item 3</li>
</ul>
</body>
</html>
css 复制代码
li[class^="a"] {
    background-color: yellow;
}

li[class^="a" i] {
    color: red;
}

参考

1、属性选择器

相关推荐
晓得迷路了12 小时前
栗子前端技术周刊第 150 期 - Stack Overflow 开发者调查结果、TanStack Start 1.0...
javascript·css·后端
ShineWinsu2 天前
对于CSS:弹性布局(Flexbox)的解析
前端·css·面试·浏览器·web·网页·弹性布局
云老大-阿里云国际站代理商2 天前
华为云国际站渠道代理商:CSS查询很慢但CPU不高?磁盘I/O、JVM与分片问题怎么排查
css·jvm·华为云
定栓2 天前
Webpack迁到Vite第三节:Less 与 CSS 处理
css·webpack·less
ShineWinsu2 天前
对于JavaScript:初识JavaScript以及输入输出
java·开发语言·前端·javascript·css·面试·html
码银2 天前
【web】基于HTML/CSS,JavaScript + Three.js做3D流程图
前端·css·html
keyipatience3 天前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
酷炫码神3 天前
Day 2|CSS 盒模型:把昨天的骨架,变成能看的页面
前端·css
oicola3 天前
Ant Design v5 vs Tailwind CSS:组件库与样式框架的终极对决
前端·css
软件技术NINI4 天前
美妆商城html+Css+js 4页
javascript·css·html