CSS——选择器(三大特性)

一、继承性

1、基本介绍

#1、定义:给某一个元素设置一些属性,该元素的后代也可以使用,这个我们就称之为继承性

#2、注意:
    1、只有以color、font-、text-、line-开头的属性才可以继承
    2、a标签的文字颜色和下划线是不能继承别人的
    3、h标签的文字大小是不能继承别人的,会变大,但是会在原来字体大小的基础上变大
        ps:打开浏览器审查元素可以看到一些inherited from。。。的属性
#3、应用场景:
    通常基于继承性统一设置网页的文字颜色,字体,文字大小等样式

2、继承性举例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>

    <style type="text/css">

        div {
            color: red;
            font-size: 50px;
        }

    </style>
</head>
<body>

<div>
    <h1>我是标题</h1>
    <p><a href="#">偶的博爱</a></p>
    <ul>
        <li>导航1</li>
        <li>导航2</li>
        <li>导航2</li>
    </ul>
</div>

<div>
    <div>
        <p>aaaa</p>
    </div>
    <div>
        <p>bbbb</p>
    </div>
</div>

</body>
</html>

二、层叠性

1、基本介绍

#1、定义:CSS全称:Cascading StyleSheet层叠样式表,层叠性指的就是CSS处理冲突的一种能力,即如果有多个选择器选中了同一个标签那么会有覆盖效果

#2、注意:
1、层叠性只有在多个选择器选中了同一个标签,然后设置了相同的属性,
才会发生层叠性
ps:通过谷歌浏览器可以查看到,一些属性被划掉了

2、层叠性举例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>

    <style type="text/css">

        p {
            color: red;
        }

        .ppp {
            color: green;
        }

    </style>
</head>
<body>

<p class="ppp">我是段落</p>

</body>
</html>

三、优先级

#1、定义:当多个选择器选中同一个标签,并且给同一个标签设置相同的属性时,如何层叠就由优先级来确定

#2、优先级
    整体优先级从高到底:行内样式>嵌入样式>外部样式

    行内样式并不推荐使用,所以我们以嵌入为例来介绍优先级

1、大前提:直接选中 > 间接选中(即继承而来的)

#1、以下为直接选中
    <style type="text/css">
        #id1 {
            color: red;
        }

        .ppp {
            color: green;
        }

        p {
            color: blue;
        }
    </style>

#2、以下为间接选中
    <style type="text/css">
        ul {
            color: yellow;
        }
    </style>

    <ul>
        <li>
            <p id="id1" class="ppp">我是span</p>
        </li>
    </ul>

2、如果都是间接选中,那么谁离目标标签比较近,就听谁的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>

    <style type="text/css">
        /*离目标近*/
        li {
            color: red;
        }
        /*离目标远*/
        ul {
            color: yellow;
        }

    </style>
</head>
<body>

    <ul>
        <li>
            <p id="id1" class="ppp">我是span</p>
        </li>
    </ul>
</body>
</html>

3、如果都是直接选中,并且都是同类型的选择器,那么就是谁写的在后面就听谁的

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>

    <style type="text/css">
        p {
            color: red;
        }
        /*同样都是标签选择器,谁写在后面谁生效*/
        p {
            color: yellow;
        }

    </style>
</head>
<body>

    <ul>
        <li>
            <p id="id1" class="ppp">我是span</p>
        </li>
    </ul>
</body>
</html>

4、如果都是直接选中,并且是不同类型的选择器,那么就会按照选择器的优先级来层叠

    id > 类 > 标签 > 通配符(也算直接选中) > 继承 > 浏览器默认(即没有设置任何属性)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>

    <style type="text/css">
        /*打开浏览器依次去掉优先级高的来进行验证*/
        #id1 {
            color: red;
        }
        .ppp {
            color: green;
        }
        p {
            color: blue;
        }
        * {
            color: yellow;
        }
        li {
            color: #7e1487;
        }

    </style>
</head>
<body>

    <ul>
        <li>
            <p id="id1" class="ppp">我是span</p>
        </li>
    </ul>
</body>
</html>

5、优先级之!important

#1、作用:还有一种不讲道理的!import方式来强制指定的属性的优先级提升为最高,但是不推荐使用。因为大量使用!import的代码是无法维护的。

#2、注意:
    1、!important只能用于直接选中,不能用于间接选中
    2、!important只能用于提升被指定的属性的优先级,其他属性的优先级不会被提升
    3、!important必须写在属性值分号的前面

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>

    <style type="text/css">
        /*打开浏览器依次去掉优先级高的来进行验证*/
        #id1 {
            color: red;
        }
        .ppp {
            color: green;
        }
        p {
            color: blue;
        }
        * {
            color: yellow !important;
        }
        li {
            color: #7e1487;
        }

    </style>
</head>
<body>

    <ul>
        <li>
            <p id="id1" class="ppp">我是span</p>
        </li>
    </ul>
</body>
</html>

6、优先级之权重计算

#1、强调
如果都是直接选中,并且混杂了一系列其他的选择器一起使用时,则需要通过计算机权重来判定优先级

#2、计算方式
#1、id数多的优先级高
#2、id数相同,则判定类数多的优先级高
#3、id数、class数均相同,则判定标签数多的优先级高
#4、若id数、class数、标签数均相同,则无需继续往下计算了,谁写在后面谁的优先级高

举例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>后代选择器</title>

    <style type="text/css">
        #id1 #id2 #id3 .ppp{
            color: red;
        }
        #id2 #id3.aaa p{
            color: purple;
        }

        #id1.ccc>.bbb>.aaa>p {
            color: pink;
        }

        #id1 .aaa .ppp {
            color: green;
        }

        #id2 .aaa p {
            color: yellow;
        }

        div ul li p {
            color: blue;
        }

        div ul p {
            color: cyan;
        }

    </style>
</head>
<body>
    <div id="id1" class="ccc">
        <ul id="id2" class="bbb">
            <li id="id3" class="aaa">
                <p class="ppp">我是段落</p>
            </li>
        </ul>
    </div>
</body>
</html>
(0)

相关推荐

  • CSS三大特性

    CSS有三个非常重要的特性:层叠性.继承性.优先级. 1. 层叠性 给相同的选择器设置相同的样式,此时一个样式就会覆盖(层叠)另一个冲突的样式. 层叠性主要解决样式冲突的问题. 层叠性原则: 样式冲突 ...

  • 学术写作三大特性介绍

    现在中国学生出国留学最大的障碍之一是学术写作?!没错,无论是入学考试.语言考试(比如托福)还是英美等国家KS3阶段学科作业.课堂检测等等都会要求学生进行学术性写作. 在国内,我们的孩子也是从初中开始接 ...

  • 小白入门你教程CSS选择器

    CSS越来越重要是大家中所周之的,但是还有很多人不知道CSS有哪些基本选择器和高级选择器?下面我们来总结一下. CSS有哪些基本选择器和高级选择器? ID选择器>类选择器>标签选择器 行内 ...

  • 奔驰EQV商务车,具备三大特性:电动,多功能,智能

    梅赛德斯-奔驰 EQV(组合功耗:26.4-26.3 kWh / 100 km:二氧化碳排放量:0 g / km)是梅赛德斯-奔驰首款采用纯电池驱动的优质 MPV.EQV 结合了 V 级轿车的多功能性 ...

  • 杨振宁:佛教完全具备科学理论的三大特性

    2021-6-7摘于智慧洲壕平台<杨振宁:佛教是智信而非迷信,是智慧者的信仰> 科学理论和科学实践相影响.相促进.人们在长期的科学实践中获得了新发现.而这些新发现又不能用原有的科学理论来解 ...

  • 纣王的三大特性

    徐    民 司马迁的<史记>尽管不乏偏颇之处,但作为"史家之绝唱.无韵之离骚"在史学上拥有较高的地位,可信度也比较高.从<史记><殷本纪>的记 ...

  • 种子三大特性:向地性,背地性,趋光性

    (视频来自腾讯视频) 植物生长有三大特性 向地性/背地性(geotropism/gravitropism)是植物的某些部分对地心吸力所作出的生长反应.根会向着地心吸力的方向生长,因此根呈正向地性;茎则 ...

  • 中国的地理位置好不好,三大特性让人佩服,果然是天选之国

    中国作为一个人口占世界五分之一,土地面积位居亚洲第一.世界第三位的大国,在地理位置上有什么优势呢? 军事优势 我国的地理位置可以说是得天独厚的,虽然现代化战争已经可以忽略传统意义上的地形.环境等因素了 ...

  • 【Python面试】 说说Python面向对象三大特性?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...