【前端】CSS学习笔记(2)
目录
- CSS3新特性
- 圆角
- 阴影
- 动画
- @keyframes 创建动画
- animation 执行动画
- timing-function 时间函数
- direction 播放方向
- 过渡动画(transition)
- 媒体查询
- 设置meta标签
- 媒体查询语法
- 雪碧图
- 字体图标
CSS3新特性
圆角
使用CSS3border-radius属性,你可以给任何元素制作“圆角”。
border-radius属性可以使用以下规则:
- 四个值:第一个值为左上角,第二个值为右上角,第三个值为右下角,第四个值为左下角。
- 三个值:第一个值为左上角,第二个值同时应用于右上角和左下角,第三个值为右下角 。
- 两个值:第一个值应用于左上角和右下角,第二个值应用于右上角和左下角。
- 一个值:这个值会应用到元素的四个角,使四个角的半径都相同。
div{width: 200px;height: 200px;background-color: rgb(252, 117, 6);border-radius: 56px;
}

div{width: 200px;height: 100px;background-color: rgb(252, 117, 6);border-radius: 100px 100px 0 0;
}

阴影
- 盒子阴影
box-shadow属性用于为元素添加盒子阴影
语法为box-shadow: h-shadow v-shadow blur spread color inset;。
| 属性 | 描述 |
|---|---|
h-shadow | 必需,水平阴影的位置,可以是正值(阴影在元素右边)或负值(阴影在元素左边) |
v-shadow | 必需,垂直阴影的位置,可以是正值(阴影在元素下边)或负值(阴影在元素上边) |
blur | 可选,模糊距离,值越大阴影越模糊 |
spread | 可选,阴影的扩展半径,正值会使阴影扩大,负值会使阴影缩小 |
color | 可选,阴影的颜色 |
inset | 可选,将外部阴影(默认)改为内部阴影 |
div{margin: 0 auto;width: 200px;height: 100px;background-color: rgb(252, 117, 6);border-radius: 56px;box-shadow: 5px 5px 10px rgba(0, 0, 0, 0.5);
}
这里的margin: 0 auto;意思是外边距上下平均为0,左右平均分配。

- 文本阴影:
text-shadow属性用于为文本添加阴影。语法为text-shadow: h-shadow v-shadow blur color;。参数含义与box-shadow类似,但没有spread和inset选项。
以下是将上述内容整理为表格和清晰段落的形式:
渐变
一、线性渐变
- 函数:
linear-gradient() - 语法:
background: linear-gradient(direction, color-stop1, color-stop2,...); - 参数说明:
| 参数 | 描述 |
|---|---|
direction | 指定渐变的方向,默认值是 to bottom(从上往下),还可以是 to top(从下往上)、to right(从左往右)、to bottom right(从左上角到右下角)等 |
color-stop1, color-stop2,... | 指定渐变的起止颜色及位置 |
div {width: 200px;height: 200px;background: linear-gradient(to bottom right, #7cfbea 0%, #7cdfd2 30%, #8767f0 50%, #ef89c6 70%, #fdb2df 100%);
}

二、径向渐变
- 函数:
radial-gradient() - 语法:
background: radial-gradient(shape size at position, start-color,..., last-color); - 参数说明:
| 参数 | 描述 | 示例 |
|---|---|---|
shape | 指定渐变的形状,circle 表示圆形,ellipse 表示椭圆形(默认值) | circle |
size | 指定渐变的大小,如 closest-side(到最近边结束)、farthest-corner(到最远角结束)等 | closest-side |
at position | 指定渐变的中心位置 | 例如 at 50% 50% 表示中心在元素的中心位置 |
start-color,..., last-color | 指定渐变的起止颜色及位置 | background: radial-gradient(circle, yellow, green); 会创建一个以黄色为中心向四周渐变到绿色的圆形背景 |
div {width: 200px;height: 200px;background: radial-gradient(circle at 50% 0%, #feea33, #ff1616);
}

动画
动画是使元素从一种样式逐渐变化为另一种样式的效果。
您可以改变任意多的样式任意多的次数。
@keyframes 创建动画
- 基本语法:
或者使用百分比的形式:@keyframes animationName {from {/* 初始样式 */}to {/* 最终样式 */} }@keyframes animationName {0% {/* 初始样式 */}50% {/* 中间样式 */}100% {/* 最终样式 */} }
animation 执行动画
- 语法:
animation: name duration timing-function delay iteration-count direction fill-mode; - 参数说明:
| 参数 | 描述 |
|---|---|
name | 必需,指定 @keyframes 中定义的动画名称 |
duration | 必需,动画持续时间,可使用秒(s)或毫秒(ms)作为单位 |
timing-function | 可选,动画的时间函数,控制动画速度曲线,如 ease、linear、ease-in、ease-out、ease-in-out 等 |
delay | 可选,动画延迟开始的时间,可使用秒(s)或毫秒(ms)作为单位 |
iteration-count | 可选,动画循环次数,可以是具体数字或 infinite(无限次) |
direction | 可选,动画播放方向,如 normal(正常方向)、reverse(反向)、alternate(交替)、alternate-reverse(反向交替) |
fill-mode | 可选,动画结束后的状态,如 forwards(停留在最后一帧)、backwards(停留在第一帧)、both(根据 animation-direction 决定) |
animation-play-state | 控制动画的播放状态:running 代表播放,paused 代表停止播放 |
timing-function 时间函数
| 值 | 描述 |
|---|---|
ease | 动画开始和结束时速度较慢,中间速度较快,是默认值 |
linear | 动画匀速播放 |
ease-in | 动画开始时速度较慢,然后逐渐加速 |
ease-out | 动画开始时速度较快,然后逐渐减速 |
ease-in-out | 动画开始和结束时速度较慢,中间速度较快 |
direction 播放方向
| 值 | 描述 |
|---|---|
normal | 动画按照正常方向播放,即从 0% 到 100% |
reverse | 动画按照反向播放,即从 100% 到 0% |
alternate | 动画在奇数次数正常播放(从 0% 到 100%),偶数次数反向播放(从 100% 到 0%) |
alternate-reverse | 动画在奇数次数反向播放(从 100% 到 0%),偶数次数正常播放(从 0% 到 100%) |
div{width: 200px;height: 200px;animation:myAnimation 2s linear 0s infinite alternate;
}@keyframes myAnimation {0%{background-color: blue;}50%{background-color: purple;}100%{background-color: aqua;}
}

过渡动画(transition)
- 基本语法:
.element { transition: property duration timing-function delay; }
其中property表示要发生变化的属性
div{margin-top:100px;width: 50px;height: 50px;background-color: #9f5aa9;transition: width 1s ease 0s , background 1s ease 1s;
}
div:hover {width: 300px;
}

媒体查询
媒体查询能使页面在不同在终端设备下达到不同的效果
媒体查询会根据设备的大小自动识别加载不同的样式
设置meta标签
在<head>中添加<meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0,user-scalable=no">,主要用于移动端页面布局。
width=device-width:将页面宽度设为设备宽度initial-scale:页面初始缩放比例(默认设置为1.0)maximum-scale:允许用户缩放到的最大比例(默认设置为1.0)user-scalable:用户是否可以手动缩放(默认设置为no)
媒体查询语法
.box {width: 300px;height: 300px;
}
@media screen and (max-width: 768px) {.box {background-color: aqua;}
}
@media screen and (min-width: 768px) and (max-width: 996px) {.box {background-color: green;}
}
@media screen and (min-width: 996px) {.box {background-color: red;}
}
上面的代码目的是,在手机上显示出蓝色,在平板上显示出绿色,在电脑上显示出红色

雪碧图
雪碧图(Sprite Sheet),又称 CSS 精灵或图像精灵,是一种网页优化技术。
原理:
把多个小图像合并成一个大的图像文件。通过background-image引入背景图片 然后利用 background-position 属性把图片移动到自己需要的位置
使用场景:
适用于页面中频繁出现多个小图标或图片元素的情况,可减少 HTTP 请求,提升页面加载速度。
对小型装饰元素,如按钮的不同状态,将其合并为雪碧图可方便实现状态切换。
实例
.icon1{display: block;width: 45px;height:45px;background: url(./1.png) no-repeat center center;border:1px solid black;background-position: -13px -13px;
}
.icon2{display: block;width: 45px;height:45px;background: url(./1.png) no-repeat center center;border:1px solid black;background-position: -84px -84px;
}
<span class="icon1"></span>
<span class="icon2"></span>

1.png为如上雪碧图

通过调整位置和大小,显示出了两个表情
字体图标
我们会经常用到一些图标。但是我们在使用这些图标时,往往会遇到失真的情况,而且图片数量很多的话,页面加载就越慢。所以,我们可以使用字体图标的方式来显示图标,既解决了失真的问题,也解决了图片占用资源的问题
常用字体图标库:阿里巴巴矢量图标库
使用字体图标
- 添加购物车
- 下载代码
- 选择
font-class引用



打开所给的demo

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="./font/iconfont.css">
</head>
<body><span class="iconfont icon-gun"></span>
</body>
</html>

.icon-gun{font-size: 100px;color: red;
}
可以改变他的大小颜色等

相关文章:
【前端】CSS学习笔记(2)
目录 CSS3新特性圆角阴影动画keyframes 创建动画animation 执行动画timing-function 时间函数direction 播放方向过渡动画(transition) 媒体查询设置meta标签媒体查询语法 雪碧图字体图标 CSS3新特性 圆角 使用CSS3border-radius属性,你可以…...
【esp32小程序】小程序篇02——连接git
一、创建仓库 进入gitee官网,登录(如果没有gitee账号的就自行注册一下)。 点击号-->新建仓库 填写好必填信息,然后点击“创建” 二、微信开发者工具配置 在微信开发者工具打开我们的项目。按下面的步骤依次点击 三、验证 点…...
echarts柱状图象形图,支持横向滑动
展示效果 代码 let xData [2020,2021,2022,2023, 2024, 2025, 2026]; let yData [267,2667,2467,2667, 3234, 4436,666]; option {grid: {left: 5%,right: 5%,top: 15%,bottom: 5%,containLabel: true},// 滚动条dataZoom: [{show: true,type: inside,zoomLock: true,throt…...
YOLO系列代码
Test-Time Augmentation TTA (Test Time Augmentation)是指在test过程中进行数据增强。其思想非常简单,就是在评测阶段,给每个输入进行多种数据增广变换,将一个输入变成多个输入,然后再merge起来一起输出,形成一种ensemble的效果,可以用来提点。参考:…...
HTML根元素<html>的语言属性lang:<html lang=“en“>
诸神缄默不语-个人CSDN博文目录 在编写HTML页面时,通常会看到<html lang"en">这行代码,特别是在网页的开头部分,就在<!DOCTYPE html>后面。许多开发者可能对这个属性的含义不太了解,它到底有什么作用&…...
opencv在图片上添加中文汉字(c++以及python)
opencv在图片上添加中文汉字(c以及python)_c opencv绘制中文 知乎-CSDN博客 环境: ubuntu18.04 desktopopencv 3.4.15 opencv是不支持中文的。 这里C代码是采用替换原图的像素点来实现的,实现之前我们先了解一下汉字点阵字库。…...
Perplexity AI 周六向 TikTok 母公司字节跳动递交了一项提案
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
Java连接TDengine和MySQL双数据源
git文件地址:项目首页 - SpringBoot连接TDengine和MySQL双数据源:SpringBoot连接TDengine和MySQL双数据源 - GitCode 1、yml配置 spring:datasource:druid:mysql:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/testusername: roo…...
Web3 游戏周报(1.13 - 1.19)
回顾上周的区块链游戏概况,查看 Footprint Analytics 与 ABGA 最新发布的数据报告。 【1.13–1.19】Web3 游戏行业动态 索尼区块解决方案实验室 (Sony BSL) 宣布其以太坊 L2 区块链 Soneium 主网上线。Hyve Labs 融资 275 万美元,推动 Web3 游戏基础设…...
[深度学习]机器学习和深度学习
机器学习和深度学习 文章目录 机器学习和深度学习人工智能与机器学习和深度学习的关系侠义的机器学习深度学习的概念常见的神经网络的输入形式想要的输出(任务类别)深度学习的流程 线性函数与多层神经元 人工智能与机器学习和深度学习的关系 所谓人工智能就是,让计算…...
区块链技术
区块链是一个信息技术领域的术语,它代表了去中心化、安全性高、透明度强的分布式账本技术。以下是对区块链的详细介绍: 一、定义与基本原理 区块链(Blockchain)是指通过去中心化和去信任的方式集体维护一个可靠数据库的技术方案…...
vim函数定义跳转相关设置
修改下vim的一些ctags相关快捷键,个人用着顺手点。 小结如下: normal模式下的gk,用来打开一个预览窗口预览函数定义(需要ctags生成好tags文件)。normal模式下的gd,修改映射为ctrl],即跳转到函…...
如何使用Python爬虫获取微店商品详情:代码示例与实践指南
在电商领域,获取商品详情数据对于商家和开发者来说至关重要。微店作为国内知名的电商平台,提供了丰富的商品数据接口,方便开发者通过API调用获取商品详情。本文将详细介绍如何使用Python爬虫获取微店商品详情,并提供具体的代码示例…...
Autosar CP RTE规范解读之不同 BSW 接口的通知与软件组件激活机制:标准化接口与 AUTOSAR 接口的实现方式
在汽车电子系统开发中,特别是在遵循 AUTOSAR 架构的系统中,基本软件(BSW)模块之间的通信和信息通知机制至关重要,它直接影响着系统的性能、可靠性以及各个软件组件之间的协同工作能力。本文根据不同类型的 BSW 接口&am…...
基于STM32的智能门锁安防系统(开源)
目录 项目演示 项目概述 硬件组成: 功能实现 1. 开锁模式 1.1 按键密码开锁 1.2 门禁卡开锁 1.3 指纹开锁 2. 功能备注 3. 硬件模块工作流程 3.1 步进电机控制 3.2 蜂鸣器提示 3.3 OLED显示 3.4 指纹与卡片管理 项目源代码分析 1. 主程序流程 (main…...
搭建Hadoop源代码阅读环境
个人博客地址:搭建Hadoop源代码阅读环境 | 一张假钞的真实世界 环境 Mac OS X EI Capitan 10.11.6java version “1.7.0_80”git version 2.7.4 (Apple Git-66)Apache Maven 3.3.9下载源代码 从Git上下载最新源代码: git clone git://git.apache.org/hadoop-common.git 构…...
【25】Word:林涵-科普文章❗
目录 题目 NO1.2.3 NO4.5.6 NO7.8 NO9.10 NO11.12 不连续选择:按住ctrl按键,不连续选择连续选择:按住shift按键,选择第一个,选择最后一个。中间部分全部被选择 题目 NO1.2.3 布局→纸张方向:横向…...
Spring Boot接收参数的19种方式
Spring Boot是一个强大的框架,允许开发人员通过多种方式接收和处理参数。无论是HTTP请求参数、路径变量,还是请求体中的数据,Spring Boot都能提供灵活的处理方式。本文将介绍19种不同的方式来接收参数。 1. 查询参数(Query Param…...
云IDE:开启软件开发的未来篇章
敖行客一直致力于将整个研发协作流程线上化,从而打破物理环境依赖,让研发组织模式更加灵活、自由且高效,今天就来聊聊AT Work(一站式研发协作平台)的重要组成部分-云IDE。 在科技领域,历史常常是未来的风向…...
Leetcode 189 轮转数组
leetcode 189 轮转数组 题目 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
NPOI Excel用OLE对象的形式插入文件附件以及插入图片
static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...
给网站添加live2d看板娘
给网站添加live2d看板娘 参考文献: stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
高考志愿填报管理系统---开发介绍
高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...
Vue 3 + WebSocket 实战:公司通知实时推送功能详解
📢 Vue 3 WebSocket 实战:公司通知实时推送功能详解 📌 收藏 点赞 关注,项目中要用到推送功能时就不怕找不到了! 实时通知是企业系统中常见的功能,比如:管理员发布通知后,所有用户…...
