【网页前端】CSS进阶之复合选择器

简介: 【网页前端】CSS进阶之复合选择器

1.概述

复合选择器:多个基本选择器的组合使用形式。

作用:更准确、更高效地选择目标元素(标签)。

常用的复合选择器:包含选择器、子对象选择器、并集选择器、伪类选择器

2.包含选择器

1.1 概述及格式

包含选择器又名后代选择器。

指标签和标签之间有 包含 关系(父子、爷孙都是包含),例如: <html> 标签包含了 <body> 标签。

我们可以对基本选择器进行组合,表现出包含关系,从而更加针对性地把样式作用于某些标签上。

格式:

选择器 1 选择器 2 …..{

/*css 样式代码*/

}

意思为:搜索选择器 1 下的所有的 选择器 2

1.2 案例代码

准备代码:仅要求 div 下所有的 font 标签变为红色,其他颜色黑色

<div> 
    <span>
        <font>变为红色字体 111</font> 
    </span> 
    <font>变为红色字体 222</font> 
    黑色字体 111 
</div> 
<font>黑色字体 222</font>

示例:

image.png

 效果:

image.png

3.子对象选择器

1.2 概述及格式

标签和标签之间有父子关系,例如:<body>标签的父标签为<html>标签。

我们可以对基本选择器进行组合,表现出父子关系

格式:

选择器 1>选择器 2 …..{

/*css 样式代码*/

}

意思为:搜索选择器 1 下的所有的子标签 选择器 2

1.3. 案例代码

准备代码:仅要求 div 下所有 font 子标签变为红色,其他颜色黑色

<div> 
    <span>
        <font>黑色字体 111</font>
        </span> 
            <font>变为红色字体 111</font> 
            黑色字体 222 
</div> 
<font>黑色字体 333</font>

示例:

image.png

效果:

image.png

4.并集选择器

1.1 概述及格式

并集选择器:指为多组不同的标签,设置相同的 CSS 样式。

格式:(用逗号分隔)

选择器 1,选择器 2 …..{

/*css 样式代码*/

}

意思为:为选择器 1 选择器 2 设置相同 CSS 样式

1.2. 案例代码

准备代码:仅要求<hr/>上面的所有字体变为红色,<hr/>下面的字体为黑色

<span>我是 span 内容体</span> 
<font>我是 font 内容体</font> 
<div class="d1">我想和 span 样式一样</div> 
<hr/> 
<div>我不想和别人样式一样</div>

示例:

image.png

效果:

image.png

注意:*通配符选择器因为效率极低,所以不建议使用。

建议使用并集选择器替代。

5.伪类选择器

1.1 概述及格式

伪类选择器:指不依靠元素 class 类名筛选,通过元素特征筛选的选择器。(鼠标悬停状态、点击

状态等)

作用:可以为 HTML 元素 设置更细致效果(某个动作 / 状态的效果、某个子元素效果)。

伪类选择器有很多种:链接伪类、结构伪类等。

本次讲解主要由链接伪类展开。

格式:(用冒号连接)

选择器:伪类{

/*css 样式代码*/

}

意思为:为选择器 1 选择器 2 设置相同 CSS 样式

1.2 链接伪类:常见 API 及案例代码

准备代码:要求 mya 超链接:

链接地址从未被点击时为:黑色 black

链接地址已经被点击过为:灰色 gray

鼠标悬停时为:红色 red

链接被点击一瞬间为:粉色 pink

<a class="mya" href="http://www.czxy.com">伪类示例</a> <hr/> 
<a href="http://www.czxy.com">正常链接</a>


常见的链接伪类值:建议的 设置顺序 LVHA

image.png

image.png

示例代码 1

image.png

1.3 结构伪类:示例代码

结构伪类非本章节主讲,我们先进行引入,在后面章节根据需求进行完善讲解。

结构伪类值包括: :root 、 :not 、 :only-child 、 :first-child 、 :last-child 等。

准备代码: div 下第一个子元素字体颜色变为红色, div 下最后一个子元素字体颜色变为蓝色

<div class="d1"> 
    <font>1</font> 
    <font>2</font> 
    <font>3</font> 
    <font>4</font> 
    <font>5</font> 
    <font>6</font> 
</div>

常见的结构伪类值:

image.png

示例代码:

image.png

image.png

1.4 伪类和伪元素的区别(了解)

1 、伪元素:不是 HTML 上真正的元素,在 HTML 不存在,可以为 HTML 中某元素的内容体追加

更细致

效果。

在 css 产生作用时,才会有创造一个新元素的效果。

:before

:after

:first-letter :first-line

以上效果都好像在内容体中追加了一个带有特殊样式的 span

2 、伪类选择器:可以为 HTML 中真正存在的元素 设置更细致效果(某个动作的效果、某个子元素

效果)

在 CSS 产生作用时,不会有创造新元素的效果,仅会在已有元素上设置效果。

:active :focus

:hover

:link

:visited

是设置元素在某个动作下的效果

:first-child

是设置子元素效果

总结:伪元素作用于 元素内容体,生效时会有追加特殊样式 span 的效果

伪类选择器 作用于 元素,生效时会设置元素动作效果和子元素效果

6.总结

image.png






相关文章
|
2月前
|
前端开发 JavaScript API
(前端3D模型开发)网页三维CAD中加载和保存STEP模型
本文介绍了如何使用`mxcad3d`库在网页上实现STEP格式三维模型的导入与导出。首先,通过官方教程搭建基本项目环境,了解核心对象如MxCAD3DObject、Mx3dDbDocument等的使用方法。接着,编写了加载和保存STEP模型的具体代码,包括HTML界面设计和TypeScript逻辑实现。最后,通过运行项目验证功能,展示了从模型加载到保存的全过程。此外,`mxcad3d`还支持多种其他格式的三维模型文件操作。
|
1月前
|
前端开发 JavaScript 开发者
前端 CSS 优化:提升页面美学与性能
前端CSS优化旨在提升页面美学与性能。通过简化选择器(如避免复杂后代选择器、减少通用选择器使用)、合并样式表、合理组织媒体查询,可减少浏览器计算成本和HTTP请求。利用硬件加速和优化动画帧率,确保动画流畅。定期清理冗余代码并使用缩写属性,进一步精简代码。这些策略不仅加快页面加载和渲染速度,还提升了视觉效果,为用户带来更优质的浏览体验。
|
9天前
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
27 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
|
1月前
|
前端开发 开发者 UED
《前端技术基础》第02章 CSS基础【合集】
层叠样式表(Cascading Style Sheets,简称CSS)是一种用于描述网页视觉表现的语言。该语言与HTML协同工作,其中HTML负责构建网页的结构,而CSS则负责定义网页的外观和格式。CSS通过一系列规则来实现样式的应用,这些规则由选择器(Selectors)和声明块(Declaration Blocks)构成。选择器的作用是明确指出哪些HTML元素将受到特定样式规则的影响,而声明块则包含了具体的样式声明,这些声明定义了元素的视觉属性和相应的值。
54 1
|
3月前
|
XML 前端开发 JavaScript
前端大神揭秘:如何让你的网页秒变炫酷,让用户欲罢不能的5大绝招!
前端开发不仅是技术活,更是艺术创作。本文揭秘五大前端开发技巧,包括合理运用CSS动画、SVG图形、现代JavaScript框架、优化网页性能及注重细节设计,助你打造炫酷网页,提升用户体验。
112 30
|
3月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
87 5
|
3月前
|
缓存 JavaScript 前端开发
JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用
本文深入讲解了 JavaScript 与 DOM 交互的基础及进阶技巧,涵盖 DOM 获取、修改、创建、删除元素的方法,事件处理,性能优化及与其他前端技术的结合,助你构建动态交互的网页应用。
90 5
|
3月前
|
存储 编解码 前端开发
惊!前端新手也能秒懂的高级技巧,轻松提升网页颜值与性能!
本文针对前端新手,介绍了三个简单易学的高级技巧,帮助提升网页的颜值和性能。包括使用CSS框架快速美化网页、优化图片资源加快加载速度,以及利用ARIA属性和媒体查询提高网页的可访问性和响应性。示例代码清晰,适合初学者上手实践。
61 3
|
3月前
|
存储 前端开发 搜索推荐
(前端直接编辑CAD)网页CAD二次开发中线型表的使用方法
在DWG数据库中,线型样式存储在线型样式表 `McDbLinetypeTable` 中,每个线型表记录对象 `McDbLinetypeTableRecord` 对应一种线型样式。本文介绍了如何获取、添加、遍历、删除和修改线型样式,并提供了绘制不同线型的示例代码,包括虚线、点划线和带文字的线型。通过在线示例demo,用户可以实践修改CAD图纸中的实体线型及其样式。

热门文章

最新文章

  • 1
    【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 2
    【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 3
    【05】flutter完成注册页面完善样式bug-增加自定义可复用组件widgets-严格规划文件和目录结构-规范入口文件-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 4
    详解智能编码在前端研发的创新应用
  • 5
    巧用通义灵码,提升前端研发效率
  • 6
    智能编码在前端研发的创新应用
  • 7
    【07】flutter完成主页-完成底部菜单栏并且做自定义组件-完整短视频仿抖音上下滑动页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
  • 8
    大前端之前端开发接口测试工具postman的使用方法-简单get接口请求测试的使用方法-简单教学一看就会-以实际例子来说明-优雅草卓伊凡
  • 9
    【09】flutter首页进行了完善-采用android studio 进行真机调试开发-增加了直播间列表和短视频人物列表-增加了用户中心-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
  • 10
    以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡