• css选择器


    css以及css3都包含了非常多的选择器,这些选择器给我们提供了极大的便利

    在这篇随笔当中,入门阶段的元素选择器,id选择器,class选择器,群组选择器就不介绍了。这里我们要讲的是css中的层次选择器以及css3中的选择器

    一、层次选择器

    1.后代选择器:选择元素内部中所有的某一个元素,包括子元素和其他后代元素

    语法:M N{}

    说明:在后代选择器中,“M元素”和“N元素”之间用空格隔开,表示选中M元素内部后代N元素(所有N元素)。

    2.子代选择器:选中元素内部某一个子元素,该选择器与后代选择器有着明显区别

    1)后代选择器选取得是所有元素

    (2)子代选择器选取得是内部某一类子元素(仅限子元素,不包括子孙元素)

    语法:M>N{}

    3.兄弟选择器

    语法:M~N{}

    说明:选中M元素后面的某一类兄弟元素,记住,兄弟选择器只选取后面的所有兄弟元素,不包括前面的所有兄弟元素

    4.相邻选择器

    语法:M+N{}

    表示选择M元素后面的某一个相邻的兄弟元素N。

    技巧:li+li{/*样式代码*/}

    使用在相邻选择器,表示选择li元素相邻的下一个li元素,因为最后一个li元素没有相邻的下一个li元素。所以对于最后一个li元素,没有下一个li元素可以选取

    例如:li+li{border-top:2px soild red;}可以达到在两个li元素之间添加一个单边框的效果

    二、CSS3选择器

    (1)结构伪类选择器

    1.第一类结构伪类选择器:(子元素选择器)

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

    E:last-child        选择父元素的最后一个子元素

    E:nth-child(n) 选择父元素的第n个子元素或奇偶元素,n的取值为整数或者odd/even

    E:only-child       选择父元素下的唯一个子元素(只有在父元素只有一个子元素的情况下才能使用)

    以上的E是子元素,需要在前面添加父元素例如:ul li:first-child{/*css代码*/},第一类结构伪类选择器特别适合与设置列表的列表项的不同样式,还有表格,列表中的隔行换色。

    eg:

    <div>
        <h1></h1>
        <p></p>
        <span></span>
        <span></span>
    </div>
    

    h1:first-child:选择的是h1,因为h1是div的第一个子元素

    p:first-child:选择不到任何元素,因为p不是div的第一个子元素

    2.第二类结构伪类选择器:(同级兄弟元素选择器)

    E:first-of-type   选择同元素类型的第一个同级兄弟元素

    E:last-of-type   选择同元素类型的最后一个同级兄弟元素

    E:nth-of--type(n)   选择同元素类型的第n个或奇偶同级兄弟元素

    E:only-of-type   匹配父元素中特定类型的唯一子元素(该父元素可以有多个子元素)

    <div>
        <h1></h1>
        <p></p>
        <span></span>
        <span></span>
    </div>
    

    h1:first-of-type:选择的是h1,因为h1元素是所有h1元素里的第一个h1元素,而且也只有h1元素

    p:first-of-type:选择的是p,因为p元素是所有p元素里的第一个p元素,而且也只有p元素

     

    *所以,在通过第一类和第二类的比较后,我们可以发现,第一类结构伪类选择器是选择父元素下的第一个子元素(不区分元素类型),而第二类结构伪类选择器则是选择特定类型的元素的第一个元素(区分元素类型)

     

    3.第三类结构伪类选择器:

    1. :root      选择页面的根元素,也就是html元素

    2. E:not()     选择括号内元素之外的所有元素

    3. E:empty   选择一个不包含任何子元素和内容的元素

    用法:这个选择器非常的实用,我们可以通过这个选择器来控制一些内容为空的表格单元格的样式

    4. E:target   选取页面中某个target元素

    *所谓的target元素,就是指id被当做页面内的超链接的元素

    eg:

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head> 
        <title>CSS3 :target选择器</title>
        <style type="text/css">
            :target h3
            {
                color:red;
            }
        </style>
    </head>
    <body>
        <div>
            <a href="#music">推荐音乐</a><br />
            <a href="#movie">推荐电影</a><br />
            <a href="#article">推荐文章</a><br />
        </div>
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        <div id="music">
            <h3>推荐音乐</h3>
            <ul>
                <li>林俊杰-被风吹过的下图</li>
                <li>曲婉婷-在我的歌声里</li>
                <li>许嵩-灰色头像</li>
            </ul>
        </div>
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        <div id="movie">
            <h3>推荐电影</h3>
            <ul>
                <li>蜘蛛侠系列</li>
                <li>钢铁侠系统</li>
                <li>复仇者联盟</li>
            </ul>
        </div>
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        ……<br />
        <div id="article">
            <h3>推荐文章</h3>
            <ul>
                <li>朱自清-荷塘月色</li>
                <li>余光中-乡愁</li>
                <li>鲁迅-阿Q正传</li>
            </ul>
        </div>
    </body>
    </html>
    

      其中,#表示返回顶部,#加id名,则表示返回至该页面的id所在地,也就是我们常说的锚点链接

    target选择器里的样式,只有当链接被点击的时候才会被显示出来

    (2)属性选择器

    所谓属性选择器,就是通过属性来选择元素

    1.E[attr^="属性值"]

    选取了属性以双引号内属性值开头的元素

    2.E[attr$="属性值"]

    选取了属性以双引号内属性值结尾的元素

    3.E[attr*=“属性值”]

    选取了属性包含了双引号内属性值的元素

    (3)UI元素状态伪类选择器

    什么叫做UI元素状态:UI元素状态包括可用,不可用,失去焦点,获得焦点,选中,未选中

    包括以下选择器:

    1.E:focus          指定获取焦点的元素样式

    一般情况下,E:focus主要针对与表单元素单行文本框text和多行文本框textarea

    eg:

    input:focus{
    outline:1px solid red;
    }
    

    *outline属性用于设置文本框的外边框样式

    2.E:checked      选择E元素中所有被选中时的元素

    说明:目前只有opera浏览器支持E:checked选择器,该选择器一般用于表单元素单选框radio和复选框checkbox,设置他们的选中与未选中的状态

    3.E::selection     改变E元素中被选择的网页文本的显示效果(用鼠标选中的文本)

    说明:在这里,selection选择器前面的是双引号,这说明他是伪元素,而单引号则是伪类。默认情况下,被选中的文本都是蓝色背景,白色字体,我们可以利用这个选择器来改变这个样式

    4.E:enabled      选择E元素中可用元素      ||     E:disabled     选择E元素中不可用元素

    说明:表单元素默认情况下都是可用的,当我们在想要禁用的表单元素中加入disabled属性,这个表单元素就是出于被禁用状态,这时就可以使用这个选择器

    5.E:read-write  选择E元素中可读写元素    ||    E:read-only   选择E元素中只读元素

    说明:同上,用法类似可用于不可用元素选择器

    7.E::before      在E元素之前插入内容,样式中必须有content   ||      E::after        在E元素之后插入内容,样式中必须有content

    说明:这两种伪元素选择器常用于清除浮动和创建小图标

     

  • 相关阅读:
    提高代码质量:如何编写函数
    如何写自我评价
    写简历注意事项
    Android开发注意细节
    Android:onNewIntent()触发机制及注意事项
    Atom与markdown
    Java程序性能优化总结
    Java中的继承与组合
    Fragment生命周期总结
    C# 生成随机姓名
  • 原文地址:https://www.cnblogs.com/runhua/p/6421262.html
Copyright © 2020-2023  润新知