《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-modemix-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;
}

通过设置 .overlaymix-blend-modemultiply,红色半透明层与背景图片混合,创造出丰富的视觉效果。

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特性,你的网站可以脱颖而出,为用户提供独一无二的浏览体验。记得,虽然这些工具强大,但在使用时也需要注意不要过度使用,保持网站的专业性和易用性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/382378.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

AES加密中的CBC和ECB

目录 1.说明 2.ECB模式&#xff08;base64&#xff09; 3.CBC模式 4.总结 1.说明 AES是常见的对称加密算法&#xff0c;加密和解密使用相同的密钥&#xff0c;流程如下&#xff1a; 主要概念如下&#xff1a; ①明文 ②密钥 用来加密明文的密码&#xff0c;在对称加密算…

CTF-PWN-沙箱逃脱-【侧信道爆破】(2021-蓝帽杯初赛-slient)

文章目录 侧信道攻击测信道爆破2021-蓝帽杯初赛-slient先自己准备个flag检查沙箱IDA源码mainsub_A60() 相关知识size_t getpagesize(void)void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset);range(i,j)编写相关shellcode发现"的用法此时…

什么是宿主软件?宿主软件有哪些?

什么是宿主软件? 宿主软件就是专业的音乐制作软件&#xff0c;我们日常听到的大多数正规音乐作品都是用宿主软件制作出来的&#xff0c;这些软件一般需要安装各类插件&#xff0c;插件就像寄生虫需要在宿主软件里加载才可以工作。 插件主要分虚拟乐器插件和音频处理插件两类…

JZ36 二叉搜索树与双向链表

目录 题目描述 二叉搜索树与双向链表_牛客题霸_牛客网 题目解析 题目答案 最后 题目描述 二叉搜索树与双向链表_牛客题霸_牛客网 题目解析 这里采用的是采用前序遍历的思想&#xff0c;找到要转换的双向链表的头节点也就是这个二叉搜索树的最左节点&#xff0c;找到之后依…

MySQL篇----第十九篇

系列文章目录 文章目录 系列文章目录前言一、什么是存储过程?用什么来调用?二、如何通俗地理解三个范式?三、什么是基本表?什么是视图?四、试述视图的优点?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这…

力扣[面试题 01.02. 判定是否互为字符重排(哈希表,位图)

Problem: 面试题 01.02. 判定是否互为字符重排 文章目录 题目描述思路复杂度Code 题目描述 思路 思路1&#xff1a;哈希表 1.若两个字符串长度不相等&#xff0c;则一定不符合题意&#xff1b; 2.创建一个map集合&#xff0c;先将字符串s1中的每一个字符与其对应的数量存入集合…

2024.2.10 DMS(数据库管理系统)初体验

数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件&#xff0c;用于建立、使用和维护数据库&#xff0c;简称DBMS。它对数据库进行统一的管理和控制&#xff0c;以保证数据库的安全性和完整性。用户通过DBMS访问数据库中的数据&#xff0c;数据库管…

大年初一,送出最后8000个红包封面!

今天是大年初一&#xff0c;大家都是怎么安排的&#xff1f; 小灰最近在南方旅游&#xff0c;玩得很开心&#xff0c;后面会给大家分享自己的见闻。 过年期间&#xff0c;大家多少都会给亲朋好友发一些微信红包&#xff0c;拥有个性化的红包封面绝对是一件很酷的事情。 前一段时…

007集——数据存储的端序(大端序和小端序转换代码)——VB/VBA

VB/VBA存储的端序 1、要想制造高性能的VB/VBA代码&#xff0c;离了指针是很难办到的。 2、因为VB/VBA里&#xff0c;用Long来表示指针&#xff0c;而32位(包括64位兼容的)计算机里4字节整数的处理&#xff0c;是最快的方式&#xff01; 3、要想用指针来处理数据&#xff0c;…

4. ⼤模型微调方法

到底有哪些微调⽅法呢&#xff1f; 第⼀类⽅法&#xff1a;借助OpenAI提供的在线微调⼯具进⾏微调&#xff1b;第⼆类⽅法&#xff1a;借助开源微调框架进⾏微调&#xff1b; 1. OpenAI在线微调⼯具 网址&#xff1a;https://platform.openai.com/docs/guides/fine-tuning/c…

无人机遥感技术应用分析,无人机遥感系统测绘技术详解

由于无人机具有机动快速、使用成本低、维护操作简单等技术特点,因此被作为一种理想的飞行平台广泛应用于军事和民用各个领域。尤其是进入二十一世纪以后,许多国家将无人机系统的研究、开发、应用置于优先发展的地位,体积小、重量轻、探测精度高的新型传感器的不断问世,也使无人…

让Python遇上Office--从编程入门到自动化办公实践

最近仔细的学习了这本《让Python遇上Office》的书&#xff0c;同时把我的学习进程与心得录制了同步视频。 到今天终于把全部90集完成&#xff0c;并且上传到下面的视频平台了&#xff0c;欢迎大家观看并指正&#xff01; 西瓜视频&#xff1a;https://www.ixigua.com/7300628…

c语言中的隐式类型转换

数据类型转化 我们在实际编程中&#xff0c;不管你是有意的还是无意的&#xff0c;有时候都会让两个不同类型的数据参与运算&#xff0c;编译器为了能够生成CPU可以正常 执行的指令&#xff0c;往往会对数据做类型转换&#xff0c;将两个不同类型的数据转换成同一种数据类型。…

Popper.js:ElementUI 中采用弹出,提示框库,好用的没朋友。

Hi&#xff0c;我贝格前端工场&#xff0c;继续介绍经典的js库&#xff0c;ElementUI 中Tooltip、Select、Cascader、TimePicker等组件中怎么把提示框定位到目标元素的&#xff0c;是用 Popperjs 来实现。 一、Popper.js是什么&#xff1f; Popper.js是一个用于创建弹出式组件…

LLM之LangChain(七)| 使用LangChain,LangSmith实现Prompt工程ToT

如下图所示&#xff0c;LLM仍然是自治代理的backbone&#xff0c;可以通过给LLM增加以下模块来增强LLM功能: Prompter AgentChecker ModuleMemory moduleToT controller 当解决具体问题时&#xff0c;这些模块与LLM进行多轮对话。这是基于LLM的自治代理的典型情况&#xff0c;…

回归预测模型:MATLAB多项式回归

1. 多项式回归模型的基本原理 多项式回归是线性回归的一种扩展&#xff0c;用于分析自变量 X X X与因变量 Y Y Y之间的非线性关系。与简单的线性回归模型不同&#xff0c;多项式回归模型通过引入自变量的高次项来增加模型的复杂度&#xff0c;从而能够拟合数据中的非线性模式。…

卫星通讯领域FPGA关注技术:算法和图像方面(3)

最近关注的公众号提到了从事移动通信、卫星通讯等领域的FPGA、ASIC、信号处理算法等工程师可能需要关注的技术&#xff0c;有通感融合、RNSS授时、惯导&#xff0c;以下做了一些基础的调研&#xff1a; 1 通感融合 1&#xff09;来自博鳌亚洲论坛创新报告2023:通感算融合已成…

Linux操作系统基础(三):虚拟机与Linux系统安装

文章目录 虚拟机与Linux系统安装 一、系统的安装方式 二、虚拟机概念 三、虚拟机的安装 四、Linux系统安装 1、解压人工智能虚拟机 2、找到解压目录中的node1.vmx 3、启动操作系统 虚拟机与Linux系统安装 一、系统的安装方式 Linux操作系统也有两种安装方式&#xf…

算法学习——LeetCode力扣栈与队列篇1

算法学习——LeetCode力扣栈与队列篇1 232. 用栈实现队列 232. 用栈实现队列 - 力扣&#xff08;LeetCode&#xff09; 描述 请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作&#xff08;push、pop、peek、empty&#xff09;&#xff1a; 实现 MyQu…

动态水印怎么加 怎么去除动态水印 视频剪辑软件 会声会影安激活序列号 会声会影怎么剪辑视频

为了防止白嫖或者增加美观效果&#xff0c;视频制作者可能会采用动态水印的方式&#xff0c;让其他人难以盗取视频使用。动态水印的添加&#xff0c;需要应用到运动路径功能。接下来&#xff0c;本文会教大家动态水印怎么加&#xff0c;怎么去除动态水印的相关内容。感兴趣的小…