前端三剑客 —— CSS (第四节)
目录
内容回顾:
1.常见样式
2.特殊样式
特殊样式
过滤效果
动画效果
动画案例:
渐变效果
其他效果:
多列效果
字体图标(icon)
内容回顾:
1.常见样式
text-shadow x轴 y轴 阴影的模糊程度 阴影的颜色
box-shadow
border-radio 实现圆角
margin 内边距
padding 外边距
background
2.特殊样式
媒体查询:@media
自定义字体:@font-face {
font-family:自定义名称;
src:url(“字体的路径”);
}
选择{
font-family:自定义名称;
}
转换:transform
移动:translate()
旋转:rotate()
缩放:scale()
翻转:skew()
综合:matrix()
特殊样式
过滤效果
从一个状态变为另一个状态的过程,要想有过滤效果,我们就需要又触发条件,通常触发的条件为鼠标移动到元素上(hover)。
单项过渡
多项过渡
transition这个属性的值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>过渡效果比较</title>
<style>
.box {
width: 200px;
height: 200px;
background-color: #317FE5;
/*transition: width 5s ease 2s;*/
/*transition: width 3s linear;*/
/*transition: width 3s ease-in;*/
/*transition: width 3s ease-in-out;*/
transition: width 3s ease-out;
}
.box:hover {
width: 500px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
动画效果
在CSS3中提供了基于CSS动画效果,我们需要先定义动画,然后再使用动画。
定义动画使用@keyframes,从而使用动画animate
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动画效果</title>
<style>
/*.box {*/
/* width: 200px;*/
/* height: 200px;*/
/* background: #317FE5;*/
/* transition: transform 2s;*/
/*}*/
/*.box:hover {*/
/* transform: translateX(100px);*/
/*}*/
/* 定义动画 */
@keyframes myAnimate {
from {
left: 5px;
background: #317FE5;
}
to {
left: 500px;
background: red;
}
}
.box {
width: 200px;
height: 200px;
background: #317FE5;
animation: myAnimate 5s;
position: absolute;
left: 5px;
top: 5px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
另一个效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动画效果</title>
<style>
/* 定义动画 */
@keyframes myAnimate {
0% {
left: 5px;
top: 5px;
}
25% {
left: 500px;
top: 5px;
}
50% {
left: 500px;
top: 200px;
}
75% {
left: 5px;
top: 200px;
}
100% {
left: 5px;
top: 5px;
}
}
.box {
width: 200px;
height: 200px;
background: #317FE5;
animation: myAnimate 5s;
position: absolute;
left: 5px;
top: 5px;
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
动画属性
属性 | 描述 | 值 |
@keyframes | 规定动画。指定 | css样式 |
animation | 所有动画属性的简写属性,除了 animation-play-state 属性。 | 动画名称 |
animation-name | 规定 @keyframes 动画的名称。 | 动画名称 |
animation-duration | 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 | 数值 |
animation-timing-function | 规定动画的速度曲线。默认是 "ease"。 | ease-in-out、linear、ease、ease-in、ease-out |
animation-delay | 规定动画何时开始。默认是 0。 | 数值 |
animation-iteration-count | 规定动画被播放的次数。默认是 1。 | 数值或者infinite |
animation-direction | 规定动画是否在下一周期逆向地播放。默认是 "normal"。 | normal、alternate |
animation-play-state | 规定动画是否正在运行或暂停。默认是 "running"。 | paused、running |
animation-fill-mode | 规定对象动画时间之外的状态。 | none、forwards、backwards、both |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动画属性介绍</title>
<style>
.box {
width: 200px;
height: 200px;
background: #317FE5;
position: absolute;
top: 5px;
left: 5px;
/*animation: myMove 5s;*/
/* 指定动画名称 */
/*animation-name: myMove;*/
/* 定义动画持续时间,单位是秒或毫秒 */
/*animation-duration: 3s;*/
/* 定义动画执行的效果 */
/*animation-timing-function: ease-in;*/
/* 定义动画执行次数,默认为 1 次,如果希望无限次,则值为 infinite */
/*animation-iteration-count: infinite;*/
/*animation-iteration-count: 1;*/
/* 定义动画的运行方向 */
/*animation-direction: alternate-reverse;*/
/*animation-direction: alternate;*/
/*animation-play-state: paused;*/
animation: myMove 3s ease-in infinite alternate;
}
@keyframes myMove {
from {
/*background: #317FE5;*/
left: 5px;
top: 5px;
}
to {
/*background: red;*/
left: 200px;
top: 5px;
}
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
动画案例:
定义两个圆,一个圆逆时针旋转,另一个圆顺时针旋转。
下图是定义分析
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>动画的案例</title>
<style>
.outer {
width: 300px;
height: 300px;
background: url("image/5.jpeg") no-repeat center center;
overflow: hidden;
border-radius: 50%;
/*transform: translateY(50%);*/
position: absolute;
left: 50%;
top: 50%;
margin-top: -150px;
margin-left: -150px;
animation: outerAnimate 5s linear infinite;
}
.inner {
width: 200px;
height: 200px;
background: url("image/7.jpeg") no-repeat center center;
/*transform: translate(25%, 25%);*/
border-radius: 50%;
position: absolute;
left: 50%;
top: 50%;
margin-left: -100px;
margin-top: -100px;
animation: innerAnimate 3s linear infinite;
}
@keyframes outerAnimate {
from {
transform: rotate(360deg);
}
to {
transform: rotate(0deg);
}
}
@keyframes innerAnimate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
</style>
</head>
<body>
<div class="outer">
<div class="inner"></div>
</div>
</body>
</html>
渐变效果
在CSS3中提供了可以让两种或多种颜色之间的显示平稳过渡。我们只需要使用background-image:linear-gradients 属性指定即可。它的语法为:
简单示例
其他效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>渐变效果2</title>
<style>
.box {
width: 300px;
height: 300px;
margin: 50px auto;
border: 1px solid #333333;
border-radius: 50%;
/* 可以指定渐变的角度 */
/*background-image: linear-gradient(180deg, #ff0000, yellow);*/
/* 可以指定渐变的透明度 */
/*background-image: linear-gradient(to right, rgba(255,0,0,.5), rgba(255, 255, 0, 0.5));*/
/* 重复的线性渐变 */
/*background-image: linear-gradient(red, yellow 10%, green 20%);*/
/* 径向渐变 */
background-image: radial-gradient(red, yellow);
}
</style>
</head>
<body>
<div class="box"></div>
</body>
</html>
多列效果
在CSS3中提供了将文本内容设计成像报纸一样的多列布局。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>多列效果</title>
<style>
.box {
column-count: 3;
}
</style>
</head>
<body>
<h1>下面的数据呈现3列展示</h1>
<div class="box">
“当我年轻的时候,我梦想改变这个世界;当我成熟以后,我发现我不能够改变这个世界,我将目光缩短了些,决定只改变我的国家;当我进入暮年以后,我发现我不能够改变我们的国家,我的最后愿望仅仅是改变一下我的家庭,但是,这也不可能。当我现在躺在床上,行将就木时,我突然意识到:如果一开始我仅仅去改变我自己,然后,我可能改变我的家庭;在家人的帮助和鼓励下,我可能为国家做一些事情;然后,谁知道呢?我甚至可能改变这个世界。”
</div>
</body>
</html>
字体图标(icon)
阿里 有阿里图标库 可在里面进行下载图标和代码 (百度搜索阿里图标库即可找到)
相关文章:

前端三剑客 —— CSS (第四节)
目录 内容回顾: 1.常见样式 2.特殊样式 特殊样式 过滤效果 动画效果 动画案例: 渐变效果 其他效果: 多列效果 字体图标(icon) 内容回顾: 1.常见样式 text-shadow x轴 y轴 阴影的模糊程度 阴影的…...

Linux文件IO(3):使用文件IO进行文件的打开、关闭、读写、定位等相关操作
目录 1. 文件IO的概念 2. 文件描述符概念 3. 函数介绍 3.1 文件IO-open函数 3.2 文件IO-close函数 3.3 文件IO-read函数 3.4 文件IO-write函数 3.5 文件IO-lseek函数 4. 代码练习 4.1 要求 4.2 具体实现代码 4.3 测试结果 5. 总结 1. 文件IO的概念 posix(可移植操作系统接…...

Vite 项目中环境变量的配置和使用
Vite 项目中环境变量的声明 我们要在 Vite 项目中进行环境变量的声明,那么需要在项目的根目录下,新建 .env.[mode] 文件用于声明环境变量,如: .env.test 文件用于测试环境下项目全局变量的声明.env.dev 文件用于开发环境下项目全…...

C++读取.bin二进制文件
C读取.bin二进制文件 在C中,可以使用文件输入/输出流来进行二进制文件的读写操作,方便数据的保存和读写。 //C读取bin二进制文件 int read_bin() {std::ifstream file("data_100.bin", std::ios::in | std::ios::binary);if (file) {// 按照…...
【ZZULIOJ】1038: 绝对值最大(Java)
目录 题目描述 输入 输出 样例输入 Copy 样例输出 Copy code 题目描述 输入3个整数,输出绝对值最大的那个数。 输入 输入包含3个int范围内的整数,用空格隔开。 输出 输出三个数中绝对值最大的数,单独占一行。若绝对值最大的数不唯…...

递归算法讲解2
前情提要 上一篇递归算法讲解在这里 递归算法讲解(结合内存图) 没看过的小伙伴可以进去瞅一眼,谢谢! 递归算法的重要性 递归算法是非常重要的,如果想要进大厂,以递归算法为基础的动态规划是必考的&…...

机器学习第33周周报Airformer
文章目录 week33 AirFormer摘要Abstract一、论文的前置知识1. 多头注意力机制(MSA)2. 具有潜变量的变分模型 二、文献阅读1. 题目2. abstract3. 问题与模型阐述3.1 问题定义3.2 模型概述3.3 跨空间MSA(DS-MSA)3.4 时间相关MSA&…...
设计模式(12):代理模式
一.核心作用 通过代理,控制对对象的访问;可以详细控制访问某个对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。 二.核心角色 抽象角色: 定义代理角色和真实角色的公共对外方法;真实角色: 实现抽…...
前端9种图片格式基础知识, 你应该知道的
彩色深度 彩色深度标准通常有以下几种: 8位色,每个像素所能显示的彩色数为2的8次方,即256种颜色。16位增强色,16位彩色,每个像素所能显示的彩色数为2的16次方,即65536种颜色。24位真彩色,每个…...

ChatGPT 与 OpenAI 的现代生成式 AI(上)
原文:Modern Generative AI with ChatGPT and OpenAI Models 译者:飞龙 协议:CC BY-NC-SA 4.0 序言 本书以介绍生成式 AI 领域开始,重点是使用机器学习算法创建新的独特数据或内容。它涵盖了生成式 AI 模型的基础知识,…...
全量知识系统 程序详细设计之架构设计:一个信息系统架构
统架构,整体设计分成了三部分--三种方面:信息nformation、系统Syste 原文 以下是对全知系统程序详细设计需要的架构规划的考虑。 全知系统架构是一个信息系统架构,整体设计分成了三部分(三种“方面”):信…...
从零开始:成功进入IT行业的方法与技巧
如今,信息技术(IT)行业成为了就业市场上的热门领域。由于其快速发展和广阔的职业机会,许多人希望能够进入这个行业。然而,对于没有任何相关背景知识的人来说,要成功进入IT行业可能会面临一些挑战。本文将分…...

SpringCloud - 如何本地调试不会注册到线上环境(Nacos)?
问题描述 有时候我们需要本地调试注册到 Nacos 上,但是会影响线上服务的 Feign 请求打到本地导致不通影响了线上业务。 原因分析 一般最传统的解决方案就是修改本地 bootstrap.yml 的 spring.cloud.nacos.discovery.namespace spring:application:name: app-serv…...
1.9 面试经典150题 除自身以外数组的乘积
除自身以外数组的乘积 给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法࿰…...

【美团笔试题汇总】2023-09-02-美团春秋招笔试题-三语言题解(CPP/Python/Java)
🍭 大家好这里是KK爱Coding ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新美团近期的春秋招笔试题汇总~ 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢…...

小黑逆向爬虫探索与成长之路:小黑独立破解毛毛租数据加密与解密
前言 有道和招标网的加密入口定位在前面两期做了详细的介绍,本小结将通过简单的关键词搜索定位到加密与解密入口 数据接口寻找与请求 根据响应数据长度,确定数据接口,发现传入的参数需要加密,响应的结果需要解密,后…...

深入浅出 -- 系统架构之微服务架构常见的六种设计模式
面向服务的架构(SOA) 面向服务的架构(SOA)是一种设计方法,也是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的…...

SSM框架学习——SqlSession以及Spring与MyBatis整合
SqlSession以及Spring与MyBatis整合 准备所需要的JAR包 要实现MyBatis与Spring的整合,很明显需要这两个框架的JAR包,但是只是使用这两个框架中所提供的JAR包是不够的,还需要配合其他包使用: Spring的JAR包MyBatis的JAR包Spring…...

6、【单例模式】确保了一个类在程序运行期间只有一个实例
你好,我是程序员雪球 在软件设计中,单例模式是一种常见的设计模式。它确保了一个类在程序运行期间只有一个实例,并提供了全局访问该实例的方式。单例模式在许多场景中都有广泛的应用,例如共享资源管理、数据库连接、日志记录器等…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘
美国西海岸的夏天,再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至,这不仅是开发者的盛宴,更是全球数亿苹果用户翘首以盼的科技春晚。今年,苹果依旧为我们带来了全家桶式的系统更新,包括 iOS 26、iPadOS 26…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...
java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别
UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...
ffmpeg(四):滤镜命令
FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
USB Over IP专用硬件的5个特点
USB over IP技术通过将USB协议数据封装在标准TCP/IP网络数据包中,从根本上改变了USB连接。这允许客户端通过局域网或广域网远程访问和控制物理连接到服务器的USB设备(如专用硬件设备),从而消除了直接物理连接的需要。USB over IP的…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖
在Vuzix M400 AR智能眼镜的助力下,卢森堡罗伯特舒曼医院(the Robert Schuman Hospitals, HRS)凭借在无菌制剂生产流程中引入增强现实技术(AR)创新项目,荣获了2024年6月7日由卢森堡医院药剂师协会࿰…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...