CSS3选择器

CSS3选择器主要包含以下几种

子元素选择器

E > F类型,子元素选择器选中的是子元素F,子子孙孙不会被选

而后代选择器E F类型是选中所有的F,包含F的后代也选中

兄弟选择器

相邻兄弟选择器

E + F类型,必备属性:1.必须同级;2.必须相邻;3.必须在其下方;4.有且只有一个符合。

通用兄弟选择器

E ~ F类型,必备属性:1.必须同级;2.必须在其下方;3.可以有多个符合。

属性选择器

[ ]类型,例如[class]指具有class属性的值

[abc ="value"]类型,属性和值选择器

[abc ~="value"] ~表示几个以空格隔开的属性值中包含了”value”

[abc ^="value"] ^以value开头的值

[abc $="value"] $以value结尾的值

[abc *="value"] *包含value的值

[abc |="value"] |以value或value-开头的值

[abc =value][abc *="value"]较实用。

伪类选择器

锚点伪类(a的伪类)

简称爱恨法则 love & hate

  1. l = link 没有访问过的状态

  2. v = visited 访问过后的状态

  3. h = hover 鼠标悬浮在标签上的状态

  4. a = active 鼠标悬浮在标签上按下没有松开的状态

使用时候顺序不能变,必须从前到后。

UI元素伪类 表单元素

disabled 废弃属性,元素不可用

focus 聚焦属性

checked 选中(并不能完美支持)

enabled 可用状态

    <style>
        input:disabled{
            border:2px solid blue;
            background-color:gold;
        }
        input:focus{
            border:2px solid red;
        }
        input:checked{
            display:block;
            width:50px;
            height:50px;
        }
        input:enabled{
            background-color:pink;
        }
    </style>
    <form>
        <input type="text" disabled />
        <input type="text"/>
        <input type="text"/>
        <input type="checkbox"/>
        <input type="checkbox"/>
    </form>
    
    

否定选择器

:not类型,通常和属性选择器结合使用。

    <style>
        input:not([type="submit"]){
            border:2px solid gold;
        }
    </style>
    <form>
    <input type="text"/>
    <input type="submit"/>
    </form>

效果如下:

not否定选择器

nth选择器

:first-child选择某个元素的第一个子元素

last-child选择某个元素的最后一个子元素

nth-last-child()选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始算

:nth-of-type()选择指定的元素

:nth-last-of-type()选择指定的元素,从元素的最后一个开始计算

:first-of-type选择一个上级元素下的第一个同类子元素

:last-of-type选择一个上级元素的最后一个同类子元素

:only-child选择的元素是它的父元素的唯一一个子元素

:only-of-type选择一个元素是它的上级元素的唯一一个相同类型的子元素

:empty选择的元素里面没有任何内容

因属性较多,后面属性设置会覆盖前面,就不在一一展现,仅列举几个

    <style>
        ul li:first-child{
            background-color:black;
        }
        ul li:last-child{
            background-color:pink;
        }
        ul li:nth-of-type(3){
            background-color:blue;
        }
    </style>
    <ul>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>

效果如下:

nth选择器

:nth-child()选择某个元素的一个或多个特定的子元素

:nth-child(length)参数是具体数字

:nth-child(n)参数是n,n从1开始计算

:nth-child(2n)n的倍数选择,n从1开始算(偶数行也可用even)

:nth-child(2n+1)表示隔几选一(奇数行也可用odd)

:nth-child(n+length)选择大于等于length后面的元素

:nth-child(-n+length)选择小于等于length前面的元素

伪元素

::first-letter选择文本块的第一个字母,除非在同一行里面包含一些其它元素,不过这个主要运用于段落排版上多

::first-line选择元素的第一行

::before,::after这两个主要用来给元素的前面或后面插入内容,这两个常用”content”配合使用,见过最多的就是清除浮动还有图片icon

::selection用来改变浏览网页选中文本的默认效果,::selection只能设置两个属性background,color属性,设置其他属性是没有任何效果的

    <style>
        div{
            width:500px;
            height:500px;
            background-color:green;
            margin:0 auto;
            font-size:30px;
            position:relative;
            font-size:30px;
            }
        div::before{
            content:"";
            width:200px;
            height:200px;
            background-color:orange;
            display:block;
            position:absolute;
            top:60px;
            left:0;
        }
        div::after{
            content:"";
            width:200px;
            height:200px;
            background-color:gold;
            display:block;
            position:absolute;
            right:0;
            top:0;
        }
        div::first-letter{
            color:red;
            font-size:60px;
        }
        div::first-line{
            color:purple;
        }
        div::selection{
            color:white;
            background:black;
        }
    </style>
    <div>我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div我是div
    </div>    

效果如下:

伪元素