css:转换
转换
移动
/* transform: translate(100px, 200px); */transform: translateX(100px);transform: translateY(100px);
/*一个意思*/
如果后面跟百分数的意思是移动盒子自身x/y方向长度的百分比,可以用作子绝父相控制盒子水平居中垂直居中
translate里的xy值是相对于自身的初始位置的位移(而不是相对前一次位置的位移)
使用这种方式移动盒子的优点是不影响其他盒子(不占用位置的相对定位)
行内元素不适用translate
旋转
旋转的风扇
通过旋转制作下拉标识:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.qqq {width: 200px;height: 30px;background-color: aqua;position: relative;}.www {position: absolute;top: 8px;right: 15px;width: 10px;height: 10px;border-bottom: 1px solid #000;border-right: 1px solid #000;transform: rotate(45deg);}</style>
</head><body><div class="qqq"><div class="www"></div></div></body></html>
改变旋转中心点
transform-origin:x y;
x和y用空格隔开,xy默认转换中心点的元素是50% 50%
也可以给xy设置方位名词(left bottom top right center)
一个旋转小动画的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><style>div {margin-top: 300px;text-align: center;}.iii {overflow: hidden;width: 200px;height: 200px;border: 1px solid pink;/* background-color: aqua; */margin: 100px auto;}.iii::before {display: block;content: 'epi';width: 100%;height: 100%;background-color: blueviolet;transform: rotate(180deg);transform-origin: left bottom;transition: all .4s;}.iii:hover::before {transform: rotate(0deg);}</style>
</head><body><div class="iii"></div></body></html>
缩放
transform:scale(x,y);
xy之间有逗号
transform:scale(1,1);:宽高都放大一倍,等于没有放大
transform:scale(2,2);都放大两倍
transform:scale(2);都放大两倍
transform:scale(0.5,0.5);都缩小二分之一
最大的优点:可以设置转换最新缩放,默认以中心点缩放,且不影响其他盒子
数字不跟单位,负数会反向再放缩
优势:之前学的修改宽高是以top边为依据向下进行缩放
scale()可以自己设置缩放中心缩放,更适合一些自然的动画效果,不会影响其他盒子
这种动画效果也是有简写的
transform:translate() rotate()scale()...;
简写的顺序是会影响动画的效果的(如果写了translation的话)当我们同时具有位移和其他属性的时候,一定要先写位移
动画
动画的实现方式类似于函数的调用,需要你先写一个动画效果,再让目标对象调用这个函数,就可以实现动画效果
实现一加载页面,就出现的动画效果
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>@keyframes move {0% {transform: translateX(0px);}100% {transform: translateX(1000px);}}div {width: 400px;height: 400px;background-color: aqua;animation-name: move;animation-duration: 1s;}</style>
</head><body><div></div>
</body></html>
from to可以实现和0%、100%一样的效果
@keyframes move {from{transform: translateX(0px);}to {transform: translateX(1000px);}}
0%和100%表示动画的开头和结尾,也设置不同的百分数表示时间不同动画的不同阶段
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>@keyframes move {0% {transform: translate(0px);}25% {transform: translate(1000px, 0);}50% {transform: translate(1000px, 500px);}75% {transform: translate(0, 500PX);}100% {transform: translate(0px);}}div {margin: 20px 20px;width: 100px;height: 100px;background-color: aqua;animation-name: move;animation-duration: 10s;}</style>
</head><body><div></div>
</body></html>
实现一个小方块10s内环绕了一周的效果
动画的常用属性
鼠标经过盒子,动画效果暂停,拿开又恢复
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>@keyframes move {0% {transform: translate(0px);}25% {transform: translate(1000px, 0);}100% {transform: translate(1000px, 500px);}}div {margin: 20px 20px;width: 100px;height: 100px;background-color: aqua;animation-name: move;animation-duration: 10s;animation-fill-mode: forwards;}div:hover {animation-play-state: paused;}</style>
</head><body><div></div>
</body></html>
简写:
vscode里提供了当你忘记简写顺序的提示:
可以按这个写
animation: name duration timing-function delay iteration-count direction fill-mode;
前面两个属性是必写属性(名字和时间)
速度曲线值:
linear匀速
ease默认,低速开始加快再变慢
ease-in以低速开始
ease-out以低速结束
ease-in-out以低速开始和结束
steps指定了时间函数的间隔数量(步长)
steps可以决定分几步来完成动画
一个眼泛粉光的呆猫
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>.momo {position: relative;width: 1200px;height: 1200px;background: url(/初识css/微信图片_20241125113021.jpg) no-repeat;margin: 0 auto;}.eye {position: absolute;top: 430px;left: 360px;color: cyan;}.dotted {width: 10px;height: 10px;background-color: #ff9cc2;border-radius: 50%;}.eye2 {position: absolute;top: 435px;left: 500px;}.eye div[class^="pulse"] {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 10px;height: 10px;box-shadow: 0 0 12px #ff9cc2;border-radius: 50%;animation: pulse 1.2s linear infinite;}.eye div.pulse2 {animation-delay: 0.4s;}.eye div.pulse3 {animation-delay: 0.8s;}@keyframes pulse {0% {}70% {width: 40px;height: 40px;opacity: 1;}100% {width: 70px;height: 70px;opacity: 0;}} </style>
</head><body><div class="momo"><div class="eye"><div class="dotted"></div><div class="pulse1"></div><div class="pulse2"></div><div class="pulse3"></div></div><div class="eye eye2"><div class="dotted"></div><div class="pulse1"></div><div class="pulse2"></div><div class="pulse3"></div></div></div></body></html>
给元素添加多个动画
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body {position: relative;background-color: #ccc;}.bear {z-index: 3;position: absolute;top: 200px;width: 200px;height: 100px;background: url(bear.png) no-repeat;animation: bear 1s steps(8) infinite, move 3s forwards;}@keyframes bear {0% {background-position: 0 0;}100% {background-position: -1600px 0;}}@keyframes move {0% {left: 0;}100% {left: 50%;transform: translateX(-50%);}}.bg {width: 100%;position: relative;height: 336px;overflow: hidden;}.bg1,.bg2 {width: 100%;position: absolute;height: 336px;animation: bg 2s steps(8) infinite;}.bg1 {z-index: 2;background: url(bg1.png) no-repeat;}.bg2 {z-index: 1;background: url(bg2.png) no-repeat;}@keyframes bg {0% {background-position: 0 0;}100% {background-position: -1240px 0;}}</style>
</head><body><div class="bear"></div><div class="bg"><div class="bg2"></div><div class="bg1"></div></div></body></html>
3d转换
translform:translateX(100px):仅仅是在x轴上移动
translform:translateY(100px):仅仅是在y轴上移动
translform:translateZ(100px):仅仅是在z轴上移动
translform:translate3d(x,y,z):xyz分别指要移动的轴的方向和距离
z一般用像素控制,xy可以用百分比
3d转换常和透视结合
透视
透视(视距)的单位是像素
透视写到被观察元素的父盒子里面
也就是现实里一个东西在眼睛里的视觉效果在css里是靠teanslformZ+perspective结合形成的
z实现了真正的移动,透视实现了视觉的移动
3d旋转
translform:rotate(45deg):沿着x轴正方向旋转45度
translform:rotate(45deg):沿着y轴正方向旋转45度
translform:rotate(45deg):沿着z轴正方向旋转45度
translform:rotate(x,y,z。deg):沿着自定义的轴旋转(了解)
实现沿x轴旋转
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body {perspective: 500px;}.toushi {width: 200px;height: 200px;background-color: aquamarine;transition: all 1s;}.toushi:hover{transform:rotateX(180deg);}</style>
</head><body><div class="toushi">杀杀杀杀杀杀杀杀杀杀杀杀杀杀杀</div>
</body></html>
沿x轴,垂直屏幕向里是正方向,垂直屏幕向外是反方向
沿y轴旋转,正转是垂直屏幕向里,反转是向外
沿z轴,正转顺时针,反转逆时针
(分别是xyz)
3d呈现
保证盒子套盒子的时候,仍然可以实现3d效果
transform-style:preserve-3d;//子元素开启立体空间
代码写给父级,影响的是子盒子
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body {perspective: 500px;}.box:hover {transform: rotateY(60deg);}.box {transform-style: preserve-3d;position: relative;width: 200px;height: 200px;margin: 100px auto;}.box div {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color: pink;}.box div:last-child {background-color: aqua;transform: rotateX(60deg);}</style>
</head><body><div class="box"><div></div><div></div></div>
</body></html>
结合写一下
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style> body {perspective: 1000px;}section {position: relative;width: 216px;height: 216px;margin: 100px auto;transform-style: preserve-3d;animation: move 10s linear infinite;}section div {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url(../初识css/微信图片_20241125113021.jpg) no-repeat;background-size: contain;}@keyframes move {0% {transform: rotateY(0deg);}100% {transform: rotateY(360deg);}}section div:nth-child(1) {transform: translateZ(300px);}section div:nth-child(2) {transform: rotateY(60deg) translateZ(300px);}section div:nth-child(3) {transform: rotateY(-60deg) translateZ(300px);}section div:nth-child(4) {transform: rotateY(120deg) translateZ(300px);}section div:nth-child(5) {transform: rotateY(-120deg) translateZ(300px);}section div:nth-child(6) {transform: rotateY(-180deg) translateZ(300px);}</style>
</head><body><section><div></div><div></div><div></div><div></div><div></div><div></div></section></body></html>
浏览器私有前缀
-moz-,firefox浏览器的私有属性
-ms-,ie浏览器的私有属性
-webkit-代表safari、chrome私有属性
-o-代表oprea私有属性
相关文章:

css:转换
转换 移动 /* transform: translate(100px, 200px); */transform: translateX(100px);transform: translateY(100px); /*一个意思*/ 如果后面跟百分数的意思是移动盒子自身x/y方向长度的百分比,可以用作子绝父相控制盒子水平居中垂直居中 translate里的xy值是相对…...
状态管理与存储:Vuex 和 sessionStorage
1. sessionStorage 存储位置 sessionStorage 是浏览器提供的 Web Storage API 的一部分,用于在一个会话期间存储数据。数据保存在浏览器的 内存 中,而不是在硬盘上,且其生命周期仅限于当前浏览器标签页。数据在浏览器窗口或标签页关闭时会被…...
Redis和MySQL保持一致性的延迟双删(Delay Double Delete)策略
Redis和MySQL保持一致性的延迟双删(Delay Double Delete)策略,是一种在数据更新或删除时为了保证数据一致性而采取的方法。以下是延迟双删的过程和原理的详细解释: 一、过程 第一次删除缓存: 当需要更新数据库中的数据…...

快速理解微服务中Fegin的概念
一.由来 1.在传统的架构里面,我们是通过使用RestTemplate来访问其他的服务,但是这种方式就存在了一个很大的缺陷,也就是被调用方如果发生了服务的迁移(IP和端口发生了变化),那么调用方也需要同步的在代码里面进行修改,…...

新增工作台模块,任务中心支持一键重跑,MeterSphere开源持续测试工具v3.5版本发布
2024年11月28日,MeterSphere开源持续测试工具正式发布v3.5版本。 在这一版本中,MeterSphere新增工作台模块,工作台可以统一汇总系统数据,提升测试数据的可视化程度并增强对数据的分析能力,为管理者提供测试工作的全局…...

快速搭建一个博客!!!“Halo框架深度优化:搭建你的个性化博客或网站”
目录 引言: 一. 首先服务器上去下载一个docker 1.可以参考官方地址: 2. 通过宝塔来一键安装!!! 3.也可以自己下载!!! 1.卸载旧版 2.配置Docker的yum库 3.安装Docker 4.启动和…...

009 STM32 HAL库介绍
STM32 HAL库(Hardware Abstraction Layer)是STMicroelectronics为STM32系列微控制器提供的一套硬件抽象层库,它旨在简化STM32的开发过程,提高代码的可移植性和可维护性。HAL库通过提供一组统一的API接口,使得开发者无需…...

【微服务】 Eureka和Ribbon
一、Eureka 服务调用出现的问题:在远程调用另一个服务时,我们采用的解决办法是发送一次http请求,每次环境的变更会产生新的地址,所以采用硬编码会出现很多麻烦,并且为了应对并发问题,采用分布式部署&#…...

6.算法移植第六篇 YOLOV5/rknn生成可执行文件部署在RK3568上
接上一篇文章best-sim.rknn模型生成好后,我们要将其转换成可执行文件运行在RK3568上,这一步需要在rknpu上进行,在强调一遍!!rknpu的作用是可以直接生成在开发板上运行的程序 退出上一步的docker环境 exit1.复制best-…...

element的el-table表格标题用css自定义是否必填,用添加伪类的方式标红色*
element的el-table表格标题用css自定义是否必填添加伪类红色 * 效果图如下👇 el-table组件的html部分 css部分 /deep/.el-table__header-wrapper{.el-table__header{.has-gutter tr .el-table__cell:nth-of-type(3) .cell:before{content: *;color:red}.has-gutte…...
数据仓库: 8- 数据仓库性能优化
CSDN 目录展示 目录 8- 数据仓库性能优化8.1 查询优化8.1.1 索引优化8.1.2 分区和分桶8.1.3 使用缓存8.1.4 查询简化与重写8.1.5 聚合优化8.1.6 并行化和分布式计算8.1.7 基于列存储的优化8.1.8 表的分区和数据清洗8.1.9 查询提示 (Hints)8.1.10 自动调优工具 8.2 索引设计8.2…...
可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望
目录 可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望 可编程网络在分布式深度学习通信瓶颈控制中的应用与未来展望 在分布式深度学习领域,随着模型规模的不断扩大,训练过程中的通信开销已成为制约性能提升的关键因素。传统的分布式训练方法面临高通信延迟和带宽…...

【论文笔记】Tool Learning with Foundation Models 论文笔记
Tool Learning with Foundation Models 论文笔记 文章目录 Tool Learning with Foundation Models 论文笔记摘要背景:工作: 引言工具学习的发展本文工作(大纲&目录) 背景2.1 工具使用的认知起源2.2 工具分类:用户界…...
Springfox迁移到 Springdoc OpenAPI 3
将项目从 Springfox 迁移到 Springdoc OpenAPI 3 时,主要的工作是将原先使用的 Springfox 注解替换为 Springdoc OpenAPI 3 中的对应注解。虽然 Springdoc OpenAPI 3 基于 OpenAPI 3 规范,并且有一些不同的命名方式和设计理念,但大部分注解的…...

DIY-Tomcat part 3 实现对动态资源的请求
实现ServletRequest package connector;import javax.servlet.RequestDispatcher; import javax.servlet.ServletInputStream; import javax.servlet.ServletRequest; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.i…...
3.10 内核 BUG_ON() at xfs_vm_writepage() -> page_buffers()
目录 前言 问题分析 page buffers创建 page buffers丢失 Write-Protect Dirty Page w/o Buffers 问题解决 前言 这个问题发生在3.10.0-514.el7上,并且在RHEL的知识库中快速找到了对应的案例以及解决方案,但是,理解问题如何发生和解决…...

CrystalDiskInfo:硬盘健康监测工具简介和下载
原论坛给你更好的阅读体验:CrystalDiskInfo:硬盘健康监测工具简介和下载 | 波波论坛 引言 在日常使用电脑时,硬盘的健康状态对于系统的稳定性和数据的安全性至关重要。硬盘出现故障可能会导致数据丢失,严重时甚至会使整个系统无…...

Flink cdc同步增量数据timestamp字段相差八小时(分析|解决)不是粘贴复制的!
问题 我使用flink cdc同步mysql到mysql遇到了timestamp字段缺少八小时的问题。很少无语,flink ,cdc,debezium时区都设置了,没有任何效果! 分析 问题出现在mysql binlog身上!!! 因为默认mysql会使用UTC来…...

【docker】9. 镜像操作与实战
镜像操作案例 查找镜像 docker search busybox下载镜像 docker pull busybox:1.36.0查看镜像及列表存储位置 rootLAPTOP-H2EI4I6A:~# docker images busybox REPOSITORY TAG IMAGE ID CREATED SIZE busybox latest 517b897a6a83 2 months a…...
js-显示转换(强制转换)与隐式转换,==与===区别
1.显示转换(强制转换)与隐式转换 1.1显示转换 常见的JavaScript强制转换示例。 (1) 一元加号、一元减号- 值是布尔值,true将被转换为1,false将被转换为0。 let a "123"; let b a; // b的值为123,类型为Nu…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...

从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

C++ 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

Linux nano命令的基本使用
参考资料 GNU nanoを使いこなすnano基础 目录 一. 简介二. 文件打开2.1 普通方式打开文件2.2 只读方式打开文件 三. 文件查看3.1 打开文件时,显示行号3.2 翻页查看 四. 文件编辑4.1 Ctrl K 复制 和 Ctrl U 粘贴4.2 Alt/Esc U 撤回 五. 文件保存与退出5.1 Ctrl …...

android13 app的触摸问题定位分析流程
一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...
tomcat入门
1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效,稳定,易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...