(1)交集选择器

交集选择器是并且的意思,是即…又…的意思。用的相对来说比较少,不太建议使用。

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> .red {
            color: red;
        }
        p.red {
            color: blue;
        }
    </style>
</head>

<body>
    <div class="red">可口可乐</div>
    <div>炸鸡块</div>
    <div>多喝热水</div>
    <p>早安</p>
    <p>午安</p>
    <p class="red">晚安</p>
</body>

</html>

(2)并集选择器

交集选择器是和的意思,只要是逗号隔开的,所有选择器都会执行后面的样式。

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> div, p, span, .Ju {
            color: blue;
        }
    </style>
</head>

<body>
    <div>Huahudiediedie</div>
    <p>Daxaing</p>
    <span>Changjinglu</span>
    <h1 class="Ju">Juzi</h1>
    <h1 class="Mei">Meizi</h1>
    <h1 class="Qie">Qiezi</h1>
</body>

</html>


(3)后代选择器

后代选择器又叫包含选择器,用来选择元素或元素组的后代,其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就会成为外层标签的后代。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <style>
        /* div p { color: pink; } */
        .sun p {
            color: red;
        }
    </style>
</head>

<body>
    <p>我想锤死你</p>
    <div class="sun">
        <p>打死你个龟孙儿</p>
    </div>
    <div class="er">
        <p>打死你个龟儿子</p>
    </div>
</body>

</html>


(4)子元素选择器

这里的子 指的是亲儿子 不包含孙子、重孙子之类

<!DOCTYPE html> <html lang="en"> <style> .nav li {
            color:red;
        }
    .nav > li {
        color: blue;
    }
</style>

<head>
    <meta charset="UTF-8">
</head>

<body>
    <ul class="nav">
        <li>一级菜单
            <ul>
                <li>二级菜单</li>
                <li>二级菜单</li>
                <li>二级菜单</li>
            </ul>
        </li>
    </ul>
</body>

</html>

  • 交、并、后、子四类选择器小案例:
    不修改以下代码实现如下任务:
    ①链接 登录 的颜色改为红色,同时主导航栏里面的所有链接均改为蓝色。(简单)
    ②主导航栏和测导航栏里面文字都改为14像素并且是微软雅黑.。(中等)
    ③主导航栏里面的一级菜单链接文字颜色改为绿色。(困难)
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">

</head>

<body>
    <!-- 主导航栏 -->
    <div>
        <ul>
            <li><a href="#">公司首页</a></li>
            <li><a href="#">公司简介</a></li>
            <li><a href="#">公司产品</a></li>
            <li>
                <a href="#">联系我们</a>
                <ul>
                    <li><a href="#">公司邮箱</a></li>
                    <li><a href="#">公司电话</a></li>
                </ul>
            </li>
        </ul>
    </div>
    <!-- 测导航栏 -->
    <div class="sitenav">
        <div class="site-l">左侧导航栏</div>
        <div class="site-r"><a href="#">登录</a></div>
    </div>
</body>

</html>

实现效果:

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <!-- 任务一: --> <style> .site-r a {
            color: red;
        }

        .nav ul li a {
            color: skyblue;
        }

        /* 任务二: */
        .nav, .sitenav {
            /* font-size: 14px; font-family: "microsoft yahei"; */
            font: 14px "microsoft yahei";
        }

        /* 任务三: */
        .nav>ul>li>a {
            color: green;
        }
    </style>
</head>

<body>
    <!-- 主导航栏 -->
    <div class="nav">
        <ul>
            <li><a href="#">公司首页</a></li>
            <li><a href="#">公司简介</a></li>
            <li><a href="#">公司产品</a></li>
            <li>
                <a href="#">联系我们</a>
                <ul>
                    <li><a href="#">公司邮箱</a></li>
                    <li><a href="#">公司电话</a></li>
                </ul>
            </li>
        </ul>
    </div>
    <!-- 测导航栏 -->
    <div class="sitenav">
        <div class="site-l">左侧导航栏</div>
        <div class="site-r"><a href="#">登录</a></div>
    </div>
</body>

</html>

(5)属性选择器

选取标签带有某些特殊属性的选择器,称为属性选择器。

E[attr]-----------存在attr属性即可。
E[attr=val]-----------属性值完全等于val。
E[attr^=val]-----------属性值里包含val字符并且在"开始"位置。
E[attr$=val]-----------属性值里面包含val字符并且在"结束"位置。
E[attr*=val]-----------属性值里包含"val"字符并且在"任意"位置。

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> a[title] {
            color: red;
        }

        input[type=text] {
            color: green;
        }

        div[class^=font] {
            color: pink;
        }

        div[class$=footer] {
            color: skyblue;
        }

        div[class=jd] {
            color: aqua;
        }

        div[class*=jd] {
            color: orange;
        }
    </style>
</head>

<body>
    <a href="#" title="这是百度">百度</a>
    <a href="#" title="这是新浪">新浪</a>
    <a href="#">阿里</a>
    <a href="#">网易</a>
    <a href="#">土豆</a>
    <input type="text" value="文本框">
    <input type="text" value="文本框">
    <input type="submit">

    <div class="font1">属性选择器</div>
    <div class="font2">属性选择器</div>
    <div class="font3">属性选择器</div>
    <div class="font4">属性选择器</div>
    <div class="font5">属性选择器</div>

    <div class="sub-footer">属性选择器</div>
    <div class="xxx-footer">属性选择器</div>

    <div class="news-jd-nav">属性选择器</div>
    <div class="news-headerjd">属性选择器</div>
    <div class="jd-news-header">属性选择器</div>
    <div class="jd123">属性选择器</div>
</body>

</html>

(6)伪元素选择器(CSS3)

E::first-letter------文本的第一个单词或者字(中文、日文、韩文等)。
E::first_line------文本第一行。
E::selection------可改变选中文本的样式。
E::before------在E元素内部的开始位置创建一个元素。
E::after------在E元素内部的结束位置创建一个元素。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> p::first-letter {
            color: red;
            font-size: 30px;
        }

        p::first-line {
            color: skyblue;
            font-size: 30px;
        }

        p::selection {
            color: pink;
        }

        p::before {
            content: "Huahudie";
        }

        p::after {
            content: "Daxiang";
        }
    </style>
</head>

<body>
    <h1>Blockchain</h1>
    <p>区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),
        是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相
        关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下
        一个区块
        [1] 。
        比特币白皮书英文原版 [2] 其实并未出现 blockchain 一词,而是使用的 chain of blocks。最早的比特币白皮书
        中文翻译版 [3] 中,将 chain of blocks
        翻译成了区块链。这是“区块链”这一中文词最早的出现时间。
        国家互联网信息办公室2019年1月10日发布《区块链信息服务管理规定》,自2019年2月15日起施行 [4] 。
    </p>
</body>

</html>