外链论坛

 找回密码
 立即注册
搜索
查看: 66|回复: 0

你真的认识 CSS 选取器吗?

[复制链接]

3083

主题

2万

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99098788
发表于 2024-6-30 06:31:27 | 显示全部楼层 |阅读模式

前言

相信针对 CSS 选取大众都不陌生吧,但其实选取器的种类还是非常繁多的,直接抱着 W3C 的草案啃什么意思。因此本文对 CSS 选取器做了有些总结,期盼能够大众巩固一下选取器的知识,再顺便瞧瞧什么你还不晓得选取器吧。

元素选取器(Elemental selectors)

元素选取器,顾名思义,便是经过 HTML 元素来进行匹配的选取器。

类型选取器(Type selectors)

类型选取器是经过 HTML 元素类型(标签)来选取的:

// 选取所有 <p> 元素 p { font-weigt: bold; } // 选取所有 <h1> 元素 h1 { color: red; }

咱们晓得选取器是能够进行链式连接的,然则在每一个选取器中,类型选取器只能显现一次,且必要位置于第1位,否则该选取器就匹配不到任何元素的。

通用选取器(Universal Selector)

通用选取器其实是一种特殊的类型选取器,它运用星号 * 来暗示能够匹配任意类型的 HTML 元素。因此在单独运用时,它会选取每一个元素,而后为它们指定样式:

// 将所有元素设置为红色 * { color: red; }

元素选取器被选取状况下时,通用选取器会隐式的存在:

.danger { color: red; } // 等同于 *.danger { color: red; }

属性选取器(Attribute selectors)

属性选取经过和 HTML 元素的属性进行匹配来选取的,它有以下的写法:

// 持有 class 属性的元素 [class] {color: red;} // 持有 class 的值为 red 的元素,即 class=red [class=red] {color: red;} // 持有 class 的值包括 red 的元素,例如 class=flex red bold[class~=red] {color: red;} // 持有 class 的值为 red 或以 red- 做为前缀的元素,例如 class=red-text [class|=red] {color: red;} // 持有 class 的值以 red 做为前缀的元素,例如 class=redtext[class^=red] {color: red;} // 持有 class 的值以 red 做为后缀的元素,例如 class=textred [class$=red] {color: red;} // 持有 class 的值包括 red 的元素,例如 class=teredxt [class*=red] {color: red;} // 属性选取能够连续调用 [class~=red][id=first] {color: red;}

虽然例子中咱们运用了 class 属性,不外能够对任何属性进行匹配,例如 id,value 等,咱们自定义的属性。

体积写区分

在默认状况下,选取器的体积写区分是和文档的语言相同的,例如 HTML 就不区分体积写。不外在 Selectors Level 4 草案中引入了新的标识符 i 和 s 用于手动标识是不是必须区分体积写:

i 为 Case-insensitive modifier,即不区分体积写s 为 Case-sensitive modifier,即区分体积
// 不区分体积写,即 red, RED, ReD 等都能够匹配[class=red i] {color: red;} // 区分体积写,red 匹配,RED 则不匹配 [class=red s] {color: red;}

不外必须重视的是,标识符 i 已然得到主流浏览器的支持,然则标识符 s的支持度则不太阳光





上一篇:css中的选取器?
下一篇:CSS 三种基本选取器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-11-15 00:20 , Processed in 0.097258 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.