关于css选择器

首先先捋一捋都有哪些选择器

1、通配符选择器

  举例   

      *{width:100px;}

2、元素选择器

    (在 W3C 标准中,元素选择器又称为类型选择器,看清楚啦是类型选择选器,区别于类选择器)

  举例

    h1 { color:black; }

3、类选择器

     举例

    <h1 class="important">我是标题</h1>

    <p class="important">我是段落</p>

    <p class="important">我是段落</p>

    <p class="important urgent ">我是段落</p>

    .important{ color:red; }   

    *.important {color:red;} 表示匹配 class 属性包含 important 的所有元素(通配符+类选择器)

    p.important {color:red;} 表示匹配 class 属性包含 important 的所有 p 元素(元素+类选择器)

    .important .urgent{color:red;} (多类选择器)

4、ID选择器

举例

<p id="intro">This is a paragraph of introduction.</p>

#intro {font-weight:bold;}

5、后代选择器

    后代选择器有一个易被忽视的方面,即两个元素之间的层次间隔可以是无限的。

    举例

    h1 em { color:red;}

6、子元素选择器

    举例

    h1>strong {color:red;}

7、相邻兄弟元素选择器

    举例

    h1 + p {margin-top:50px;}

    选择紧接在 h1 元素后出现的段落,h1 和 p 元素拥有共同的父元素

8、通用兄弟选择器

    h1 ~ p {

        width:200px;

        height:200px;

        background-color:red;

    }

9、群组选择器

    section > article,

    section > aside,

    section > div {

         color: #f00;

         margin-top: 10px;

        background: #abcdef;

    }

10、属性选择器

    [attribute] 用于选取带有指定属性的元素。

    [attribute=value] 用于选取带有指定属性和值的元素。

    [attribute~=value] 用于选取属性值中包含指定词汇的元素。

    [attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。

    [attribute^=value] 匹配属性值以指定值开头的每个元素。

    [attribute$=value] 匹配属性值以指定值结尾的每个元素。

    [attribute*=value] 匹配属性值中包含指定值的每个元素。

    p[class~="important"]{ color: red;}

    可以应用样式:


    无法应用样式:


11、伪类选择器

     A、动态伪类 (这些伪类并不存在HTML中,只有当用户和网站交互的时候才能体现)

           锚点伪类(:link[ 未访问链接 ]  :visited[ 已访问链接 ])

           用户行为伪类(:hover [ 当鼠标悬停 ] :active[ 正在进行的被选择的链接 ] :focus[ 规定获得焦点的输入字段的颜色 输入框内的颜色] )

     B、UI元素状态伪类(css3新增)

           :enabled(表单可选中) 

                input:enabled{}   

            :disabled(表单不可选中disabled=“disabled”)  

                 input:disabled{}

            :checked

      C、CSS结构类

         type类的就是数数的时候不管什么元素都一起算个数

        :first-child【父元素的首个以及最后一个子元素】

                section > div:first-child {color: #f00;}

                配合前面的元素去写 否则很容易乱

                :last-child、

                某元素的最后一个元素

        :nth-child ( n )

            无论元素类型 ,匹配属于其父元素的第n个元素

        (2n)even偶数 (2n+1)odd奇数

        :nth-last-child( )

            无论元素类型 ,从最后一个子元素开始计数,且从1开始计数

         :nth-of-type( )

            匹配属于父元素的特定类型的第n个子元素的每个元素

                【如果指定div  那就只数div  不管还有什么元素】

          :nth-last-of-type( )

                如果指定div  那就只数div  不管还有什么元素 倒数的哦

          :first-of-type、:last-of-type(正数)

          :only-child、

            匹配属于其父元素唯一子元素的每个元素 同一个父元素中有其他兄弟元素也不行

           :only-of-type、

            有兄弟元素也没关系啦  只要父元素里指定的元素只有一个就好啦

                :empty

                    div:empty {background: #f00; }

                把空的找出来 就可以给样式啦

        否定选择器,被选中的 执行

                举例

                导航中不要最后一条线啦

            nav > a:not(:last-of-type) { border-right: 1px solid red; }

   12、伪元素 (伪造出来的,在html中找不到)两个冒号是为区别选择器

          ::first-line 文本首行

            div::first-line {

                    color: #f00;

                    font-weight: bold;

                    }   

           ::first-letter 文本首字母

            div::first-letter {

                        color: #f00;

                        font-size: 24px;

                        font-weight: bold;

                      }

            ::before 元素前插入内容 行内元素

            div::before {

                        content: "我在内容的前面";

                                }

             ::after 元素前插入内容  行内元素  多用于清除浮动

            div::after {

                    content: "我在内容的后面";

                            }


              ::seletion  控制被选中的样式

            div::selection {

                    background: red;

                    color: #ff0;

                    }



选择器权重问题

       () 行内样式1000 > ID选择器 100 > 类、属性选择器和伪类选择器10  >元素和伪元素 1 > 通配符选择器。

带有上下文关系的选择器比单纯的元素选择器权重更高!

后面会覆盖前面的有冲突的选择器!

无论多少个元素组成的选择器 都没有一个class权重高!

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

推荐阅读更多精彩内容

  • 1、class和id的使用场景分别是什么? 首先,一个HTML文件中class名字可以有多个相同的,但是id的名字...
    李博洋li阅读 885评论 0 1
  • class和id的使用场景? class为一类的元素命名,所有有共同特性的元素都可以用同一class进行分类;id...
    LeeoZz阅读 378评论 0 0
  • class 和 id 的使用场景? class 和 id 有什么区别 class是设置标签的类, class属性用...
    萧雪圣阅读 267评论 0 0
  • 1.CSS 元素选择器 最常见的 CSS 选择器是元素选择器。换句话说,文档的元素就是最基本的选择器。如果设置 H...
    饥人谷_小侯阅读 849评论 0 1
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,023评论 0 1