在内嵌式和外部css中,要想将CSS样式应用于特定的HTML元素,首先需要找到该目标元素,这时需要用到CSS中的选择器。

选择器:选择要添加样式的 HTML 标签的一种方法、模式。

首先学习 css2.1 版本的七种选择器:
基础选择器:标签选择器、id 选择器、类选择器、通配符选择器。
高级选择器:后代选择器、交集选择器、并集选择器。
标签选择器:直接书写标签字母
通过标签名去选择标签元素。
书写方式:标签名。
选择范围:选中的是HTML文件中所有的同名标签。
注意:标签选择器可以选择所有的同名标签,会忽视 HTML 元素的嵌套关系,不管
嵌套多深,都能被选中。
标签选择器特点:
优点:可以选中所有的同名标签,设置所有同名标签的公共样式。
缺点:只能实现全选,不能对局部的标签添加特殊样式。
id 选择器:
• 通过标签上的 id 属性去选择标签。
• 书写方式:#id 属性值
• 选择范围:只能选中一个标签。
• id 命名规则:必须以字母开头,后面可以有字母、数字、下划线、横线,严格区分大小写。每个 id 属性值必须是唯一的,不能与其他的 id 同名。
• 注意:如果希望多个标签设置相同的样式,使用id选择器的话,必须给这多个标签取不同的 id 名,分别选中设置。
id 选择器特点:
缺点:id 选择器只能实现单选,不能帮我们完成多选的功能。
类选择器:
• 通过标签的 class 属性去选择标签。
• 书写方式:.class属性值
• 选择范围:是页面中所有 class 属性值相同的标签。
• class 命名规则:必须以字母开头,后面可以有字母、数字、下划线、横线,严格区分大小写。class 属性值可以与其他的class相同。
类选择器特点:
特点 1:多个不同的标签,不区分标签类型,只要 class 属性值相同,都可以被同一个类选择器选中。
特点 2:一个标签的 class 属性可以有多个属性值,值之间用空格分隔,每个属性值组成的选择器,都可以选中这一个标签,每个选择器后面的样式都会添加给同一个标签。
类选择器的特殊应用:
原子类:在css中提前设置一些类名,每个类选择器后面只添加一条css样式属性,这些属性会在页面中常被使用,后期可以不需要多次书写属性,只要将对应的类名添加给需要的标签即可。

类选择器的优点:
①通过一个类选择器进行多选,选中多个标签,添加公共样式。
②一个标签可以被多个类选择器选中,可以将所有样式进行分离,分别提取公共样式和单独样式,节省代码量。
实际工作中,通常我们有一个使用规律:类上样式(CSS),id 上行为(JavaScript)。
通配符选择器:

通过一个特殊符号选择页面内所有的标签。

书写方式:*
选择范围:包含 <html>标签在内的所有标签。
通配符特点和应用:
优点:可以实现全选,简化书写。
缺点:通配符选择效率低,设置的部分公共样式不是所有标签都需要添加,如果使用通配符选择,会让不需要的标签也加载一次样式,导致浏览器多做无用的工作。
注意:实际上线的网站不允许使用 * 去清除默认内外边距。
不过普通的案例,代码量较少时,为了节省书写,可以使用通配符。
后代选择器:
由于基础选择器不能实现所有选择情况,后期在基础选择器的基础上衍生出了几种高级选择器。高级选择器的组成部分是基础选择器。
通过标签之间存的嵌套关系(族谱关系) 去选择元素,基本组成部分就是基础选择器。
后代选择器也叫包含选择器。
书写方式:空格表示后代,基础选择器中间使用空格分隔,空格前面的选择器选中的标签必须是后面选择器选中标签的祖先级。
选择范围:通过后代选择器中前面的一系列基础选择器缩小选择范围,最终由最后-个选择器确定选中的标签。
注意:后代选择器必须满足所有的后代关系才能够被选中,后代关系不一定只能是父子关系。
后代选择器特点:

优点:减少 class 属性的定义使用,选择效率更高。
交集选择器:
• 通过一个标签之上满足所有的基础选择器的需求去选择标签。
• 书写方式:基础选择器进行连续书写,如果有标签选择器参与交集,必须书写在开头。
• 选择范围:
选择的是满足所有基础选择器需求的标签,如果一个条件不满足都不能被选中。
• 比较常见的是标签与类的交集。

交集选择器更多写法:
• 交集选择器可以进行类名的连续交集,需要满足更多的条件才能选中标签。
• IE6 不支持类名连续交集写法。
• 交集选择器可以作为其他高级选择器的组成部分。
并集选择器:
不同选择器选中的元素都要设置相同的样式,多次书写相同的样式属性对代码造成浪费,可以将前面六种选择器可以进行并集书写,相当于一种简化写法。
书写方式:将多个选择器中间用逗号进行分隔,最后一个后面不能加逗号。
选择范围:是所有的单独选择器选中的标签的并集集合。
并集选择器用途:
①如果多个标签具有公共样式,但是不能用一个选择器选中,可以使用并集写法。
②可以使用标签选择器的并集写法,进行默认样式的清除,替换通配符的功能。
 

CSS 选择器-认识并应用选择器的更多相关文章

  1. CSS系列:CSS3新增选择器

    1. CSS1定义的选择器 选择器 类型 说明 E 类型选择器 选择指定类型的元素 E#id ID选择器 选择匹配E的元素,且匹配元素的id为“id”,E选择符可以省略. E.class 类选择器 选 ...

  2. css伪类选择器及伪元素选择器

    1.类选择器 在css中可以使用类选择器把相同的元素定义成不同的样式.比如: 结果如下: 标题背景未变 2.伪类选择器 类选择器和伪类选择器的区别在于,类选择器我们定义的,而伪类选择器是CSS中已经定 ...

  3. CSS中模拟父元素选择器

    很多情况下,我们需要找到父元素,但可惜的是css中并没有这样的一个选择器. 至于原因可以看张鑫旭的如何在CSS中实现父选择器效果这篇文章. 简单来说这个实现并不是真正的父元素选择器,只是利用其它思路来 ...

  4. html中css三种常见的样式选择器 zz

    1:标签选择器 标签选择器,是所有带有某种标签的都生效.这里以p为例,也就是所有的带有p标记的都会这样的样式 <html><head><styletype="t ...

  5. 使用CSS的类名交集复合选择器

    首先先看一下基本定义: 复合选择器就是两个或多个基本选择器,通过不同方式连接而成的选择器,主要包括“交集”选择器.“并集”选择器.“后代”选择器. 交集选择器 “交集”复合选择器是由两个选择器直接连接 ...

  6. CSS基础-引入方法,选择器,继承

    一.CSS引入方法:行内式.嵌入式.导入式.链接式. 1.行内式. 即:在标签的style属性中设定CSS样式. 例子:<div style="行内式</div> 2.嵌入 ...

  7. css基础之 id和选择器

    id 和 class 选择器 如果你要在HTML元素中设置CSS样式,你需要在元素中设置"id" 和 "class"选择器. (1) id 选择器 id 选择器 ...

  8. CSS后代选择器、子元素选择器、相邻兄弟选择器区别与详解

    派生选择器用的很多,派生选择器具体包括为后代选择器.子元素选择器.相邻兄弟选择器,我们来理解一下他们之间的具体用法与区别. 1.css后代选择器语法:h1 em {color:red;} 表示的是从h ...

  9. css——样式表分类,选择器

    一,样式表分类 (1)内联样式[优先级最高][常用][代码重复使用性最差] (当特殊的样式需要应用到个别元素时,就可以使用内联样式. 使用内联样式的方法是在相关的标签中使用样式属性.样式属性可以包含任 ...

  10. css基础语法一(选择器与css导入方式)

    页面中,所有的CSS代码,需要写入到<style></style>标签中.style标签的type属性应该选择text/css,但是type属性可以省略. CSS修改页面中的所 ...

随机推荐

  1. nop4.3 用户权限管理

    权限管理涉及到5张表: //用户表 select * from Customer //角色表select * from CustomerRole //用户和角色对应关系select * from Cu ...

  2. .Net Core 中使用NLog替代默认日志

    1.添加引用nlog.config和Nlog.Web.AspNetCore 2.配置NLog 配置文件 添加一个Web配置文件xxxx.Config <?xml version="1. ...

  3. java资源精华

    1. java基础教程虚拟机性能分析和故障解决工具_哔哩哔哩_bilibili 2.https://www.bilibili.com/video/BV1Eb4y1v7mB/?p=2&vd_so ...

  4. .net ef 链接 mysql

    https://blog.csdn.net/weixin_30394975/article/details/114168133

  5. linux 下用其他用户来执行命令

    sudo su - username -l -c "supervisorctl restart apps" -l , –login:加了这个参数之后,就好像是重新登陆一样,大部分环 ...

  6. 移动端性能测试--CPU资源

    一.背景 在很多场景下我们去使用 App,可能会碰到手机会出现发热发烫的现象.这是因为 CPU 使用率过高.CPU 过于繁忙,会使得整个系统无法响应用户,整体性能降低,用户体验变得相当差,也容易引起 ...

  7. laravel 邮件发送

    1.首先你要在qq悠闲中开启你的   SMPT(设置->账户)   获取到你的授权码 2.配置laravel MAIL_DRIVER=smtpMAIL_HOST=smtp.qq.comMAIL_ ...

  8. js判断数据类型 && 判断是否为标准json格式

    /** * 1. js判断对象的好方法 * 2. 判断是否为json格式化数据 * * Author: shujun * Date: 2020-8-09 */ import {print} from ...

  9. maven本地安装jar包

    mvn install:install-file -Dfile=cs-pay-client-2.0.0.jar -DgroupId=com.test.pay -DartifactId=gh-epay- ...

  10. js - script标签的for属性和event属性

    js - script标签的for属性和event属性 <script language="javascript" for="window" event= ...