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

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

1、导语

css样式是由若干条样式规则组成的,这样的样式规则可以应用到不同的元素或文档上。css规则由两部分组成:选择器和声明语句。

选择器:selector用来指点需要设置样式的元素或文档(即HTML对象)

声明语句:通过属性(property)和属性值(value)描述样式的具体内容,多组声明语句用分号(;)分隔。声明语句不分先后顺序。

今天我们重点来介绍css中的选择器。

//基本语法
selector{
property1:value1;
property2:value2;
property3:value3;
...
}

2、css基本选择器

1)、标签选择器

可以看这篇博客链接HTML的标签HTML的常用标签

HTML文档的标签是css样式规则中非常常见的选择器。我们可以直接将HTML的标签作为选择器的名称,如p、h1、em,设置html本身。

示例:

<!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{        //p标签选择器
            border: 1px salmon solid;
            height: 100px;
            width: 100px;
            text-align: center;
            line-height: 100px;
        }
        h5{         //h5标签选择器
            border: 1px red solid;
            height: 100px;
            width: 100px;
            text-align: center;
            line-height: 100px;
        } */
    </style>
</head>
<body>
    <p>段落标签</p>
    <h5>文章标题标签</h5>
</body>
</html>

 963dec3d2d7547bf95f8db20044f5fa0.png


未 加标签选择器


e1977c53a077420ea5c87222efdfb1a2.png


2)类选择器

网页中通过使用标签选择器控制文档中所有该标签的样式,但是在实际设计过程中,有些由相同标签定义的不同对象需要显示不同的样式,这时就需要利用其他选择器来实现差异化的样式定义,例如可以利用类选择器轻松地将文档中多个<p>段落设置成不同的样式。

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>
        .class{      
            border: 1px red solid;
            height: 100px;
            width: 100px;
            text-align: center;
            line-height: 100px;
        }
    </style>
</head>
<body>
    <p class="class">段落标签</p>
    <h5 class="class">文章标题标签</h5>
</body>
</html>




19fdf091a08f4efb9a39ec53b4d5f8c8.png



3)ID选择器

ID选择器的使用方法和类选择器基本相同,定义了样式规则之后,通过标签的id属性来引用。

语法:#id 属性值 {样式声明 }

示例

还是上面那个代码,只要稍微改动即变成了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>
        #class{
            border: 1px red solid;
            height: 100px;
            width: 100px;
            text-align: center;
            line-height: 100px;
        }
    </style>
</head>
<body>
    <p id="class">段落标签</p>
    <h5 id="class">文章标题标签</h5>
</body>
</html>



4556537350394236b84b18a4242bf498.png

那这个时候就有人会问那ID选择器和类选择器有什么区别吗?


答:有。正常情况下,ID属性值在文档中是具有唯一性的,所以ID选择器和类别选择器最大的区别就是:一个ID选择器只能被引用一次,针对性强;一个元素只能引用一个ID选择器。因此一般大结构用ID选择器,如标志、导航、主体内容、版权等,结构内部用类别选择器。

4)通配符选择器

在 CSS 中,一个星号 (*) 就是一个通配选择器。它可以匹配任意类型的 HTML 元素。在配合其他简单选择器的时候,省略掉通配选择器会有同样的效果。比如*.class.class 的效果完全相同。

在 CSS3 中,星号 (*) 可以和命名空间组合使用:

1、ns|*    会匹配ns命名空间下的所有元素

2、*|*     会匹配所有命名空间下的所有元素

3、|*       会匹配所有没有命名空间的元素

3、css组合选择器

1)标记类别选择器(交集选择器)

这是由两个选择器直接连接构成,其指点的对象是两个基本选择器所指向的交集。其中第一个选择器必须是标签选择器,第二个选择器是类别选择器或者ID选择器。

语法: 标签名.类目(#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>
        #class{
            border: 1px red solid;
            height: 100px;
            width: 100px;
            text-align: center;
            line-height: 100px;
        }
        p{
            border: 2px gold solid;
            height: 100px;
            width: 100px;
            text-align: center;
            line-height: 100px;
        }
        /*标记类别选择器*/
        p#class{    
            border: 3px black solid;
            height: 100px;
            width: 100px;
            text-align: center;
            line-height: 100px;
        }
    </style>
</head>
<body>
    <h5 id="class">文章标题标签</h5>
    <p>段落标签1</p>
    <p id="class">段落标签</p>
</body>
</html>



0c71cba40174485f938de3acc63138f2.png


2)后代选择器

通常用单个空格(" ")字符表示 组合了两个选择器,如果第二个选择器匹配的元素具有与第一个选择器匹配的祖先(父母,父母的父母,父母的父母的父母等)元素,则它们将被选择。后代选择器有利于表现文档结构的上下文关系。

语法:选择器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{
            border: 1px red solid;
            text-align: center;
            line-height: 100px;
        }
        /*后代选择器*/
        p span{    
            border: 3px black solid;
            text-align: center;
            line-height: 100px;
        }
        /*span{     //与后代选择器作用相同
            border: 3px black solid;
            text-align: center;
            line-height: 100px;
        }*/
    </style>
</head>
<body>
    <p>段落标签
        <span>spanspan</span>
    </p>
</body>
</html>

3)子选择器

描述的是某个元素的子元素,在两个选择器之间用">"来连接。

语法:元素 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{
            border: 2px gold solid;
            height: 100px;
            width: 100px;
            text-align: center;
            line-height: 100px;
        }
         /* 子元素选择器 */
        p>span{   
            border:3px black solid;
            height:100px;
            width:100px;
            text-align:center;
            line-height: 100px;
        }
    </style>
</head>
<body>
    <p >段落标签1
        <span>spanspan</span>
    </p>
</body>
</html>

4)兄弟选择器

兄弟选择器主要包括两类:相邻兄弟选择器和普通兄弟选择器

Ⅰ、相邻兄弟选择器

当第二个元素紧跟在第一个元素之后,并且两个元素都是属于同一个父元素的子元素,则第二个元素将被选中。

语法:选择器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>
        li:first-of-type + li {
             color: red;
        }
    </style>
</head>
<body>
    <ul>
        <li>One</li>
        <li>Two!</li>
        <li>Three</li>
      </ul>
</body>
</html>


2b0336679af04622a1c0f0afa3bb0e84.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

热门文章

最新文章