CSS 选择器参考手册

CSS 选择器

在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素。

"CSS" 列指示该属性是在哪个 CSS 版本中定义的。(CSS1、CSS2 还是 CSS3。)

选择器 例子 例子描述 CSS
.class .intro 选择 class="intro" 的所有元素。 1
#id #firstname 选择 id="firstname" 的所有元素。 1
* * 选择所有元素。 2
element p 选择所有 <p> 元素。 1
element,element div,p 选择所有 <div> 元素和所有 <p> 元素。 1
element element div p 选择 <div> 元素内部的所有 <p> 元素。 1
element>element div>p 选择父元素为 <div> 元素的所有 <p> 元素。 2
element+element div+p 选择紧接在 <div> 元素之后的所有 <p> 元素。 2
[attribute] [target] 选择带有 target 属性所有元素。 2
[attribute=value] [target=_blank] 选择 target="_blank" 的所有元素。 2
[attribute~=value] [title~=flower] 选择 title 属性包含单词 "flower" 的所有元素。 2
[attribute|=value] [lang|=en] 选择 lang 属性值以 "en" 开头的所有元素。 2
:link a:link 选择所有未被访问的链接。 1
:visited a:visited 选择所有已被访问的链接。 1
:active a:active 选择活动链接。 1
:hover a:hover 选择鼠标指针位于其上的链接。 1
:focus input:focus 选择获得焦点的 input 元素。 2
:first-letter p:first-letter 选择每个 <p> 元素的首字母。 1
:first-line p:first-line 选择每个 <p> 元素的首行。 1
:first-child p:first-child 选择属于父元素的第一个子元素的每个 <p> 元素。 2
:before p:before 在每个 <p> 元素的内容之前插入内容。 2
:after p:after 在每个 <p> 元素的内容之后插入内容。 2
:lang(language) p:lang(it) 选择带有以 "it" 开头的 lang 属性值的每个 <p> 元素。 2
element1~element2 p~ul 选择前面有 <p> 元素的每个 <ul> 元素。 3
[attribute^=value] a[src^="https"] 选择其 src 属性值以 "https" 开头的每个 <a> 元素。 3
[attribute$=value] a[src$=".pdf"] 选择其 src 属性以 ".pdf" 结尾的所有 <a> 元素。 3
[attribute*=value] a[src*="abc"] 选择其 src 属性中包含 "abc" 子串的每个 <a> 元素。 3
:first-of-type p:first-of-type 选择属于其父元素的首个 <p> 元素的每个 <p> 元素。 3
:last-of-type p:last-of-type 选择属于其父元素的最后 <p> 元素的每个 <p> 元素。 3
:only-of-type p:only-of-type 选择属于其父元素唯一的 <p> 元素的每个 <p> 元素。 3
:only-child p:only-child 选择属于其父元素的唯一子元素的每个 <p> 元素。 3
:nth-child(n) p:nth-child(2) 选择属于其父元素的第二个子元素的每个 <p> 元素。 3
:nth-last-child(n) p:nth-last-child(2) 同上,从最后一个子元素开始计数。 3
:nth-of-type(n) p:nth-of-type(2) 选择属于其父元素第二个 <p> 元素的每个 <p> 元素。 3
:nth-last-of-type(n) p:nth-last-of-type(2) 同上,但是从最后一个子元素开始计数。 3
:last-child p:last-child 选择属于其父元素最后一个子元素每个 <p> 元素。 3
:root :root 选择文档的根元素。 3
:empty p:empty 选择没有子元素的每个 <p> 元素(包括文本节点)。 3
:target #news:target 选择当前活动的 #news 元素。 3
:enabled input:enabled 选择每个启用的 <input> 元素。 3
:disabled input:disabled 选择每个禁用的 <input> 元素 3
:checked input:checked 选择每个被选中的 <input> 元素。 3
:not(selector) :not(p) 选择非 <p> 元素的每个元素。 3
::selection ::selection 选择被用户选取的元素部分。 3


Css3选择器

1.常用选择器

1.1标签选择器

p{ }/*选择标签名为p的元素*/

1.2类选择器

.box{ }/*选择class名为box的元素*/

1.3ID选择器

#pid{ }/*选择id名为pid的元素*/

1.4通配符选择器

*{ }/*选择页面中所有的元素*/

1.5选择器前缀

div.bd{}/*选中class名为bd且标签为div的元素*/

1.6属性选择器

[disabled]{}/*选择带有属性disabled的所有元素*/
[type=button]{}/*选择type属性为button的所有元素*/
[class~=sports]{}/*选择class属性包含sports所有元素*/
[lang|=en]{  }/*选择以lang属性以"en"开头以及以"-"分隔的所有元素*/
a[href^="#"]{ }/*选择href属性以"#"开头的a元素*/
[href$="pdf"]{  }/*选择href属性以"pdf"结尾的元素*/
[href*="lady.163.com"]{}/*选择href属性中包含"lady.163.com"的元素*/

2.伪类选择器

2.1链接伪类

/*前两个只可用于描元素(链接)*/
a:link {color:#FF0000;}     /* 未被访问的链接 */
a:visited {color:#00FF00;}  /* 已被访问的链接 */
/*后两个可以用于其它元素*/
a:hover {color:#FF00FF;}    /* 鼠标指针移动到链接上 */
a:active {color:#0000FF;}   /* 正在被点击的链接 */

链接在进行设置时: a:hover 必须位于 a:link 和 a:visited 之后, a:active必须位于 a:hover 之后。

2.2动态伪类

input:focus{}/*设置input元素获得焦点后的样式*/
input:enabled{}/*元素可用的状态*/
input:disabled{}/*元素不可用的状态,属性选择器[disabled]的简写*/
input:checked{}/*单选框或者复选框选择的样式*/

2.3树形图上的伪类html结构如下:

<ul>
    <li>1</li>
    <li>2</li>
    <li><a href="#">3</a></li>
    <li>4</li>
    <p>5</p>
</ul>

选择符:

ul:first-child{}/*选择第一个ul下第一个标签(css2定义,支持ie7)在处理margin时很有用*/

/*以下全是CSS3新增的伪类*/
ul:last-child{}/*选择最后一个li标签*/
ul:nth-child(n){}/*选择()内的表达式如:[2n+1],或者数字所代表的li标签*/
ul:nth-last-child(n)/*同上,反向选择*/
ul:only-child{}/*选择ul只有一个子元素的项,这里会选中第三个li下的a标签*/
ul:first-of-type{}/*选择第一个该类型的标签,会选择第一个li和p*/
ul:last-of-type{}/*选择最后一个该类型的标签,会选择第四个li和p*/
ul:nth-last-of-type(2n){  }/*倒数的选择(.)内的表达式[2n],或数字所代表的该类型标签。选择第一个和第三个li标签*/
ul:only-of-type{}/*选择ul下中只有一个该类型的项,会选中a标签和p标签*/
:root{}/*选择文档的根元素*/
ul:not(li){}/*选择不含有li标签的元素,这里会选中a标签和p元素*/
ul:empty{}/*匹配ul下没有任何子元素(包括text节点)的元素,这里匹配不到,把p标签中的5删除,可匹配成功*/
E:target{}/*匹配相关URL(锚点)指向的元素。*/

3.伪元素选择器

::first-letter{}/*选择第一个字母*/
::first-line{}/*选择第一行*/
::before{content:"before";}/*在某个元素之前插入一些内容*/
::after{content:"after";}/*在某个元素后插入一些内容*/
::selection{}/*设置于被用户选中时的样式*/
::placeholder{}/*设置对象文字占位符的样式*/

4.组合选择器

4.1后代选择器

.main h2{  }/*选择class名为mian元素内的所有h2标签*/

4.2子选择器

.main>h2{  }/*选择class名为mian元素内的直接关联与父元素的h2标签*/

4.3相连选择器

h2~p{}/*只要P标签前有h2标签便选择*/

4.4兄弟选择器

h2~p{}/*选择h2标签后出现的所有p标签*/

4.4选择器分组

h1,h2,h3{backgound-color:#ddd;}/*同时设置h1,h2,h3标签,使用","分隔*/

5.继承

body{font-family:"Microsoft Yahei";}/*设置页面中所有的字体为微软雅黑*/
  • 继承属性
    • color
    • font
    • text-align
    • list-style
  • 非继承属性
    • background
    • border
    • position

6.CSS优先级

  • 计算方法
    • a = 行内样式
    • b = ID选择器的数量
    • c = 类/伪类和属性选择器的数量
    • d = 标签选择器和伪元素选择器数量

value = a 1000 + b 100 + c*10 +d

!important 强行提升优先级



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值