选择器知识点詳解

2023-11-22 15:45
文章标签 知识点 选择器 詳解

本文主要是介绍选择器知识点詳解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一. 选择器分类

选择器分为基础选择器复合选择器两个大类

  • 基础选择器是由单个选择器组成的
  • 基础选择器包括:标签选择器类选择器id选择器通配符选择器

基础选择器 

 1. 标签选择器

标签选择器(元素选择器)是指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。

语法

标签名 {

       属性1:属性值1;

       属性2:属性值2;

       . . .

}

作用 

标签选择器可以把某一类标签全部选择出来,比如所有的<div>标签。

优点

能快速为页面中同类型的标签统一设置样式。

缺点

不能设计差异化样式,只能选择全部的当前标签。

2. 类选择器

如果想要差异化选择不同的标签,单独选一个或者某几个标签,可以使用类选择器。

语法

.类名 {

        属性1: 属性值1;

        属性2: 属性值2;

        . . .

}

例如,将所有拥有red类的HTML元素均设置为红色。

.red {

        color: red;

结构需要用class属性来调用class类

<div class='red' > 变红色 </div> 

类选择器特殊使用-多类名 
(1) 多类名的使用方式
  • 在标签class属性中写多个类名
  • 多个类名中间必须用空格分开

<div class="red font20">亚瑟</div>

(2) 多类名开发中使用场景
  • 可以把一些标签元素相同的样式(共同部分)放到一个类里面。
  • 这些标签都可以调用这个公共的类,然后再调用自己独有的类。
  • 节省CSS代码,统一修改非常方便。
注意

类选择器使用"."(英文点号)进行标识,后面紧跟类名(类名自定义)。

长名称或词组可以使用中横线来为选择器命名。

不使用纯数字、中文等命名,尽量使用英文字母来表示。

命名要有意义,尽量使别人一眼就知道这个类名的目的。 

3. id选择器 

id选择器可以为标有特定id的HTML元素指定特定的样式。

HTML元素以id属性来设置id选择器,CSS中id选择器以"#"来定义。

语法

#id名 {

        属性1:属性值1;

        . . .

}

例如,将id为nav元素中的内容设置为红色。

#nav {

        color: red;

id选择器和类选择器的区别 
  • 类选择器(class)好比人的名字,一个人可以有多个名字,同一个名字可以被多个人使用。
  • id选择器好比人的身份证号码,全中国唯一的,不得重复。
  • id选择器和类选择器最大的不同在于使用次数上(id选择器只能使用一次,类选择器可以被多次使用)
  • 类选择器在修改样式中用的最多,id选择器一般用于页面唯一性的元素上,经常和JavaScript搭配使用 

4.通配符选择器 

在CSS中,通配符选择器使用"*"定义,它表示选取页面中所有元素(标签)

语法

* {

    属性1:属性值1;

    . . .

}

  • 通配符选择器不需要调用,自动就给所有的元素使用样式。
  • 特殊情况才使用,如:消除所有元素的内外边距。 

* {

    margin: 0;

    padding: 0;

复合选择器 

复合选择器是建立在基础选择器之上,对基础选择器进行组合形成的。

  • 复合选择器可以更准确、更高效的选择目标元素(标签)
  • 复合选择器是由两个或多个基础选择器,通过不同的方式组合而成的。
  • 常用的复合选择器包括 :后代选择器、子选择器、并集选择器、伪类选择器等等

1.后代选择器 

后代选择器又称为包含选择器,可以选择父元素里面的子元素。其写法就是把外层标签写在前面,内层标签写在后面,中间用空格分隔。当标签发生嵌套时,内层标签就成为外层标签的后代。

语法 

元素1 元素2 {

        样式声明

}

上述语法表示选择元素1里面的所有元素2(后代元素)。

例如:

ul li { 样式声明 }    /* 选择ul 里面的所有li标签元素 */ 

  • 元素1和元素2中间用空格隔开
  • 元素1是父级,元素2是子级,最终选择的是元素2
  • 元素2可以是儿子,也可以是孙子等,只要是元素1的后代即可
  • 元素1和元素2可以是任意基础选择器 

2. 子选择器 

子元素选择器(子选择器)只能选择作为某元素的最近一级子元素,简单理解就是只能选亲儿子。

语法

元素1 > 元素2 { 样式声明 }

上述语法表示选择元素1里面的所有直接后代(子元素)元素2

例如:

div > p { 样式声明 }  /* 选择div里面所有最近一级p标签元素 */ 

元素1和元素2中间用大于号隔开

元素1是父级,元素2是子级,最终选择的是元素2

元素2必须是亲儿子,其孙子、重孙之类都不归他管。 

3. 并集选择器

并集选择器可以选择多组标签,同时为它们定义相同的样式。通常用于集体声明。

并集选择器是各选择器通过英文逗号(,)连接而成,任何形式的选择器都可以作为并集选择器的一部分

语法

元素1, 元素2 { 样式声明 }

上述语法表示选择元素1 和 元素 2.

例如:

ul, div, pig > li { 样式声明 } /* 选择 ul 和 div 标签元素 */ 

  • 元素1和元素2中间用逗号隔开
  • 逗号可以理解为和的意思
  • 并集选择器通常用于集体声明 

4. 伪类选择器 

伪类选择器用于向某些选择器添加特殊的效果,比如给链接添加特殊效果,或选择第1个,第n个元素。

伪类选择器书写最大的特点是用冒号(:)表示,比如 :hover、:first-child

因为伪类选择器很多,比如有链接伪类、结构伪类等

(1)链接伪类选择器

a:link                            /*选择所有未被访问的链接*/

a:visited                       /*选择所有已被访问的链接*/

a:hover                        /*选择鼠标指针位于其上的链接*/

a:active                       /*选择活动链接(鼠标按下未弹起的链接)*/ 

 链接伪类选择器注意事项
  1. 为了确保生效,请按照LVHA的顺序声明 :ling、:visited、:hover、:active
  2. 记忆法:love hate或者lv 包包 hao
  3. 因为a链接在浏览器中具有默认样式,所以我们实际工作中都需要给链接单独指定样式
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>复合选择器之链接伪类选择器</title><style>/*未访问的链接*/a:link {color: #333;text-decoration:none;}a:visited {color: #ffa76d;}a:hover {color: #5eff98;}a:active {color: #2721ff;}</style>
</head>
<body><a href="#">电玩小子</a></body>
</html>
 链接伪类选择器开发过程中常用写法
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>复合选择器之链接伪类选择器</title><style>a{color: #333;text-decoration:none;}a:hover {text-decoration: underline;color: dodgerblue;}</style>
</head>
<body><a href="#">链接伪类开发过程中常用的写法</a></body>
</html>
 (2):focus伪类选择器

:focus伪类选择器用于选取获得焦点的表单元素。

焦点就是光标,一般情况<input>类表单元素才能获取,因此这个选择器也主要针对表单元素来说

input:focus {background-color: #fffd1a;
}

 

这篇关于选择器知识点詳解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/411206

相关文章

基本知识点

1、c++的输入加上ios::sync_with_stdio(false);  等价于 c的输入,读取速度会加快(但是在字符串的题里面和容易出现问题) 2、lower_bound()和upper_bound() iterator lower_bound( const key_type &key ): 返回一个迭代器,指向键值>= key的第一个元素。 iterator upper_bou

两个月冲刺软考——访问位与修改位的题型(淘汰哪一页);内聚的类型;关于码制的知识点;地址映射的相关内容

1.访问位与修改位的题型(淘汰哪一页) 访问位:为1时表示在内存期间被访问过,为0时表示未被访问;修改位:为1时表示该页面自从被装入内存后被修改过,为0时表示未修改过。 置换页面时,最先置换访问位和修改位为00的,其次是01(没被访问但被修改过)的,之后是10(被访问了但没被修改过),最后是11。 2.内聚的类型 功能内聚:完成一个单一功能,各个部分协同工作,缺一不可。 顺序内聚:

STL经典案例(四)——实验室预约综合管理系统(项目涉及知识点很全面,内容有点多,耐心看完会有收获的!)

项目干货满满,内容有点过多,看起来可能会有点卡。系统提示读完超过俩小时,建议分多篇发布,我觉得分篇就不完整了,失去了这个项目的灵魂 一、需求分析 高校实验室预约管理系统包括三种不同身份:管理员、实验室教师、学生 管理员:给学生和实验室教师创建账号并分发 实验室教师:审核学生的预约申请 学生:申请使用实验室 高校实验室包括:超景深实验室(可容纳10人)、大数据实验室(可容纳20人)、物联网实验

C++语法知识点合集:11.模板

文章目录 一、非类型模板参数1.非类型模板参数的基本形式2.指针作为非类型模板参数3.引用作为非类型模板参数4.非类型模板参数的限制和陷阱:5.几个问题 二、模板的特化1.概念2.函数模板特化3.类模板特化(1)全特化(2)偏特化(3)类模板特化应用示例 三、模板分离编译1.概念2.模板的分离编译 模版总结 一、非类型模板参数 模板参数分类类型形参与非类型形参 非类型模板

枚举相关知识点

1.是用户定义的数据类型,为一组相关的常量赋予有意义的名字。 2.enum常量本身带有类型信息,即Weekday.SUN类型是Weekday,编译器会自动检查出类型错误,在编译期间可检查错误。 3.enum定义的枚举类有什么特点。         a.定义的enum类型总是继承自java.lang.Enum,且不能被继承,因为enum被编译器编译为final修饰的类。         b.只能定义

【408数据结构】散列 (哈希)知识点集合复习考点题目

苏泽  “弃工从研”的路上很孤独,于是我记下了些许笔记相伴,希望能够帮助到大家    知识点 1. 散列查找 散列查找是一种高效的查找方法,它通过散列函数将关键字映射到数组的一个位置,从而实现快速查找。这种方法的时间复杂度平均为(

【反射知识点详解】

Java中的反射(Reflection)是一个非常强大的机制,它允许程序在运行时检查或修改类的行为。这种能力主要通过java.lang.reflect包中的类和接口来实现。 通过反射,Java程序可以动态地创建对象、调用方法、访问字段,以及获取类的各种信息(如构造器、方法、字段等)。 反射的用途 反射主要用于以下几种情况: 动态创建对象:通过类的Class对象动态地创建其实例。访问类的字段

2024年AMC10美国数学竞赛倒计时两个月:吃透1250道真题和知识点(持续)

根据通知,2024年AMC10美国数学竞赛的报名还有两周,正式比赛还有两个月就要开始了。计划参赛的孩子们要记好时间,认真备考,最后冲刺再提高成绩。 那么如何备考2024年AMC10美国数学竞赛呢?做真题,吃透真题和背后的知识点是备考AMC8、AMC10有效的方法之一。通过做真题,可以帮助孩子找到真实竞赛的感觉,而且更加贴近比赛的内容,可以通过真题查漏补缺,更有针对性的补齐知识的短板。

Python知识点:如何使用Python开发桌面应用(Tkinter、PyQt)

Python 提供了多个库来开发桌面应用程序,其中最常见的两个是 Tkinter 和 PyQt。这两者各有优点,选择取决于你的需求。以下我会介绍如何使用 Tkinter 和 PyQt 开发简单的桌面应用程序。 1. 使用 Tkinter 开发桌面应用 Tkinter 是 Python 的标准库,它非常轻量级且跨平台。它适合开发简单的桌面应用,入门较容易。 安装 Tkinter Tkinte

Python知识点:如何使用Anaconda进行科学计算环境管理

使用 Anaconda 进行科学计算环境管理是一个非常强大且灵活的方式,特别适合处理 Python 和 R 语言的包管理和虚拟环境管理。Anaconda 集成了许多用于科学计算和数据分析的库,并提供了环境隔离的功能,确保不同项目之间不会发生包冲突。以下是使用 Anaconda 进行科学计算环境管理的详细步骤: 1. 安装 Anaconda 首先,你需要在本地机器上安装 Anaconda。你可以