CSS高级选择器

高级选择器分为:后代选择器、子代选择器、并集选择器、交集选择器

后代选择器

语法格式:选择器1 选择器2 ..... { 属性名N:属性值; }

描   述: 选择父选择器下面的子选择器,添加属性

注   意:

1、 选择器1 和选择器2之间有父子关系

2、 选择器可以有N个(注意:父子关系;多个选择器之间有一个空格)

这个其实就是嵌套你的选择属性,比如前者加上你的外面的父级后者加入要进行的子级

使用空格表示后代选择器。顾名思义,父元素的后代(包括儿子,孙子,重孙子)

<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>
    <style>
        u{
            color: pink;
        }
        div u{
            /*这个是选择div中的u标签进行改变*/
            color: green;
        }
    </style>
</head>
<body>
<!--高级选择器分为 后代选择器 子代选择器  并集选择器 交集选择器-->
<p><u>老王开车去卖瓜</u></p>
<div>
    你家里的物品
    <span>
        有很多东西
        <u>什么都有</u>
    </span>
</div
后代选择器
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>
    <style>

        .two{
            /*这个是对所有的类是two的标签进行修改*/
            color: brown;
        }
        .one .two{
            /*仅仅对父类是one字类是two的标签进行修改*/
            
            color:red;
        }

    </style>
</head>
<body>
<p class="one"><u class="two">老王</u></p>
<p class="two">老李</p>
<p class="three">老张</p>

</body>

子代选择器

使用>表示子代选择器。比如div>p,仅仅表示的是当前div元素选中的子代(不包含孙子....)元素p。

<head>
    <meta charset="UTF-8">
    <title>子代选择器</title>
    <style>

        .one >p{
            /*选择第一个的p因为有大于号*/
            color: red;
        }

    </style>
</head>
<body>

<div class="one">
    <p>111
        <div><p>222</p></div>
    </p>

</div>
</body>

并集选择器

多个选择器之间使用逗号隔开。表示选中的页面中的多个标签。一些共性的元素,可以使用并集选择器

:选择器1,选择器2 ..... { 属性名N:属性值; }

描   述: 给多个选择器同时添加相同属性

注   意:

1、 多个选择器之间用逗号“,”分隔

<head>
    <meta charset="UTF-8">
    <title>并集</title>
    <style>
        h3,a{
            /*使用逗号对所有的进行需要进行设置的选择器进行设置*/
            color: brown;
        }
    </style>
</head>
<body>
<h3>这是一个奇幻的开头</h3>
<a href="">真的吗</a>

</body>

比如像百度首页使用并集选择器。

 body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td {
      margin: 0;
      padding: 0
   }
/*使用此并集选择器选中页面中所有的标签,页面布局的时候会使用*/
百度首页并集的运用

交集选择器

使用.表示交集选择器。第一个标签必须是标签选择器,第二个标签必须是类选择器 

错误代码:

<head>
    <meta charset="UTF-8">
    <title>并集</title>
    <style>

        .class a{
            /*像这种代码是没有做用的  因为必须这两个选择器是不同类型的*/
            color: red;
        }

    </style>
</head>
<body>
<h3 class="one">这是一个奇幻的开头</h3>
<a href="">真的吗</a>
</body>

并集选择器:

    <style>
        h3.one{
            /*并集选择器中间不能加空格*/
            color: red;
        }


    </style>
</head>
<body>
<h3 class="one">这是一个奇幻的开头</h3>
<a href="">真的吗</a>
</body>

属性选择器:

<!-- 属性选择器仅限于在表单控件中 -->

<head>
    <meta charset="UTF-8">
    <title>属性选择器</title>
    <style>
        [for]{
            color: aquamarine;
        }
        [for='username']{
            color: brown;
        }
        [for=password]{
            font-size: 20px;
            font-family: 楷体;
        }
        /*以...开头^ 其实就和正则的^符号差不多开头*/
        [for^=user]{
            /*对以user开头的标签进行操作*/
            color: red;
        }
        /*包含某元素的标签*/
        [for*=vip]{
            /*找到属性含有vip的属性进行修改*/
            color: olive;
        }
        [for*='our']{
            color: red;
        }
        /*以....结尾   $*/
        [for$='ip']{
            /*找到以ip为结尾的标签的属性*/
            color: yellow;
        }
        
    </style>
</head>
<body>
<form action="">
    <label for="lab">这是输入框</label>
    <input type="text"><br/>
    <label for="username">请输入用户名</label>
    <input type="text"><br/>
    <label for="password">请输入密码</label>
    <input type="password"><br/>
    <label for="yourevip">vip用户登陆区域</label>
    <input type="text">

</form>
</body>

伪类选择器

伪类选择器一般会用在超链接a标签中,使用a标签的伪类选择器

语法格式:选择器:[参数]  { 属性名N:属性值; }

参   数:

a:link { color:#ff0000; }      /*默认样式,超链接文字为红色*/

a:visited { color:#00ff00; }    /*访问过后,超链接文字为绿色*/

a:hover { color:#0000ff; }    /*鼠标经过,超链接文字为蓝色*/

a:active { color:#ffff00; }     /*鼠标按下时,超链接文字为黄色*/

注   意:

1、默认[参数],:link 省略

2、常用状态: hover 鼠标经过/移动到链接上时显示的颜色

<head>
    <meta charset="UTF-8">
    <title>伪类选择器</title>
    <style>
        a:link{
            /**/
            color:red;}
        a:visited{
            /*访问过后的颜色*/
            color: black;
        }
        a:hover{
            /*鼠标经过就是黄色的*/
            color: yellow;
        }
        a:active{
            /*鼠标摁着不松的状态*/
            color: aqua;
        }
    </style>
</head>
<body>
<a href="">这是一个选择器</a>
<a href=""></a>

</body>
伪类选择器:对于a标签

再给大家介绍一种css3的选择器nth-child():

<head>
    <meta charset="UTF-8">
    <title>nth-child</title>
    <style>
         /*选中第一个元素*/
        div, ul li:first-child{
            /*对div中和ul中的第一行的li的字体进行修改*/
            font-size: 77px;
            color: red;
        }
        /*选中最后一个元素*/
        div,ul li:last-child{
            /*对最后一行的元素进行设置*/
            color:green;
        }
        /*选中当前指定的元素  数值从1开始*/
        div,ul li:nth-child(2){
            /*对指定的div的第二行 ul中的第二个li进行设置*/
            font-size: 3px;
        }
         /*偶数*/
        div,ul li:nth-child(2n){
            /*对偶数行进行设置*/
            font-size: 50px;
            color:white;
        }
        /*奇数*/
        div,ul li:nth-child(2n-1){
            color:darkgreen;
        }
        /*隔几换色  隔行换色
             隔4换色 就是5n+1,隔3换色就是4n+1
            */
        div, ul li:nth-child(5n+1){
            color:blueviolet;
        }

    </style>
</head>
<body>
<div>
    你是不是偷偷的喜欢我
</div>
<ul>
    <li>要不要</li>
    <li>这样</li>
    <li>就这样</li>
</ul>

</body>

 伪元素选择器:

<head>
    <meta charset="UTF-8">
    <style>
        /*设置第一个首字母的样式*/
        p:first-letter{
            /*对p标签的第一个元素进行设置*/
            color:red;
            font-size:30px;
        }
        /* 在....之前 添加内容   这个属性使用不是很频繁 了解  使用此伪元素选择器一定要结合content属性*/
        p:before{
            /*在p标签之前添加元素*/
            content:'alex;'
        }
        /*在....之后 添加内容,使用非常频繁 通常与咱们后面要讲到布局 有很大的关联(清除浮动)*/
        p:after{
            /*在p标签的最后面添加元素*/
            content:'alex';
            color:red;
            font-size: 40px;
        }
    </style>
</head>
<body>
<p>这是一个伪元素的选择器</p>

</body>
原文地址:https://www.cnblogs.com/zhaoyunlong/p/9077651.html