美文网首页
5.css伪类及伪元素的常用使用方法

5.css伪类及伪元素的常用使用方法

作者: 欣博客 | 来源:发表于2020-02-17 22:24 被阅读0次

    1.a标签超链接伪类选择器

    伪类专门用来表示元素的一种的特殊的状态
    比如:访问过的超链接,比如普通的超链接,比如获取焦点的文本框
    当我们需要为处在这些特殊状态的元素设置样式时,就可以使用伪类

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
              
                /*
                 * 为没访问过的链接设置一个颜色为绿色
                 *  :link
                 *      - 表示普通的链接(没访问过的链接)
                 */
                a:link{
                    color: yellowgreen;
                }
    
                /*
                 * 为访问过的链接设置一个颜色为红色
                 *  :visited
                 *      - 表示访问过的链接
                 *
                 * 浏览器是通过历史记录来判断一个链接是否访问过,
                 *  由于涉及到用户的隐私问题,所以使用visited伪类只能设置字体的颜色
                 *
                 */
                a:visited{
                    color: red;
                }
    
                /*
                 * :hover伪类表示鼠标移入的状态
                 */
                a:hover{
                    color: skyblue;
                }
    
                /*
                 * :active表示的是超链接被点击的状态
                 */
                a:active{
                    color: black;
                }
    
                /*
                 * :hover和:active也可以为其他元素设置
                 * IE6中,不支持对超链接以外的元素设置:hover和:active
                 */
                p:hover{
                    background-color: yellow;
                }
    
                p:active{
                    background-color: orange;
                }
    
                /*
                 * 文本框获取焦点以后,修改背景颜色为黄色
                 */
                input:focus{
                    background-color: yellow;
                }
    
                /**
                 * 为p标签中选中的内容使用样式
                 *  可以使用::selection为类
                 *  注意:这个伪类在火狐中需要采用另一种方式编写::-moz-selection
                 */
    
                /**
                 * 兼容火狐的
                 */
                p::-moz-selection{
                    background-color: orange;
                }
    
                /**
                 * 兼容大部分浏览器的
                 */
                p::selection{
                    background-color: orange;
                }
    
            </style>
        </head>
        <body>
    
    
            <a href="http://www.baidu.com">访问过的链接</a>
            <br /><br />
            <a href="http://www.baidu123456.com">没访问过的链接</a>
    
            <p>我是一个段落</p>
    
            <!-- 使用input可以创建一个文本输入框 -->
            <input type="text" />
    
        </body>
    </html>
    
    

    2.伪元素

    使用伪元素来表示元素中的一些特殊的位置

    为p中第一个字符来设置一个特殊的样式
    <!DOCTYPE html>
    <html>
    
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                p:first-letter {
                    color: red;
                    font-size: 20px;
                }
    
            </style>
        </head>
    
        <body>
            <p>
                 枣树,他们简直落尽了叶子。先前,还有一两个孩子来打他们,别人打剩的枣子,现在是一个也不剩了,连叶子也落尽了。他知道小粉红花的梦,秋后要有春;他也知道落叶的梦,春后还是秋。他简直落尽叶子,单剩干子,然而脱了当初满树是果实和叶子时候的弧形,欠伸得很舒服。但是,有几枝还低亚着,护定他从打枣的竿梢所得的皮伤,而最直最长的几枝,却已默默地铁似的直刺着奇怪而高的天空,使天空闪闪地鬼䀹眼;直刺着天空中圆满的月亮,使月亮窘得发白。 鬼䀹眼的天空越加非常之蓝,不安了,仿佛想离去人间,避开枣树,只将月亮剩下。然而月亮也暗暗地躲到东边去了。而一无所有的干子,却仍然默默地铁似的直刺着奇怪而高的天空,一意要制他的死命,不管他各式各样地䀹着许多蛊惑的眼睛。 哇的一声,夜游的恶鸟飞过了。 我忽而听到夜半的笑声,吃吃地,似乎不愿意惊动睡着的人,然而四围的空气都应和着笑。
            </p>
        </body>
    
    </html>
    
    
    预览效果:
    image.png
    为p中的第一行设置一个背景颜色为黄色
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                p:first-line {
                    background-color: yellow;
                }
            </style>
        </head>
    
        <body>
            <p>
                 枣树,他们简直落尽了叶子。先前,还有一两个孩子来打他们,别人打剩的枣子,现在是一个也不剩了,连叶子也落尽了。他知道小粉红花的梦,秋后要有春;他也知道落叶的梦,春后还是秋。他简直落尽叶子,单剩干子,然而脱了当初满树是果实和叶子时候的弧形,欠伸得很舒服。但是,有几枝还低亚着,护定他从打枣的竿梢所得的皮伤,而最直最长的几枝,却已默默地铁似的直刺着奇怪而高的天空,使天空闪闪地鬼䀹眼;直刺着天空中圆满的月亮,使月亮窘得发白。 鬼䀹眼的天空越加非常之蓝,不安了,仿佛想离去人间,避开枣树,只将月亮剩下。然而月亮也暗暗地躲到东边去了。而一无所有的干子,却仍然默默地铁似的直刺着奇怪而高的天空,一意要制他的死命,不管他各式各样地䀹着许多蛊惑的眼睛。 哇的一声,夜游的恶鸟飞过了。 我忽而听到夜半的笑声,吃吃地,似乎不愿意惊动睡着的人,然而四围的空气都应和着笑。
            </p>
        </body>
    </html>
    
    
    image.png
    :before和:after

    :before表示元素最前边的部分
    :after表示元素的最后边的部分
    一般before都需要结合content这个样式一起使用
    通过content可以向before或after的位置添加一些内容

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                p:before{
                    content: "我会出现在整个段落的最前边";
                    color: red;
                }
    
                p:after{
                    content: "我会出现在整个段落的最后边";
                    color: orange;
                }
            </style>
        </head>
    
        <body>
            <p>
                 枣树,他们简直落尽了叶子。先前,还有一两个孩子来打他们,别人打剩的枣子,现在是一个也不剩了,连叶子也落尽了。他知道小粉红花的梦,秋后要有春;他也知道落叶的梦,春后还是秋。他简直落尽叶子,单剩干子,然而脱了当初满树是果实和叶子时候的弧形,欠伸得很舒服。但是,有几枝还低亚着,护定他从打枣的竿梢所得的皮伤,而最直最长的几枝,却已默默地铁似的直刺着奇怪而高的天空,使天空闪闪地鬼䀹眼;直刺着天空中圆满的月亮,使月亮窘得发白。 鬼䀹眼的天空越加非常之蓝,不安了,仿佛想离去人间,避开枣树,只将月亮剩下。然而月亮也暗暗地躲到东边去了。而一无所有的干子,却仍然默默地铁似的直刺着奇怪而高的天空,一意要制他的死命,不管他各式各样地䀹着许多蛊惑的眼睛。 哇的一声,夜游的恶鸟飞过了。 我忽而听到夜半的笑声,吃吃地,似乎不愿意惊动睡着的人,然而四围的空气都应和着笑。
            </p>
        </body>
    </html>
    
    
    image.png

    3.子元素的伪类

    设置第一个子元素和最后一个子元素 :first-child 和:last-child

    :first-child 可以选中第一个子元素
    :last-child 可以选中最后一个子元素

    为第一个p标签设置一个背景颜色为黄色
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                /* 必须第一个子元素是p标签,否则失效*/
                body > p:first-child{
                    background-color: yellow;
                }
                /* 必须最后一个子元素是p标签 否则失效*/
                p:last-child{
                    background-color: yellow;
                }
    
            </style>
        </head>
        <body>
            <!-- <span>我是span</span> -->
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <!-- <span>hello</span> -->
    
            <div>
                <!-- <span>ffff</span> -->
                <p>我是DIV中的p标签</p>
                <p>我是DIV中的p标签</p>
                <p>我是DIV中的p标签</p>
                <!-- <span>sssss</span> -->
            </div>
    
        </body>
    </html>
    
    
    预览效果:
    image.png

    nth-child 可以选中任意位置的子元素

    该选择器后边可以指定一个参数,指定要选中第几个子元素
    even 表示偶数位置的子元素
    odd 表示奇数位置的子元素

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
    
                /*
                 * :nth-child 可以选中任意位置的子元素
                 *      该选择器后边可以指定一个参数,指定要选中第几个子元素
                 *      even 表示偶数位置的子元素
                 *      odd 表示奇数位置的子元素
                 *
                 */
                p:nth-child(odd){
                    background-color: yellow;
                }
                p:nth-child(even){
                    background-color: blue;
                }
            </style>
        </head>
        <body>
            <!-- <span>我是span</span> -->
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <!-- <span>hello</span> -->
    
            <div>
                <!-- <span>ffff</span> -->
                <p>我是DIV中的p标签</p>
                <p>我是DIV中的p标签</p>
                <p>我是DIV中的p标签</p>
                <!-- <span>sssss</span> -->
            </div>
    
        </body>
    </html>
    
    
    预览效果:
    image.png

    :first-of-type :last-of-type :nth-of-type

    和:first-child这些非常的类似,只不过child,是在所有的子元素中排列
    而type,是在当前类型的子元素中排列

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                /*
                 * :first-of-type
                 * :last-of-type
                 * :nth-of-type
                 *      和:first-child这些非常的类似,
                 *      只不过child,是在所有的子元素中排列
                 *      而type,是在当前类型的子元素中排列
                 */
                p:first-of-type{
                    background-color: yellow;
                }
                p:last-of-type{
                    background-color: yellow;
                }
            </style>
        </head>
        <body>
            <span>我是span</span>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <span>hello</span>
    
            <div>
                <span>ffff</span>
                <p>我是DIV中的p标签</p>
                <p>我是DIV中的p标签</p>
                <p>我是DIV中的p标签</p>
                <span>sssss</span>
            </div>
    
        </body>
    </html>
    
    
    预览效果:
    image.png

    否定伪类

    可以从已选中的元素中剔除出某些元素
    用法::not(选择器)

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style type="text/css">
                p:not(.hello){
                    background-color: yellow;
                }
    
            </style>
        </head>
        <body>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
            <p class="hello">我是一个p标签</p>
            <p>我是一个p标签</p>
            <p>我是一个p标签</p>
        </body>
    </html>
    
    
    image.png

    相关文章

      网友评论

          本文标题:5.css伪类及伪元素的常用使用方法

          本文链接:https://www.haomeiwen.com/subject/innifhtx.html