CSS--选择器


1.基本选择器

1. 标签选择器

标签选择器又叫元素选择器,换句话说,文档的元素就是最基本的选择器,使用元素名称直接选中元素即可。
例如:
 
<style>
p{
height:100px;
border:1px solid red;
}
</style>
<p>one</p>
<p>two</p>
<p>three</p>

2.类选择器( Class selectors

类选择器以点 "." 开头,后面紧跟一个类名。类名不允许有空格,与元素中 class 属性的值保持一致。一个元素可以有多个 class 的值,每个值通过空格分割开。类名相同的元素 属于一类元素。
  例如:
 
<style>
.first{font-weight: bold;}
.done {text-decoration: line-through;}
</style>
<ul>
<li class="first done">Create an HTML document</li>
<li class="second done">Create a CSS style sheet</li>
<li class="third done">Link them all together</li>
</ul>

3.ID选择器(ID selectors

ID 选择器以 "#" 开头,后面紧跟一个 ID 名,在一个文档中, ID 值不能重复,因此在选择文档中唯一元素的时候该选择器比较有用。
例如:
 
<style>
#polite {
font-family: cursive;}
#rude {
font-family: monospace;text-transform: uppercase;}
</style>
<p id="polite"> — "Good morning."</p>
<p id="rude"> — "Go away!"</p>

4.普遍选择器(Universal selector

使用 "*” 来表示普遍选择器,表示选择所有元素,通常用在组合选择器中。
例如:
 
<style>
.left-nav>* { width:200px; background-color:#fafafa}
</style>
<article class="left-nav">
<span></span>
<dl>
<dt>推荐</dt>
<dd class="current"><i class="icon-music"></i>发现音乐</dd>
</dl>
<dl>
<dt>我的音乐</dt>
<dd><i class="icon-cloud-download"></i>下载的音</dd>
</dl>
</article>

2.层次选择器

1.后代选择器( descendant selector

l 使用 “ ” 隔开两个选择器。例如 “ul li” 表示选择 ul 的后代元素 li li 可以为 ul 的直接子元素,也可以为 ul 的孙子元素。

2.子代选择器(child selector

l 使用 “>” 隔开两个选择器。例如 “ul>li” 表示选择 ul 的直接子代元素 li,ul 的孙子元素 li 无法被选择到。

3.相邻同胞选择器(adjacent sibling selector下一个兄弟元素

l 使用 “+” 隔开两个选择器。例如 ".one+*" 表示选择 class "one" 元素的下一个兄弟元素。

4.一般同胞选择器( general sibling selector)之后所有的兄弟元素

l 使用 “~” 隔开两个选择器。例如 ".one~*" 表示选择 class "one" 元素之后的所有兄元素。

3.多选择器

1. 组合选择器

多个选择器组合使用,使用 “,” 分割。
例如 "div,.one,#tt" 表示选择 div 元素, class one 的元素以及 id tt 的元素

2. 嵌套选择器

多个选择器嵌套使用。例如 "div.one" 表示 class one div 元素。

4.属性选择器

选择具有 attr 属性的元素、无论该属性的值是什么
[attr]    选择有attr属性的值
                   例:input[value]
[attr=val]    选择具有 attr 属性的、并且 attr 的值为 val 元素
                   例:input[type=text]
[attr^=val]    选择具有 attr 属性的、并且 attr 的值以 val 开头的元素
                    例:div[class^=icon]
[attr$=val]    选择具有 attr 属性的、并且 attr 的值以 val 结尾的元素
                    例:section[class$=data]
[attr*=val]    选择具有 attr 属性的、并且 attr 的值包含 val 的元素
                  
[attr~=val]    选择具有 attr 属性的、并且 attr 的值之一为 val 的元素

5.伪类选择器

伪类以 ":" 开头,用在选择器后,用于指明元素在某种特殊的状态下才能被选中。

5.1 子代元素相关的伪类选择器

1. :only-child     选中独生子元素
               
2. :first-child     选中作为别人第一个孩子的元素          li:first-child
3.l :last-child    选中作为别人最后一个孩子的元素           li:last-child
                                         
4.l :nth-child(n)    n可以是数字,选中作为别人第几个孩子元素的元素     
        
    :nth-child(even/odd)  偶数、奇数    n可以是even/odd,选中偶数列,或奇数列
    
    n可以是公式,n从0开始自增    
                               li:nth-child(n)    选择所有孩子
                               li:nth-child( 2n)    选择所有偶数
5.l :nth-last-child(n)    选中作为别人倒数第几个孩子的元素
6.l :first-of-type    选中作为别人每种类型中的第一个孩子的元素
7.l :last-of-type    选中作为别人每种类型中的最后一个孩子的元素
8.l :nth-of-type(n)     选中作为别人每种类型中的第几个孩子的元素
9.l :nth-last-of-type(n)    选中作为别人每种类型中的倒数第几个孩子的元素
ü 上面的 n 可以为元素的序号,也可以为特殊的字符,比如 odd even n 1 开始

nth-child(n)和nth-of-type(n)的区别

写一个示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        section div:nth-child(1){
            background-color: cadetblue;
        }

        div div:nth-of-type(1){
            background-color: cadetblue;
        }
    </style>
</head>
<body>
    <section>
        <p>ppppppp</p>
        <div>divdiv1</div>
        <div>
            div2div2
        </div>
    </section>
    <div>
        <p>ppppppp</p>
        <div>divdiv1</div>
        <div>
            div2div2
        </div>
    </div>
</body>
</html>

nth-child会把所有子盒子都排列序号,执行的时候先看 :nth-child(1) ,找到第一个盒子,再看前面的要求 div ,找到的盒子和要求不符,无法显示。

nth-of-type() ,会把指定的元素(div)排列序号,再看第几个孩子。

5.2 元素状态相关伪类选择器

1.:link 未被访问的状态, a 标签
l
2.:visited 已访问过的状态, a 标签
l
3.:hover 鼠标悬停的状态, a 标签,其他标签也可用
l
4.:active 活动的状态, a 标签,其他标签也可用
l
5. :focus 聚焦的状态
l
6. :checked 用户选中的单选按钮和复选按钮
l
7. :default 默认选中的单选按钮和复选按钮
l
8. :enabled :disabled 可用的表单控件、禁用的表单控件
l
9. :valid :invalid 通过验证的、不通过验证的
l
10. :required :optional 必填的和选填的
l
11. :in-range :out-of-range 在范围内的、在范围外的

6.伪元素选择器

伪元素以"::" 开头,用在选择器后,用于选择指定的元素。可创建新标签
1.  ::after      选中之后的不存在的节点,可配合 content 属性进行内容填充
2.  ::before     选中之前的不存在的节点,可配合 content 属性进行内容填充
    befor,after创建一个元素,且属于行内元素,新创建的元素在文档树中找不到,所有叫伪元素。
    element::before{} ,before放在element里面的所有孩子最前面。
3.  ::first-letter     选中第一个文本字符
4.  ::first-line     选中第一行文本
5.  ::selection     选中用户在选择的时候的文本
before、after 必须有conent属性,conent填充内容

7.选择器的优先级排序

  1.   !important

    在属性后面写上这条样式,会覆盖掉页面上任何位置定义的元素的样式。

  2.   行内样式,在style属性里面写的样式。

  3.  id选择器

  4. class选择器

  5. 标签选择器

     6. 通配符选择器*

  7. 浏览器的自定义属性和继承

 

  • 30
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值