百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

CSS基础-选择器(CSS基础选择器的分类有哪些)

toyiye 2024-08-21 02:02 3 浏览 0 评论

概念

前文说,CSS是给HTML添加样式的, 那么要想两者之间产生作用,就需要用到选择器。

选择器标记在HTML标签上; 通过选择器,浏览器可以知道什么时候加载这些样式。

CSS 通过选择器组合一组样式,集体作用在某一段html代码上。


多种选择器

标签选择器

标签选择器,使用HTML的标签作为选择器。

作用域:引用页面上所有的同名标签, 标签选择区域大,通常用来初始化样式

举例

<style>
      span {
          background-color: rebeccapurple;
          color: rgb(182, 56, 56)


      }
</style>


<body>
    <span >
       我式这个div
    </span>
    <span >
        我式这个div
     </span>
    <div>这个</div>
    <div>那个</div>
</body>


id选择器

每个html标签都可以 有id属性,用来标记该标签的唯一性。

定义了id属性,就可以用id 作为一个选择器来用。

id选择器通常以#号开头。

举例

<!DOCTYPE html>
<html lang="en">
<head>
    <!--匹配demoSpan , 匹配上的才会选择,匹配不上的就不选择 -->
    <style>
        #demoSpan{
            color: rgb(128, 0, 53);


        }
</style>
</head>
<body>
    <span >
       我式这个div
    </span>
    <span id="demoSpan">
        我式这个div
     </span>


</body>
</html>


class 选择器

每个html都可以设置class属性,用来指定特定的样式。

利用class属性来指定样式的,定义为class选择器。

class 选择器 通常以 符号 . 开头

<!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>
        .colorRed{
            color: red;


        }
</style>
</head>
<body>
    <span class="colorRed">
       我是span,内容红色
    </span>




</body>
</html>


复合选择器

选择器名称

示例

解释

后代选择器

.box1 .sp

选择类名为box的标签内部的class属性值为sp的标签,使用空格隔开

交集选择器

li.sp

选择既是li标签也属于 sp类的标签

并集选择器(也叫分组选择器)

ul,ol

选择所有的ul和ol标签

复合选择器

div.box li p.spec.item

复合选择器可以式 id,class 后代选择器等的随组合从而形成的选择器




<!--后代选择器示例-->




<!--css 后代选择器, 只有box1自己的后代中叫 sp 才会显示红色-->
.box1 .sp {
    color: red
}




<div class="box1">
    <span class="sp">第一段文字</span>
</div>


<div class="box2">
    <span class="s2">第二段文字</span>
</div>






<!--交集选择器 同时 拥有 box1 和 box2 的盒子才会高亮-->


.box1.box2 {
    color: red
}
<div class="box1">
   盒子1
</div>


<div class="box1 box2">
   盒子2
</div>


<div class="box2">
   盒子3
</div>




<!--并集选择器 box1 box2 颜色均会为红色-->


.box1,.box2 {
    color: red
}
<div class="box1">
       盒子1
    </div>


    <div class="box2">
       盒子2
    </div>


    <div class="box3">
       盒子3
    </div>


元素关系选择器

名称

举例

意义

子选择器

div>p

div的子标签, 只会匹配div标签的子(不含孙子等)元素中的所有P标签

相邻兄弟选择器

img+p

图片后面紧跟着的段落将被选中

通用兄弟选择器

p~span

p元素后的所有同层级span元素, (从IE7开始兼容)


序号选择器

名称

意义

兼容性

:first-child

第一个子元素

IE7

:last-child

最后一个子元素

IE9

:nth-child(3)

第3个子元素

IE9

:nth-of-type(3)

第三个某类型子元素,同种标签指定序号

IE9

:nth-last-child(3)

倒数第三个子元素

IE9

:nth-last-of-type(3)

倒数第三个摸个类型的子元素,同种标签指定元素

IE9


<!--一段html代码-->
<div class="parentBox">
    <div class="box">
        <p>box1</p>
        <p>box1</p>
    </div>        
    <div class="box">
        <p>box2</p>
        <p>box2</p>
    </div>        
    <div class="box">
        <p>box3</p>
        <p>box3</p>
    </div>
    <div class="box">
        <p>box4</p>
        <p>box4</p>
    </div>
    <div class="box">
        <p>box5</p>
        <p>box5</p>
    </div>
</div>


<!--模拟第一个div元素,背景称红色-->
    <style>


        .box:first-child {
            background-color: red;
        }
</style>






<!--模拟div元素,最后一个背景为绿色-->
<style>


    .box:last-child {
        background-color: green;
    }
</style>




<!--模拟 nth-child指定 元素下标,如果指定的元素下表不是p标签,那么css也不会生效-->
<style>


        div p:nth-child(4) {
            background-color: red;
        }
</style>
<div>


        <p>第1个p标签</p>
        <p>第2个p标签</p>
        <div>第一个div子标签</div>
        <p>第3个p标签</p>
        <p>第4个p标签</p>
    </div>






<!--模拟 nth-child 传参为基数的时候,css发挥作用。nht-child 可以写成 an+b的形式,表示从b开始每a个选择一个-->
<!--2n+1 表示奇数 2n表示偶数-->
<style>


        div p:nth-child(2n+1) {
            background-color: red;
        }
</style>




<div>


        <p>第1个p标签</p>
        <p>第2个p标签</p>
        <div>第一个div子标签</div>
        <p>第3个p标签</p>
        <p>第4个p标签</p>
    </div>




<!--模拟将选择同种标签指定子元素序号的子元素-->


<style>


        div p:nth-of-type(2n) {
            background-color: red;
        }
</style>


<div>


        <p>第1个p标签</p>
        <p>第2个p标签</p>
        <div>第一个div子标签</div>
        <p>第3个p标签</p>
        <p>第4个p标签</p>
    </div>


属性选择器

举例

意义

img[alt]

选择有alt属性的img标签

img[alt=”房子”]

选择alt属性是房子的img标签

img[alt^=”小区”]

选择alt属性以小区开头的img标签

img[alt$=”花园”]

选择alt属性以花园结尾的img标签

img[alt*=“小径”]

选择alt属性中包含有小径字样的img标签

img[alt~=”马赛克”]

选择有alt属性中有空格隔开的马赛克字样的img标签

img[alt|=”作家”]

选择有alt属性以 “作家-”或者 “作家”开头的img标签


伪类

伪类是添加到选择器的描述性词语,指定要选择的元素的特殊状态,例如: 超级链接有四个特殊状态


<!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: dodgerblue;
        }


        a:visited {
            color: black;
        }


        a:hover {
            color: brown;
        }


        a:active {
            color:crimson;
        }
</style>
</head>
<body>


    <div>
        <a href="http://www.taobao.com">淘宝</a>
    </div>
    <div>
        <a href="http://www.alibaba.com">阿里巴巴</a>
    </div>
</body>
</html>


CSS3新增伪类

伪类

意思

:empty

选择空标签

:focos

选择当前获得焦点的表单元素

:enabled

选择当前有效的表单元素

:disabled

选择当前无效的表单元素

:checked

选择当前已经勾选的单选按钮或者复选框

:root

选择根元素, 即<html>标签


<!--验证选取空标签示例-->
<style>


        p {
            height: 200px;
            width: 200px;
            border: 2px solid red;
        }


        p:empty {
            background-color: green;
        }
</style>
<p></p>
<p></p>
<p>费控标签</p>
<p></p>




<!--验证获得焦点后 背景颜色为黑色-->


<style>


  input:focus {
      background-color: black;
  }
</style>


<input></input>
<input></input>
<input></input>
<input></input>




<!--验证添加disabled enabled伪类-->
<!--默认情况下, 为input标签为 enabled-->
<style>
    input:disabled {
        background-color: blue;
    }
    input:enabled {
        background-color: green;
    }
</style>
<input></input>
<input></input>
<input disabled></input>
<input></input>


<!--验证 checked,已经单选的或者复选框,如果选中,相邻兄弟span标签的文字变成红色-->


<style>    
    input:checked+span{
        color: red;
    }
</style>
<input type="checkbox"> <span>文字</span>
<input type="checkbox"> <span>文字</span>
<input type="checkbox"> <span>文字</span>
<input type="checkbox"> <span>文字</span>




<!--root选择器 即表示根节点开始的所有元素-->
<style>


    :root {
      font-size: 30px;
    }
</style>


伪元素

表示虚拟动态创建的元素, 伪元素用双冒号表示:: , IE8可以兼容到单冒号

伪元素

意义

::before

表示元素之前的虚拟出一个元素

::after伪元素

表示元素之后的虚拟出一个元素

::selection

用于文档中被用户高亮的一部分

::first-letter

选中某个元素(必须是块级元素)第一行的第一个字母

::first-line

选中某个元素(必须是块级元素)第一行全部文字


<!--::before伪元素,表示元素之前的虚拟出一个元素-->
<!--::after伪元素,表示元素之后的虚拟出一个元素-->
<!--示例中表示在 a元素内容前面插入一个特殊符号 ○ , ::before必须设置content属性,表示虚拟元素的内容-->
<!--示例中表示在 a元素内容后面插入一个特殊符号 ★ , ::after必须设置content属性,表示虚拟元素的内容-->
<style>
  a::before {
    content: "○";
  }
  a::after {
    content: "★";
  }
</style>
<a>超级链接</a>
<a>超级链接</a>
<a>超级链接</a>
<a>超级链接</a>






<!--::selection文字选中的部分会被变为绿色-->
<style>


    div {
        width: 300px;
        height: 300px;
    }


    div::selection {
        background-color: springgreen;
    }
</style>
<div>打字机看得开搭理我了两位打字机看得开搭理我了两位打字机看得开搭理我了两位打字机看得开搭理我了两位打字机看得开搭理我了两位打字机看得开搭理我了两位打字机看得开搭理我了两位打字机看得开搭理我了两位打字机看得开搭理我了两位</div>








<!--first-letter 选中第一个字母-->
<!--first-line 选中第一行-->
<style>
    div::first-letter {
        font-size: 50px;
    }`
    div::first-line {
        text-decoration: underline;
    }
</style>


<div>
    Renowned graffiti-artist Banksy has unveiled his latest work on a building devastated by shelling in Ukraine.


    Banksy posted a picture on Instagram of the artwork, a gymnast doing a handstand amid debris, in Borodyanka.


    Murals spotted in and around Ukraine's capital Kyiv had led to speculation the anonymous artist was working in the war-torn country.


    Another, not officially claimed, depicts a man resembling Vladimir Putin being defeated at Judo by a child.


    The graffiti artist posted three images of the gymnast mural in the wreckage left by Russian shelling, with a caption merely stating "Borodyanka, Ukraine".


    Borodyanka was one of the places hardest hit by Russia's bombardment of Ukraine in the immediate aftermath of the 24 February invasion.


    Russian soldiers occupied the town - located around 30 miles (48km) north west of Ukraine's capital Kyiv - for weeks in the initial phase of the war, before it was eventually liberated by Ukraine in April.
</div>

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码