常用css选择器

CSS常用选择器:

一、简单选择器

*,通用元素选择器,匹配任何元素
E,标签选择器,匹配所有使用E标签的元素
.class,class选择器,匹配特定class属性的元素
/#ID,id选择器,匹配特定id属性的元素

二、属性选择器

[atrr] ,选择包含 attr 属性的所有元素,不论 attr 的值为何
[attr=val] ,仅选择 attr 属性被赋值为 val 的所有元素

三、组合选择器

A, B ,多元素选择器:选中匹配 A 或B 元素
A B ,后代选择器:选中匹配 A 元素的后代B 元素(A B之间空格分开)
A > B,子元素选择器:选中匹配 A父元素内的直接B子元素
A + B,直接相邻选择器:选中匹配 B 元素之后的相邻的同级的A元素
A ~ B,普通相邻选择器:选中B元素之后的同级 A 元素(无论直接相邻与否)
.a.b,匹配class=''a b"元素
A.b,匹配class="a"的元素

四、伪类选择器

伪类与伪元素的区别:

css引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。下面分别对伪类和伪元素进行解释:

伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停在指定的元素时,我们可以通过:hover来描述这个元素的状态。虽然它和普通的css类相似,可以为已有的元素添加样式,但是它只有处于dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类。

伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before来在一个元素前增加一些文本,并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。

1、动态伪类选择器:

a:link ,匹配所有未被点击的链接
a:visited ,匹配所有已被点击的链接
a:hover ,匹配鼠标悬停其上的a元素
a:active ,匹配鼠标已经其上按下、还没有释放的a元素
E :focus ,选择获取焦点的输入字段

2:UI元素伪类选择器:

E:checked : {attribute},匹配所有用户界面(form表单)中处于选中状态的元素E
E:enabled : {attribute},匹配所有用户界面(form表单)中处于可用状态的E元素
E:disabled : {attribute},匹配所有用户界面(form表单)中处于不可用状态的E元素
E::selection : {attribute},匹配E元素中被用户选中或处于高亮状态的部分

3:结构伪类选择器:

:root()选择器,从字面上我们就可以很清楚的理解是根选择器,他的意思就是匹配元素E所在文档的根元素。在HTML文档中,根元素始终是<html>。“:root”选择器等同于<html>元素
:not()选择器称为否定选择器,和jQuery中的:not选择器一模一样,可以选择除某个元素之外的所有元素。
:empty()选择器表示的就是空。用来选择没有任何内容的元素,这里没有内容指的是一点内容都没有,哪怕是一个空格。
:target()选择器来对页面某个target元素(该元素的id被当做页面中的超链接来使用)指定样式,该样式只在用户点击了页面中的超链接,并且跳转到target元素后起作用
:first-child()选择器表示的是选择父元素的第一个子元素的元素E。简单点理解就是选择元素中的第一个子元素
: last-child匹配元素的最后一个子元素。
:nth-child根据元素的位置匹配一个或者多个元素
(它接受一个an+b形式的参数,an+b匹配到的元素示例如下:
1n+0,或n,匹配每一个子元素。
2n+0,或2n,匹配位置为2、4、6、8…的子元素,该表达式与关键字even等价。
2n+1匹配位置为1、3、5、7…的子元素、该表达式与关键字odd等价。
3n+4匹配位置为4、7、10、13…的子元素。)
:nth-last-child()从某父元素的最后一个子元素开始计算,来选择特定的元素
:first-of-type匹配属于其父元素的首个特定类型的子元素的元素。
:nth-of-type与nth-child相似,不同之处在于它是只匹配特定类型的元素。

五、伪元素选择器

伪元素概念:

伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before来在一个元素前增加一些文本,并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。

E::before在被选元素前插入内容。需要使用content属性来指定要插入的内容。被插入的内容实际上不在文档树中。
E::after在被元素后插入内容,其用法和特性与:before相似
E::first-letter匹配元素中文本的首字母。被修饰的首字母不在文档树中。
E:first-line匹配元素中第一行的文本。这个伪元素只能用在块元素中,不能用在内联元素中。
E::selection匹配用户被用户选中或者处于高亮状态的部分。
E::placeholder匹配占位符的文本,只有元素设置了placeholder属性时,该伪元素才能生效

计算选择器的优先级

简单情况:

优先级从高到低分别是:

在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式
作为style属性写在元素标签上的内联样式
Id选择器
类选择器
伪类选择器
属性选择器
标签选择器
通配符选择器
浏览器自定义

复杂场景:

如有多种选择器组合使用,同时选中某元素,直接计算a,b,c,d的值
行内样式 <div style="xxx"></div> ==> a
ID 选择器 ==> b
类,属性选择器和伪类选择器 ==> c
标签选择器、伪元素 ==> d
abcd优先级依次降低

范例

<style>
 .box:first-child {
  color: red;
}
.box:first-of-type {
  background: blue;
}
.box :first-child {
  font-size: 30px;
}
.box :first-of-type {
  font-weight: bold;
}
 </style>
  <div class="container">
    <div class="box">div.box</div>
    <p class="box">p.box</p>
    <div class="box">div.box</div>
    <div class="box">
      <div class="item">div.item</div>
      <p class="item">p.item</p>
    </div>
    <p class="box"></p>
  </div>
  • .box:first-child {
    color: red;
    }
    选择其父元素的第一个class=".box"的子元素为红色,选中的是 <div class="box">div.box</div>并让其字体颜色为红色

  • .box:first-of-type {
    background: blue;
    }
    选择其父元素中指定的某种类型且class=".box"的子元素的背景颜色为蓝色,选中的是 <div class="box">div.box</div>,<p class="box">p.box</p>,并让其背景颜色为蓝色

  • .box :first-child {
    font-size: 30px;
    }
    选择class="box"父元素内的第一个子元素的字体为30px,选中的是 <div class="item">div.item</div>,并让其字体大小为30px;

  • .box :first-of-type {
    font-weight: bold;
    }
    选择claa="box"父元素内的第一个某种类型的子元素的字体加粗,选中的是 <div class="item">div.item</div>
    <p class="item">p.item</p>,并让其字体加粗
    作者:彭荣辉
    链接:https://www.jianshu.com/u/0f804364a8a8
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,744评论 1 92
  • CSS选择器结构逻辑图 接下来按照结构逻辑图具体讲解各个选择器的作用及用法; 基本选择器 基本选择器主要有以下5类...
    FoolishFlyFox阅读 563评论 0 8
  • 其实平时用得多的选择器无非也就是那么几个,时间久了,许多不常用的选择器就慢慢忘记了。为了不让自己忘记这些选择器,今...
    盛夏晚清风阅读 1,826评论 0 5
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 3,875评论 0 0
  • 阳光突然变得缓慢 我看到漂浮尘埃 更不能忽略你的笑脸 空气中有种特殊的味道 心里说不出的感觉 祈祷你不要望过来 这...
    Vita小丸阅读 143评论 0 0