CSS 选择器(超级详细,欢迎补充)2

简介: CSS 选择器(超级详细,欢迎补充)2

Ⅱ、普通兄弟选择器

兄弟选择符,位置无须紧邻,只须同层级,A~B 选择A元素之后所有同层级B元素

语法:选择器1~选择器2{样式声明 }

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p ~ span {
            color: red;
        }
    </style>
</head>
<body>
    <span>span11</span>
    <p>pppp</p>
    <span>span22</span>
    <p>pppp</p>
    <span>span33</span>
</body>
</html>


941671f8755f4464b15e8a655af4f50e.png

4、css其他选择器

1)、根据属性名称选择元素

根据元素的属性名称及属性值来选择元素

语法: [attribute]{样式声明}     (将具有"attribute"属性的元素作为选择器的选的对象)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        [class]{
            font-size: 20px;
        }
        /* 属性名称也可以和标签结合起来用 */
        span[class]{
            font-size: 10px;
            color: red;
        }
    </style>
</head>
<body>
    <p>根据属性名称选择元素11</p>
    <p>根据属性名称选择元素22</p>
    <p class="class">根据属性名称选择元素33</p>
    <span class="class">根据属性名称选择元素44</span>
</body>
</html>



1975de7beb06473eaf8d51bdece4c104.png

2)根据属性值来选择元素

Ⅰ、简单匹配元素

语法:[attribute=value]   (表示匹配某个属性为value的元素)

如:[class=one]{font-size:15px}


Ⅱ、通过通配符匹配

我们先来看看个个通配符的含义(我只列出来部分常用的通配符)


image.png

image.png

5、css伪类

伪类是添加到选择器的关键字,用于指定所选元素的特殊状态。伪类主要分成为两种:状态伪类和结构性伪类

想看更加详细的伪类请点击这里

1)状态伪类

Ⅰ、锚伪类

锚伪类是与超级链接有关的伪类。

link:为被访问过的状态

hover:鼠标悬停状态

active:活动状态

visited:已被访问过的状态,与link互斥

需要注意的是:hover必须置于link和visited之后才有效,active必须置于hover之后才有效

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        a:link{
           color: red;
        }
        a:hover{
            color: black;
        }
        a:active{
            color: aqua;
        }
    </style>
</head>
<body>
    <a href="###">空链接</a>
</body>
</html>


未被访问:

bcb8b982a3d44ce4b8554b380511533b.png

鼠标悬停:

2d2b0f4fab03469fae42d6ade744c7e7.png

活动状态:

242993361f484062b98f5d4c9d37a5ff.png

Ⅱ、focus伪类

focus 伪类应用于拥有键盘输入焦点的元素,比较常见的是表单中的一些控件,例如<input type = "text"/>这样的文本输入控件,用户向这个控件中输入数据之前,要使该控件获得焦点,可以通过伪类对获得焦点这一状态下的元素设置样式。

2)结构性伪类

元素名 描述
:first-child 匹配父元素的第一个子元素
: last-child 匹配父元素的最后一个子元素
: only-child 匹配父元素有且只有一个子元素
: only-of-type 匹配父元素有且只有一个指定类型的元素
: nth-child (n) 匹配父元素的第n个子元素
: nth-last-child (n) 匹配父元素的倒数第n个子元素
:nth-of-type (n 匹配父元素定义类型的第n个子元素>
: nth-last-of-type(n) 匹配父元素定义类型的倒数第n个子元素
: first-of-type 匹配一个上级元素的第一个同类子元素
: last-of-type 匹配一个上级元素的最后一个同类子元素  

使用号结构性伪类可以减少class和ID属性的定义,使文档结构更简洁,代码更有观赏性。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        ul li:nth-child(2n){
            color: red;
        }
    </style>
</head>
<body>
    <ul>
        <li>1111</li>
        <li>2222</li>
        <li>3333</li>
        <li>4444</li>
        <li>5555</li>
        <li>6666</li>
    </ul>
</body>
</html>

39f666d8fda5459c90bb0101c39ba0fb.png

6、css伪元素

伪元素是一个附加至选择器末的关键词,允许你对被选择元素的特定部分修改样式。

想看更加详细的伪元素请点击这里

常见伪元素选择器有:


:first-letter       (选择元素文本的第一个字或者字符)


:first-line         (选择元素文本的第一行)


:before           (在元素内容的最前面添加新元素)


:after              (在元素内容的最后面添加新元素)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        ul li:nth-child(2n){
            color: red;
        }
/*在第一个li的第一个字符添加新的样式*/
        li:first-child:first-letter{
           font-size: 25px;
           color: green;
        }
    </style>
</head>
<body>
    <ul>
        <li>1111</li>
        <li>2222</li>
        <li>3333</li>
        <li>4444</li>
        <li>5555</li>
        <li>6666</li>
    </ul>
</body>
</html>

bffcab28ccc641fdb763eb20ba7a6aa7.png

7、css两大特性

1)继承性

文档的上下文关系,在HTML结构中大多使通过嵌套来表现的,继承性就是基于这种嵌套关系的子元素对于父元素样式的继承。继承性的特点主要包括两方面:

1、子元素继承父元素部分的css样式风格

2、子元素可以产生新的css样式,不会影响父元素

但是并不是所以的css属性都会被继承,父元素的以下属性不会被子元素所继承

·边框属性

·外边距属性、内边距属性

·背景属性

·定位属性、布局属性

·元素的宽、高属性

2)层叠性

样式表层叠——简单的说,就是 CSS 规则的顺序很重要;当应用两条同级别的规则到一个元素的时候,写在后面的就是实际使用的规则。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        p{
            color: red;
        }
/*p样式重叠就会使用下面这样式*/
        p{
            color: black;
        }
    </style>
</head>
<body>
    <p>1111</p>
    <p>2222</p>
    <p>3333</p>
</body>
</html>



7761cde36acc4088898a78cc26f11740.png

8、选择器的优先级

继承样式 通配符选择器 标签选择器 类选择器 ID选择器 内联样式 !important
0 1 10 100 1000 10000+

说明:

  1. 继承的样式没有权值
  2. 通配符、子选择器、相邻选择器等。如* > +,权值为0000
  3. 类型选择器、伪元素选择器,如div p,权值为0001
  4. 类,伪类、属性选择器,如.class,权值为0010
  5. ID选择器,如:#class,权值为0100
  6. 内联样式,如: style="...",权值为1000
  7. !important 的作用是提升优先级,换句话说。加了这句的样式的优先级是最高的(比内联样式的优先级还高)。

比较规则:

一、 1,0,0,0 > 0,99,99,99。也就是说从左往右逐个等级比较,前一等级相等才往后比。

二、无论是行间、内部和外部样式,都是按照这个规则来进行比较。而不是直观的行间>内部>外部样式;ID>class>元素。之所以有这样的错觉,是因为确实行间为第一等的权重,所以它的权重是最高的。而内部样式可能一般写在了外部样式引用了之后,所以覆盖掉了之前的。

三、在权重相同的情况下,后面的样式会覆盖掉前面的样式

四、通配符、子选择器、相邻选择器等的。虽然权值为0000,但是也比继承的样式优先,0 权值比无权值优先。

看到这里了点个赞吧!!!!

cb04ffdb246642f6b4f2f62a3a7f450c.png

目录
相关文章
|
3月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
47 1
|
3月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
50 1
|
14天前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
29 5
|
1月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
43 2
|
3月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
3月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
99 1
|
2月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
23 0
|
3月前
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
4月前
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
33 1
|
4月前
|
前端开发
CSS中的层级选择器&伪类选择器和伪元素选择器
CSS中的层级选择器&伪类选择器和伪元素选择器