当前位置: 首页 > news >正文

HTML5基础——7、CSS选择器

  大家好,我是阿赵。继续学习H5,这次来学习CSS的选择器。
  CSS选择器是一个很重要的内容,决定了我们选择哪些网页元素进行风格调整。下面是CSS选择器的分类。

一、基础选择器

  这种单一的选择器包含了:

1. 标签选择器

  标签就是html标签了,比如之前的h1,或者div、span之类
举例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div {margin: 10px;padding: 5px;border: 1px solid black;width: 300px;height: 100px;background-color: #ccc;}span {display: inline-block;width: 50px;height: 20px;background-color: red;}</style>
</head>

  运行效果:
在这里插入图片描述

2. 类选择器

  可以给html的标签指定一个类(class),然后根据类来做选择器,写法是:.类名
  举例:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.redBox {width: 100px;height: 100px;background-color: red;}.blueBox {width: 100px;height: 100px;background-color: blue;}.greenBox {width: 100px;height: 100px;background-color: green;}</style>
</head><body><div class="redBox"></div><div class="blueBox"></div><div class="greenBox"></div></body></html>

在这里插入图片描述

<div class="redBox"></div>

  这里给div指定了class=”redBox”,所以这个div就会使用.redBox的CSS样式了。
  需要注意的是,同一个标签是可以 指定多个类的,不同的类可以实现不同的属性效果,比如上面的例子可以改成:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {width: 100px;height: 100px;}.red {background-color: red;}.blue {background-color: blue;}.green {background-color: green;}</style>
</head><body><div class="box red"></div><div class="box blue"></div><div class="box green"></div></body></html>

  这时候,box是指定了盒子的大小,而下面的red、blue和green只是指定了颜色,在给div指定class的时候,可以同时指定多个,并用空格分隔,比如:

<div class="box red"></div>

  这时候的效果,和之前的写法是完全一样的,但这样就会灵活很多,因为我可以通过指定box来绘制矩形,也可能实现别的形状的class。但颜色依然可以通用之前的几个颜色。

3. id选择器

  除了通过class来指定,还可以通过id来指定选择器,写法是:#id
  举例,刚才上面用class来指定盒子颜色的做法,可以改成用id做:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.box {width: 100px;height: 100px;}#box1 {background-color: red;}#box2 {background-color: blue;}#box3 {background-color: green;}</style>
</head><body><div class="box" id="box1"></div><div class="box" id="box2"></div><div class="box" id="box3"></div>
</body></html>

  这里的box1、box2、box3,指定给div作用id值,就会受到了上面的#box1、#box2和#box3的影响,这时候的效果是和用class来指定是一样的,但意义不一样。
  class一般是一个类别的指定,而id一般是单个元素对象的指定。

4. 通配符选择器

  所谓的通配符就是所有都一起改变的意思,用*号。比如我想改变整个页面所有标签的颜色:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>* {color: blue;}</style>
</head><body><h1>标题1</h1><h2>标题2</h2><h3>标题3</h3><h4>标题4</h4><h5>标题5</h5><h6>标题6</h6>
</body></html>

  这时候,标题的字体大小不会变化,但颜色都改变了:
在这里插入图片描述

二、 复合选择器

  复合选择器是由2个或者多个基础选择器组成

1、 后代选择器

  先看例子

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>div span {color: red;font-size: 40px;}</style>
</head><body><div><span>你好</span></div><span>你好</span>
</body>

  运行效果:
在这里插入图片描述

  在这个例子里面body中间由2个span标签,一个是在div里面的,一个是单独的。
  而在style里面,指定了一个div span选择器,它的含义是,选择div下面包含的span,所以结果就是只有包含在div里面的span的样式发生了变化。
  这个可以选择父元素里面的子元素的方式,就叫做后代选择器,或者说是包含选择器。
  后代选择器是一个包含关系,只要父级里面有包含的子级,都会被选择到,比如:

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.food a {color: red;}</style>
</head><body><div class="food"><a href="#">米饭</a><ul><li><a href="#">面条</a></li><li><a href="#">馒头</a></li></ul></div>
</body>

  运行效果:
在这里插入图片描述

  可以看到,类food下面的所有链接a都变了颜色。

2、 子选择器

  如果把上面的例子改一下:

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.food>a {color: red;}</style>
</head><body><div class="food"><a href="#">米饭</a><ul><li><a href="#">面条</a></li><li><a href="#">馒头</a></li></ul></div>
</body>

  运行效果
在这里插入图片描述

  这次看到只有最上面一级的a变了颜色。.food>a这个选择器选择的只有类food的直属子级里面的a,而不是直属的a是不会被选择到。

3、 并集选择器

先看例子:

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>span,li {color: red;}</style>
</head><body><div class="food"><span>米饭</span><ul><li>面条</li><li>馒头</li></ul></div><div>蛋糕</div>
</body>

  运行效果:
在这里插入图片描述

  可以看到,选择器是span,li,用逗号分开的span和li,所以结果是span和li都被选中了。用逗号分隔的,是同时选择的意思。

4、 伪类选择器

  伪类选择器一般是某个内容的一些属性的指定,一般用:表示

(1) 子元素选择

例子:

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>li:first-child {color: blue;}</style>
</head><body><div class="food"><span>米饭</span><ul><li>面条1</li><li>馒头1</li></ul></div><div>蛋糕</div><ul><li>面条2</li><li>馒头2</li></ul>
</body>

  运行效果:
在这里插入图片描述

  可以看到,现在选择的是所有作为子级的li里面的第一个。选择器是li:first-child,代表的就是多个li里面的第一个。

(2) 链接伪类选择器

例子:

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>/* //未访问的链接,把没有点击过的(访问过的)链接选出来 */a:link {color: blue;}/* //2. a:visited 选择点击过的(访问过的)链接 */a:visited {color: red;}/* //3. a:hover 选择鼠标经过的那个链接 */a:hover {color: green;}/* // 4. a:active 选择的是我们鼠标正在按下还没有弹起鼠标的那个链接 */a:active {color: yellow;}</style>
</head><body><a href="www.baidu.com">百度</a>
</body>

  链接伪类选择器是专门为超链接使用,代表超链接的各个状态下的样式。
在这里插入图片描述

(3) focus伪类选择器

例子

<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>input:focus {border: 2px solid orange;outline: none;color: orange;}</style>
</head><body><table><input type="text" value="请输入用户名"></table>
</body>

  运行效果:
在这里插入图片描述

  focus选择器主要是给表单里面获得焦点的元素指定样式。

在这里插入图片描述

http://www.dtcms.com/a/491361.html

相关文章:

  • 千岛湖建设集团有限公司网站推广哪个网站好
  • 临清网站推广在哪里制作网页
  • 东莞微信网站建设报价建网络商城网站
  • PandaWiki:AI 驱动的开源知识库系
  • 中国旅游网站建设镇江网站排名优化费用
  • 今天遇到的一台爱普生L3258彩色喷墨打印机连续打印五灯齐闪故障的维修
  • 贵州建设水利厅考试网站购物网站的建设时间
  • DNS记录全解析:从A到MX
  • 使用OpenAI API和Python构建你的AI助手
  • Spring Boot入门指南:极速上手开发
  • 中电金信:从AI赋能到AI原生——企业级工具链平台重塑与建设实践
  • jsp 响应式网站模板两个网站开发swot分析
  • 建行个人网上银行登录入口亚马逊关键词快速优化
  • 做电视的视频网站wordpress windows下载
  • Pandas CSV:高效数据处理的利器
  • Kubernetes 存储核心理论:深入理解 PVC 静态迁移与动态扩容
  • 语言与文化差异如何影响国际化团队
  • 基于dtw算法的动作、动态识别
  • 百度云 做视频网站品牌网鞋有哪些牌子
  • 正点原子RK3568学习日志6-驱动模块传参
  • 做h5小游戏的网站有哪些梓潼 网站建设 有限公司
  • 网站备份信息wordpress高级插件
  • SYSTEM x 3650M5 IMM和UEFI微码的升级
  • VSCode插件推荐 2025 - 拥抱 Agentic Coding 时代:是时候从 PyCharm 切换到 VSCode 生态了!
  • 使用CGAL对简单多边形进行凸分解及范例展示
  • 培训网站建设课程宁波妇科中医
  • 什么网站可以做美食网站式小程序
  • 合肥建设网站查询系统游戏网络游戏
  • GraphRAG本地部署 v2.7.0
  • YOLOv1 与 YOLOv2 核心笔记:从单阶段检测开创到性能升级