《CSS 简易速速上手小册》第6章:高级 CSS 技巧(2024 最新版)

文章目录
- 6.1 使用 CSS 变量进行设计:魔法配方的调配
- 6.1.1 基础知识
- 6.1.2 重点案例:创建可定制的主题
- 6.1.3 拓展案例 1:响应式字体大小
- 6.1.4 拓展案例 2:使用 CSS 变量创建动态阴影效果
- 6.2 calc(), min(), max() 等函数的应用:数学魔法的妙用
- 6.2.1 基础知识
- 6.2.2 重点案例:响应式容器大小
- 6.2.3 拓展案例 1:动态字体大小
- 6.2.4 拓展案例 2:复杂布局中的间距调整
- 6.3 CSS Blend Modes 和滤镜效果:视觉艺术的魔法
- 6.3.1 基础知识
- 6.3.2 重点案例:创建具有混合背景的横幅
- 6.3.3 拓展案例 1:使用滤镜创建黑白照片效果
- 6.3.4 拓展案例 2:动态模糊效果
6.1 使用 CSS 变量进行设计:魔法配方的调配
在网页设计的炼金术中,CSS变量是那些能让我们随心所欲调配样式配方的神奇原料。就像在一瓶魔法药水中加入不同的草药会产生不同的效果一样,使用CSS变量可以让我们轻松地在整个网站中统一和修改样式。让我们深入了解这项技术,探索如何将其应用到我们的网页设计中。
6.1.1 基础知识
- CSS变量定义:CSS变量,也称为“自定义属性”,在根元素(
:root)或任何元素上定义,使用--前缀,如--main-color: #333;。 - CSS变量使用:使用
var()函数来引用变量,例如color: var(--main-color);。 - 作用域:变量可以在定义它们的元素内部及其子元素中使用。在
:root中定义的变量可以全局使用。 - 回退值:
var()函数允许定义一个回退值,以便在变量未定义时使用,如color: var(--main-color, black);。
6.1.2 重点案例:创建可定制的主题
假设你正在设计一个支持暗模式和亮模式的网站,你可以使用CSS变量来轻松切换主题。
- CSS 样式:
:root {--background-color: white;--text-color: black;
}[data-theme="dark"] {--background-color: black;--text-color: white;
}body {background-color: var(--background-color);color: var(--text-color);
}
通过简单切换data-theme属性,我们可以在亮模式和暗模式之间切换,无需修改大量CSS代码。
6.1.3 拓展案例 1:响应式字体大小
随着设备屏幕尺寸的变化,我们可能希望字体大小也相应调整,以提升阅读体验。
- CSS 样式:
:root {--base-font-size: 16px;
}@media (max-width: 768px) {:root {--base-font-size: 14px;}
}body {font-size: var(--base-font-size);
}
通过在不同的媒体查询中调整--base-font-size变量,我们可以实现响应式的字体大小调整。
6.1.4 拓展案例 2:使用 CSS 变量创建动态阴影效果
动态阴影效果可以给网页添加一些微妙的交互感。
- HTML 结构:
<div class="dynamic-shadow">悬停我</div>
- CSS 样式:
.dynamic-shadow {--shadow-size: 5px;box-shadow: var(--shadow-size) var(--shadow-size) 10px #ccc;transition: --shadow-size 0.3s ease;
}.dynamic-shadow:hover {--shadow-size: 10px;
}
通过改变--shadow-size变量的值,我们可以在元素悬停时创建一个动态的阴影扩展效果。
通过这些案例,我们可以看到CSS变量在网页设计中的强大作用。它们不仅使主题定制和样式调整变得轻而易举,还可以增强我们网站的交互性和视觉吸引力。掌握了CSS变量的使用,就等于拥有了一瓶能够调配出无数魔法效果的万能药水。继续探索和实验这些“魔法配方”,让你的网站在众多网页中独树一帜吧!

6.2 calc(), min(), max() 等函数的应用:数学魔法的妙用
在CSS的世界里,calc(), min(), max() 等函数就像是一把能够解决各种布局难题的瑞士军刀。这些函数让我们能够直接在样式表中进行数学计算,从而以一种更灵活和动态的方式来控制元素的大小、位置和间距等。让我们一起探索这些数学魔法的妙用,看看如何将它们应用到实际的网页设计中。
6.2.1 基础知识
calc()函数:允许在表达式中执行计算,可以使用加 (+), 减 (-), 乘 (*), 除 (/) 运算符,支持混合使用不同的单位。min()函数:接受一组值作为参数,返回其中的最小值,非常适合用于响应式设计中。max()函数:与min()相反,它返回一组值中的最大值,同样适合用于响应式设计。
6.2.2 重点案例:响应式容器大小
设计一个容器,它的宽度应该适应不同屏幕尺寸,但需要有一个最小和最大宽度限制。
- CSS 样式:
.container {width: clamp(300px, 50%, 800px);
}
这里我们使用了clamp()函数,它其实是min()和max()的结合体,确保容器的宽度在300px和800px之间,同时宽度会动态地调整为视口宽度的50%。
6.2.3 拓展案例 1:动态字体大小
为了改善在不同设备上的阅读体验,我们希望文字大小能根据视口宽度动态调整,同时有最小和最大字体大小的限制。
- CSS 样式:
.text {font-size: clamp(1rem, 2vw + 1rem, 2rem);
}
使用clamp()函数,我们可以让字体大小在1rem和2rem之间动态变化,根据视口宽度自适应,提供更好的阅读体验。
6.2.4 拓展案例 2:复杂布局中的间距调整
假设你有一个复杂的布局,需要根据容器大小动态调整内部元素的间距。
- CSS 样式:
.item {margin: calc(5% + 10px);
}
通过calc()函数,我们可以基于容器的宽度百分比加上一个固定的间距值来动态调整元素的外边距,使布局在不同屏幕尺寸下都保持良好的视觉效果。
这些数学函数为CSS提供了前所未有的灵活性和动态性,使得响应式设计和复杂布局调整变得更加简单和直观。通过合理应用calc(), min(), max()等函数,我们可以更精确地控制网页元素的样式,创造出既美观又实用的网页设计。记住,这些工具虽然强大,但使用时也需要考虑到性能和兼容性。现在,让我们拿起数学魔法的工具,为我们的网页设计添上一抹亮色吧!

6.3 CSS Blend Modes 和滤镜效果:视觉艺术的魔法
在CSS的调色板中,混合模式(Blend Modes)和滤镜(Filters)是那些能够让你的网页从简单的布局转变为视觉艺术品的神奇工具。它们为我们提供了在网页上直接应用复杂视觉效果的能力,无需借助图像编辑软件。让我们深入探索如何使用这些工具来增强你的网站设计。
6.3.1 基础知识
- 混合模式(Blend Modes):控制两个元素的颜色如何混合显示。常见的混合模式包括
multiply(正片叠底)、screen(滤色)、overlay(叠加)等。 - 滤镜(Filters):应用于元素上的图形效果,如模糊(
blur)、亮度(brightness)、对比度(contrast)等。 - 应用方式:混合模式通常应用于
background-blend-mode或mix-blend-mode属性,滤镜则通过filter属性应用。
6.3.2 重点案例:创建具有混合背景的横幅
假设你想设计一个网站横幅,其中包含一张图片和一个半透明的颜色层,通过混合模式增强视觉效果。
- HTML 结构:
<div class="banner"><img src="background.jpg" alt="Banner Background"><div class="overlay"></div>
</div>
- CSS 样式:
.banner {position: relative;
}.banner img {width: 100%;height: auto;
}.overlay {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(255, 0, 0, 0.5);mix-blend-mode: multiply;
}
通过设置 .overlay 的 mix-blend-mode 为 multiply,红色半透明层与背景图片混合,创造出丰富的视觉效果。
6.3.3 拓展案例 1:使用滤镜创建黑白照片效果
让网页上的彩色照片以黑白形式展示,增加复古感。
- CSS 样式:
.grayscale-photo {filter: grayscale(100%);
}
通过 filter: grayscale(100%);,可以将图片转换为黑白,为网站添加一种复古的视觉风格。
6.3.4 拓展案例 2:动态模糊效果
设计一个动态模糊背景的登录表单,当用户聚焦在输入框时,背景模糊,突出表单内容。
- HTML 结构:
<div class="blur-background"><form class="login-form"><!-- 表单内容 --></form>
</div>
- CSS 样式:
.blur-background {filter: blur(0);transition: filter 0.5s ease;
}.login-form:focus-within ~ .blur-background {filter: blur(5px);
}
当表单获得焦点时,.blur-background 应用 blur(5px) 滤镜,使背景模糊,从而聚焦用户的注意力到表单上。
混合模式和滤镜效果为网页设计师提供了强大的视觉表达工具。它们可以用来创造吸引人的视觉效果,增加用户的参与感和情感反应。通过灵活运用这些CSS特性,你的网站可以脱颖而出,为用户提供独一无二的浏览体验。记得,虽然这些工具强大,但在使用时也需要注意不要过度使用,保持网站的专业性和易用性。
相关文章:
《CSS 简易速速上手小册》第6章:高级 CSS 技巧(2024 最新版)
文章目录 6.1 使用 CSS 变量进行设计:魔法配方的调配6.1.1 基础知识6.1.2 重点案例:创建可定制的主题6.1.3 拓展案例 1:响应式字体大小6.1.4 拓展案例 2:使用 CSS 变量创建动态阴影效果 6.2 calc(), min(), max() 等函数的应用&am…...
2024-02-11 多进程、多线程 work
1. 创建一个多进程服务器和多线程服务器 a. 多进程 #include<myhead.h> #define PORT 9999 //端口号 #define IP "192.168.125.113" //IP地址//定义信号处理函数,用于回收僵尸进程 void handler(int signo) {if(signo S…...
详解结构体内存对齐及结构体如何实现位段~
目录 编辑 一:结构体内存对齐 1.1对齐规则 1.2.为什么存在内存对齐 1.3修改默认对齐数 二.结构体实现位段 2.1什么是位段 2.2位段的内存分配 2.3位段的跨平台问题 2.4位段的应用 2.5位段使用的注意事项 三.完结散花 悟已往之不谏,知来者犹可…...
Linux网络编程——tcp套接字
文章目录 主要代码关于构造listen监听accepttelnet测试读取信息掉线重连翻译服务器演示 本章Gitee仓库:tcp套接字 主要代码 客户端: #pragma once#include"Log.hpp"#include<iostream> #include<cstring>#include<sys/wait.h…...
【计算机网络】协议层次及其服务模型
协议栈(protocol stack) 物理层链路层网络层运输层应用层我们自顶向下,所以从应用层开始探究应用层 协议 HTTP 提供了WEB文档的请求和传送SMTP 提供电子邮件报文的传输FTP 提供两个端系统之间的文件传输报文(message)是…...
prometheus之redis_exporter部署
下载解压压缩包 mkdir /opt/redis_exporter/ cd /opt/redis_exporter/ wget http://soft.download/soft/linux/prometheus/redis_exporter/redis_exporter-v1.50.0.linux-amd64.tar.gz tar -zxvf redis_exporter-v1.50.0.linux-amd64.tar.gz ln -s /opt/redis_exporter/redis_…...
js 解构赋值
搬运:JavaScript系列之解构赋值_js解构赋值-CSDN博客...
Vivado用ILA抓波形保存为CSV文件
将ILA观察到的波形数据捕获为CSV文件,抓10次,把文件合并,把源文件删除 运行方法:Vivado的 Tcl console 窗口输入命令 set tcl_dir F:/KLD_FPGA/Code/sim set tcl_filename TCL_ILA_TRIG_V1.2.tcl source $tcl_dir/$tcl_filenam…...
微软AD域替代方案,助力企业摆脱hw期间被攻击的窘境
在红蓝攻防演练(hw行动)中,AD域若被攻击成功,是其中一个扣分最多的一项内容。每年,宁盾都会接到大量AD在hw期间被攻击,甚至是被打穿的企业客户。过去,企业还会借助2FA双因子认证加强OA、Exchang…...
Git教程I
Git教程I 本地Git创建git仓库将修改存到暂存区将暂存区提交到当前分支查看提交历史回退版本恢复到更晚的版本创建新分支切换分支简单的分支合并冲突分支合并不使用fast forward: --no-ff 远程Git连接远程仓库将本地分支上传到远程仓库从远程仓库拉取 本地Git 学习如何使用本地…...
containerd中文翻译系列(十)镜像验证
下面将介绍默认的 "bindir"ImageVerifier插件实现。 要启用图像验证,请在 containerd 配置中添加类似下面的一段: [plugins][plugins."io.containerd.image-verifier.v1.bindir"]bin_dir "/opt/containerd/image-verifier/b…...
假期day9(2024/2/14)
获取数据库查询的值并调用值使用函数:sqlite3_get_table 在回调函数中获取数据库查询值,无法在其他函数调用:使用函数sqlite3_exec(db, sql, select_callback, &flag, &errmsg) 创建表 create table if not exists 表名…...
Leetcode 674 最长连续递增序列
题意理解: 给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l < i < r,都有 nums[i…...
力扣题目训练(8)
2024年2月1日力扣题目训练 2024年2月1日力扣题目训练404. 左叶子之和405. 数字转换为十六进制数409. 最长回文串116. 填充每个节点的下一个右侧节点指针120. 三角形最小路径和60. 排列序列 2024年2月1日力扣题目训练 2024年2月1日第八天编程训练,今天主要是进行一些…...
理解JAVA EE设计模式
理解JAVA EE设计模式 在Web应用程序的设计和开发阶段,开发人员在开发类似的项目时可能会遇到相似的问题。每名开发人员可能会遇到的问题找出不同或相似的解决方案。但是,这导致一些时间和精力浪费在为相似的问题寻找解决方案上。因此,要啊节省时间和精力,需要记录常见问题…...
GEE:梯度提升树(Gradient Boosting Tree)回归教程(样本点、特征添加、训练、精度、参数优化)
作者:CSDN @ _养乐多_ 对于分类问题,这个输出通常是一个类别标签 ,而对于回归问题,输出通常是一个连续的数值。回归可以应用于多种场景,包括预测土壤PH值、土壤有机碳、土壤水分、碳密度、生物量、气温、海冰厚度、不透水面积百分比、植被覆盖度等。 本文将介绍在Google…...
k8s-资源限制与监控 15
资源限制 上传实验所需镜像 Kubernetes采用request和limit两种限制类型来对资源进行分配。 request(资源需求):即运行Pod的节点必须满足运行Pod的最基本需求才能 运行Pod。 limit(资源限额):即运行Pod期间,可能内存使用量会增加࿰…...
【Ubuntu】在.bashrc文件中误设置环境变量补救方法
这里是vim也不在PATH中了,因为 解决方法就是在输入vim之后提示的vim路径下用vim打开该文件,然后改回来...
Imgui(1) | 基于imgui-SFML改进自由落体小球
Imgui(1) | 基于imgui-SFML改进自由落体小球 0. 简介 使用 SFML 做2D图形渲染的同时,还想添加一个按钮之类的 GUI Widget, 需要用 Dear Imgui。由于 Imgui 对于2D图形渲染并没有提供类似 SFML 的 API, 结合它们两个使用是一个比较好的方法, 找到了 imgui-SFML 这个…...
Linux-Vim的使用,快速入门Vim,Linux入门教程,精讲Linux
Vim的三种模式 输入模式,键入 i 或 a 或 o 都可以进入输入模式。 普通模式,打开Vim默认的模式。 命令模式,键入 : 进入命令模式。 注意:按下 ESC 可以从输入模式或命令模式退回到普通模式 退出 vim ,需要在普通模式下…...
手游刚开服就被攻击怎么办?如何防御DDoS?
开服初期是手游最脆弱的阶段,极易成为DDoS攻击的目标。一旦遭遇攻击,可能导致服务器瘫痪、玩家流失,甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案,帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...
Vue记事本应用实现教程
文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展:显示创建时间8. 功能扩展:记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
【单片机期末】单片机系统设计
主要内容:系统状态机,系统时基,系统需求分析,系统构建,系统状态流图 一、题目要求 二、绘制系统状态流图 题目:根据上述描述绘制系统状态流图,注明状态转移条件及方向。 三、利用定时器产生时…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...
