码迷,mamicode.com
首页 > Web开发 > 详细

css---浅谈选择器

时间:2017-10-24 19:44:43      阅读:199      评论:0      收藏:0      [点我收藏+]

标签:class   sele   ...   分类选择   enable   表示   标签   定义   val   

首先,我们要知道选择器的作用,选择器就是匹配页面中的元素,规范页面中哪些元素可以使用规定好的样式。。

一、基础选择器

  1、通用选择器

           作用:匹配页面中所有的元素

      语法:*

                 例子:

                             *{

                                 color:red;

                              }

                             body{

                                color:red;

                               }

      2、元素选择器

                别名:标签选择器,标记选择器,标签样式,标记样式,元素样式

                作用:定义页面中某个指定标记的默认样式。比如:div,p ...

                 语法:由元素名称作为选择器

                 例子: p{}  div{}  span{}

      3、类选择器

           作用:通过元素所附带的 class 属性值,对类选择器进行引用

      语法:.类选择器名称{}

      注意:名称不能以数字开头,不能包含特殊字符,“-”与“_”除外   可以将多个类选择器应用在同一个元素中-多类选择器

              class 属性值 是以 空格 来分开的值列表。<p class="类名1 类名2"></p>

     例子: .title{

          color:red;

        }

                  可以将类选择器和元素选择器结合使用,目的是为了对某种元素中不同样式的细分控制-分类选择器

                  语法:元素选择器.类选择器{}

      4、ID选择器

                 作用:通过元素所附带的 id 属性值,对样式进行声明定义。

            语法:#ID值

                 注意:不能以数字开头

     例子: #id1{

          color:red;

        }

 

                 也可以在元素选择器后面跟着写id选择器  :元素选择器#ID选择器{}

      5、群组选择器

               作用:为了定义一组选择器的公共样式

               语法:以 英文 , 隔开的选择器列表

               例子: sel1,sel2,sel3 ... {}

                         p,.redBack,.important,#header{

                                  font-size:24px;

                           }

      6、后代选择器

               多于一级以及一级的层级关系:后代   子代也可以称之为后代

               语法:selector1 selector2{}

                满足 selector1 选择器的元素内,再去匹配 满足 selector2的选择器的元素

      7、子代选择器

               只有一级层级关系:子代

               语法:selector1>selector2{}

               注意: > : 表示的是子代关系

                目的:缩小匹配范围

      8、伪类选择器

               作用:匹配元素不同的状态

               语法::伪类选择器{}   选择器:伪类选择器{}

               分类:

                    1、链接伪类

                      目的:匹配超链接元素

                      :link,适用于尚未访问的超链接样式

                      :visited,适用于访问过的超链接的样式

                      2、动态伪类

                      :hover,适用于,鼠标悬停在元素上时的状态

                      :active,适用于,元素被激活(点击)时的状态

                      :focus,适用于,元素获取焦点时的样式。多数用在<input type="text">或<input type="password">

       备注:(1)还有目标伪类,元素状态伪类等放在下面的复杂选择器中介绍

                             (2)选择器优先级-权值(在写样式的时候,选择器的优先级显得尤为重要,一个样式是否被其他样式覆盖,全靠选择器了(当然,用js控制的样式除外))

                                   元素选择器     1

                                 类选择器       10

                                       伪类选择器     10

                                        ID选择器       100

                                        内联样式       1000

                 选择器的权值加到一起,大的优先。 如果权值相同,以后定义为主。

二、复杂选择器 

  1、兄弟选择器

 

        兄弟:具备相同父元素的 一组元素称之为 兄弟元素

 

        (1)相邻兄弟选择器

 

        作用:匹配指定元素的相邻相邻兄弟  相邻:下一个

     语法: 结合符 : +                选择器1+选择器2

 

                   例子 : p+div{}         #content+.important{}

 

              (2)通用兄弟选择器

 

          作用:匹配 指定元素 下面所有的 满足选择器的元素

 

                  语法: 结合符:~       选择器1~选择器2

 

     2、属性选择器

 

            作用:允许 通过 元素所附带的属性及其值,来匹配页面上的元素

    语法:[]

 

           (1):[attr]    

      作用: 匹配 元素中 附带 attr 属性的元素

      例子: [title] : 匹配所有 附带 title 属性的元素

 

                                 [class] : 匹配所有 附带 class 属性的元素

 

                                 [id] : 匹配所有 附带 id 属性的元素

 

            (2)elem[attr]

 

                    作用:匹配 具备 attr 属性的 elem 元素

 

                    例子: div[title]

 

             (3)elem[attr1][attr2]

 

                     作用:匹配 同时具备 attr1属性以及attr2属性的 elem 元素

 

             (4)elem[attr=value]

 

                      作用:匹配 attr 属性的值 为 value 的 elem 元素

 

                       例子:  [class=c1] : 匹配class属性值为c1的元素

 

                                  div[title=‘xxx‘] : 匹配 title属性值为xxx的div元素

 

                                  p[id="p1"][class=important]:匹配 id值为p1并且class属性值为important的p元素

 

              (5)elem[attr~=value]

 

                     作用:匹配 attr 属性值 为值列表,并且 value 是该列表中的一个值的 elem 元素

 

                      例子: <p class="p1 important rt"></p>

 

                                  p[class~=important]

 

          匹配 class 属性值 为值列表,并且 important 是该列表中的一个值的 p 元素

 

            (6)elem[attr^=value]

 

                     作用:匹配 attr 属性值 是以 value 作为开始的 elem 元素( ^ : 开始)

      例子: p[class^=c]

 

           (7)elem[attr$=value]

 

                     作用:匹配 attr属性值是以 value 作为结束的 elem 元素( $ : 结束)

 

                    例子:  [class$=t]

 

           (8)elem[attr*=value]

 

                    作用:匹配 attr 属性值中 包含 value字符的 elem 元素

 

     3 新伪类选择器:

 

         (1)目标伪类

 

                   作用:突出显示活动的HTML锚元素。

 

                   语法::target

 

         (2)元素状态伪类

 

                    元素状态:启用的,禁用的,被选中的

 

                    使用场合:表单元素中使用

 

                    语法

 

                           1、:enabled          匹配每个已启用的元素

 

                           2、:disabled          匹配每个被禁用的元素

 

                           3、:checked           匹配每个被选中的元素

 

        (3)结构伪类

 

                          1、:first-child           匹配属于其父元素中的首个子元素

 

                           2、:last-child           匹配属于其父元素中的最后一个子元素

 

                           3、:empty                匹配没有子元素的每个元素(注意,空格也算是有子元素)

 

                     <div>

 

                             <p></p>

 

                     </div> --有子元素

 

 

 

                     <div>

 

                  Hello World

 

                     </div> --有子元素

 

 

 

                     <div>

 

 

 

                     </div> --有子元素

 

 

 

                     <div></div> --无子元素

 

                                4、:only-child         匹配属于其父元素中的唯一子元素

 

                                 5、:nth-child(n)     获取属于其父元素中的第n个子元素

 

          (4)否定伪类

 

                    作用:在获取到的元素中,进行进一步的筛选和排除。

 

                     语法::not(选择器)

 

                   选择器:not(选择器)

 

      4、伪元素选择器

 

           伪类:匹配元素(不同的状态)

 

           伪元素:匹配 元素中的内容的一部分

 

               (1):first-letter 或 ::first-letter

 

                         first:第一个        letter:字符

 

                          作用:获取 匹配元素的 首字符

 

                (2):first-line 或 ::first-line

 

                          作用:获取匹配元素的首行文本

 

                (3)::selection

 

                          作用:匹配用户选取的部分

 

 

 

              备注     : 和 :: 的区别:

 

                CSS2.0中 ,伪元素和伪类选择器统一使用 : 来表示。

 

      从CSS3开始,W3C规范,所有的伪类选择器,一律使用 : 表示,所有的伪元素选择器,一律使用 ::表示

 

      为了实现兼容性,尽可能的使用 : 来表示 伪元素,::selection 除外。

 

css---浅谈选择器

标签:class   sele   ...   分类选择   enable   表示   标签   定义   val   

原文地址:http://www.cnblogs.com/missshuanger/p/7724941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!