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

目录
相关文章
|
8天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
26 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
27天前
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
64 34
|
29天前
|
前端开发 JavaScript
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
53 14
【02】v1.0.1更新增加倒计时完成后的放烟花页面-优化播放器-优化结构目录-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
30天前
|
人工智能 程序员 UED
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
123 21
【01】完成新年倒计时页面-蛇年新年快乐倒计时领取礼物放烟花html代码优雅草科技央千澈写采用html5+div+CSS+JavaScript-优雅草卓伊凡-做一条关于新年的代码分享给你们-为了C站的分拼一下子
|
1月前
html+js+css实现的建筑方块立体数字时钟源码
html+js+css实现的建筑方块立体数字时钟源码
79 33
|
2月前
一个好看的小时钟html+js+css源码
一个好看的小时钟html+js+css源码
116 24
|
3月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
86 5
|
3月前
|
前端开发 测试技术 定位技术
如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤
本文深入介绍了如何利用HTML和CSS构建企业级网站的全过程。从项目概述到页面结构设计,再到HTML结构搭建与CSS样式设计,最后实现具体页面并进行优化提升,全面覆盖了网站开发的关键步骤。通过实例展示了主页、关于我们、产品展示、新闻动态及联系我们等页面的设计与实现,强调了合理布局、美观设计及用户体验的重要性。旨在为企业打造一个既专业又具吸引力的线上平台。
120 7
|
3月前
|
前端开发 JavaScript UED
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势
在数字化时代,Web 应用性能优化尤为重要。本文探讨了CSS与HTML在提升Web性能中的关键作用及未来趋势,包括样式表优化、DOM操作减少、图像优化等技术,并分析了电商网站的具体案例,强调了技术演进对Web性能的深远影响。
58 5
|
3月前
|
前端开发 JavaScript 搜索推荐
HTML与CSS在Web组件化中的核心作用及前端技术趋势
本文探讨了HTML与CSS在Web组件化中的核心作用及前端技术趋势。从结构定义、语义化到样式封装与布局控制,两者不仅提升了代码复用率和可维护性,还通过响应式设计、动态样式等技术增强了用户体验。面对兼容性、代码复杂度等挑战,文章提出了相应的解决策略,强调了持续创新的重要性,旨在构建高效、灵活的Web应用。
67 6

热门文章

最新文章