端盒日记Day03

vocal!!拖了这么久我才来写,我好Dior。刚刚吃了四根冰淇淋我好Dior。。。

CSS

平面转换——transform

作用:为元素添加动态效果,一般与过渡配合使用

概念:改变盒子在平面内的形态(位移、旋转、缩放、倾斜)

平移——translate()

属性:transform: translate( X轴移动的距离, Y轴移动的距离)

取值:px、%(参照自身盒子计算结果) 正负均可

技巧:tanslate() 只写一个值,表示沿着X轴移动

           单独设置X或Y轴移动距离:translateX() 或 translateY()

平移实现居中效果

  • 方法一

position: absolute;

left: 50%;

top: 50%;

margin-left: -100px;

margin-top: -50px;

width: 200px;

height: 100px;

  • 方法二:百分比参照自身盒子尺寸计算结果

postion: absolute;

left: 50%;

top: 50%;

transform: translate(-50%, -50%) 

 旋转——rotate()

属性:transform: rotate(旋转角度)

旋转角度单位:deg 正顺逆负

改变转换原点:

正常情况下,转换原点是盒子中心点

属性:transform-origin: 水平原点 垂直原点位置

取值:方位名词(left, top, right, bottom, center)、px、%

多重转换

以第一种转换形态的坐标轴为准

技巧:先平移后旋转 (因为这样它的坐标轴才不会变,才可以达到轮胎那样滚着走的效果

属性:transform: translate() rotate() // 要写在一起,因为它是复合属性 具有层叠性

缩放——scale()

属性:transform: scale(缩放倍数)

           transform(X轴缩放倍数, Y轴缩放倍数)

技巧:通常只为scale设置一个值,表X轴Y轴等比例缩放

          取值大于1表放大,取值小于1表缩小

倾斜——skew()

属性:transform: skew(xxdeg) 正左右负

渐变———background-image
1. 线性渐变——linear-gradient

         background-image: linear-gradient(

                渐变方向,

                颜色1 终点位置,

                颜色2 终点位置,

                ...

        };

取值:

渐变方向:to 方位名词 角度度数

终点位置:%

2. 径向渐变——radial-gradient

作用:给按钮添加高光效果

属性:background-image: radial-gradient(

                        半径 at 圆心位置,

                        颜色1 终点位置,

                );

取值:

半径可以是两条,则为椭圆

圆心位置取值:px、%、方位名词

空间转换(3D转换 ——transform

Z轴位置与视线方向相同

属性:transform

平移

transform: translate3d(x, y, z)

transform: translateX()  transform: translateY()  transform: translateZ()

取值:px、%(正负均可

视距 perspective

作用:制定了观察者与Z=0平面的距离,为元素添加透视效果

透视效果:近大远小 近实远虚

属性:perspective: 视距;

添加给父级,取值范围:800-1200

旋转

transform: rotateZ(值) 跟平面旋转效果一样

transform: rotateX(值) 正:往里走 负:电脑关上那样

transform: rotateY(值) 正:从左往右 负:从右往左走

左手法则——根据旋转方向确定取值正负

        左手握住旋转轴,拇指指向正值方向,其他四个手指弯曲方向为正值方向

自定义旋转轴位置及旋转角度

rotate3d(x y z 角度度数)

x y z取值为0-1之间的数字

立体呈现——transform-style

作用: 设置元素的子元素是位于3D空间中还是平面中

属性名:transform-style

属性值:

flat: 子级处于子平面中

preserved-3d: 子级处于3D空间中

呈现立体图形——步骤
  1. 父元素添加transform-style: preserved-3d;
       // 父级就会变成一个立方体,子级位于立方体空间
  2. 子级定位
       // 子级是立方体的每个面,所以子级要基于父级去定位 子绝父相
  3. 调整盒子的位置(位移或旋转)|
       // 子级一前一后,产生立体空间(translate)
       // 可以用hover{ rotatey() } 和 .cube{ transition: }去体验一下
缩放

属性:transform: scale3d(x, y, z)

           transform: scaleX(); transform: scaleY(); transform: scaleZ()

动画——animation 

过渡:实现两个状态间的变化过程 (transition

动画:实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停

实现步骤

        1.定义动画

  • 两个状态变化

@keyframes 动画名称{

        form { 当前状态CSS} //如果动画开始状态样式跟盒子默认样式相同 可省略开始状态代码

        to { 当前状态CSS }

}

  • 多个状态

@keyframe 动画名称 {

        0% { } //如果动画开始状态样式跟盒子默认样式相同 可省略开始状态代码

        10% { }

         .....

        100% { }

}

// 百分比的含义:这个状态占动画时长的百分比              

                

        2. 使用动画

animation: 动画名称 动画花费时长 速度曲线 延迟时间 重复次数 动画方向 执行完毕时的状态

 !! 注意 !! :

  1. 动画名称和动画时长必须写
  2. 取值不分先后顺序
  3. 如果有两个时间值,第一个表达动画时长 第二个表延迟时间

七个属性:

  1. animation-name: 动画名称
  2. animation-duration: 动画时长
  3. animation-delay: 延迟时长
  4. animation-fill-mode: 动画执行完毕时的状态 
        forwards: 最后一帧
        backwards: 第一帧
  5. animation-timing-function: 速度曲线
        steps() 逐帧动画
  6. animation-iteration-count: 重复次数
         infinite 无限循环
  7. animation-direction: 动画执行方向
         alternation 反方向
  8. animation-play-state: 暂停动画
         pause为暂停 通常配合hover
 无缝动画原理

复制开头图片到结尾位置(图片宽度 = 区域宽度) 

 走马灯案例

精灵动画  

  核心原理:1. steps() 逐帧动画        2. CSS精灵图

  制作步骤:1. 准备显示区域:盒子尺寸与一张精灵小图尺寸相同

                     2. 定义动画:移动背景图 移动距离=精灵图宽度

                     3. 使用动画:step(N) N与精灵小图的个数相同

多组动画

        animation:

                动画1,

                动画2,

                ...

                动画N

        ;   

JS
正则表达式

    用于匹配字符串中字符的组合模式,在JS中,也是对象。通常用来查找替换那些符合正则表达式的文本。

语法:

        1.定于正则表达式语法

const 变量名 = /表达式/

 其中/ / 是正则表达式字面量

        2.判断是否有符合规则的字符串

regObj.test(被检测的字符串)

test()方法:用来查看正则表达式与指定的字符串是否匹配

        3.检索(查找)符合规则的字符串

regObj.exec(被检测的字符串)

exec()方法:在一个指定的字符串中执行一个搜索匹配

元字符

普通字符:仅仅只能够描述它们本身 (abcdefg...xyz

元字符:具有特殊含义 ( [a-z]     

分类:

  • 边界符:表位置、开头和结尾 必须用什么开头,用什么结尾
  • 量词:表重复次数
  • 字符类:比如 \d 表 0-9 
1.边界符 

        正则表达式中的边界符(位置符)用来提示字符所处的位置,主要有两个字符

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一文学会Semaphore(信号量)

// 空出来椅子 semaphore.release(count); } } catch (Exception e){ } } }; t.setName("Thread --> " i); t.start(); } } 程序将一直执行下去,不会漏单,也不会出现椅子占用数量大于20的情况。 AQS基础 Semaphore是一种共享锁&#xf…

js的qq换肤效果

文章目录 1. 演示效果2. 分析思路3. 代码实现3.1. 方式一3.2. 方式二3.3. 整体代码 1. 演示效果 2. 分析思路 先编写样式,弄好布局和排版。遍历这个集合,对每个图片元素(img)添加一个点击事件监听器。可以使用 for 或者 forEach …

自动化运维工具

Ansible批处理工具 Ansible批处理工具功能图 Ansible项目架构图 一、Ansible介绍 1、Ansible简介 简介 ansible是一种自动化运维工具,基于paramiko模块开发,实现了批量系统配置、批量程序部署、批量运行命令功能。 ansible是基于模块工作的&#xff0…

【C++11】右值引用 + 移动语义 + 完美转发(重点)

👦个人主页:Weraphael ✍🏻作者简介:目前学习C和算法 ✈️专栏:C航路 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论💬 点赞&#x1…

C++学习笔记(七)

一、string字符串容器 #include <iostream>using namespace std;int main() {string name;name "hello";string str(10,w);cout << str << endl;name "hello world";string sub1(name,0,5);cout << sub1 << endl;4string…

第四百四十六回

文章目录 1. 概念介绍2. 使用方法3. 示例代码4. 经验与总结4.1 经验分享4.2 内容总结 我们在上一章回中介绍了"overlay_tooltip简介"相关的内容&#xff0c;本章回中将再谈flutter_launcher_icons包.闲话休提&#xff0c;让我们一起Talk Flutter吧。 1. 概念介绍 我…

python练习三

模式A num int(input("请输入模式A的层数&#xff1a;")) for i in range(1, num 1):# 画数字for j in range(1, i 1):print(str(j) "\t", end"")print() 模式B num int(input("请输入模式B的层数&#xff1a;")) for i in ran…

Pandas中的 .map 方法

1. Pandas中的 .map 方法 在Pandas中&#xff0c;.map 方法通常用于Series对象&#xff0c;它允许你根据一个字典或者函数对Series中的每个元素进行转换。 import pandas as pd # 创建一个简单的DataFrame df pd.DataFrame({ Name: [Alice, Bob, Charlie, Alice, Bob, C…

redis-Hash

一&#xff0c;应用场景 Redis hash 是一个string类型的field和value的映射表&#xff0c;hash特别适合用于存储对象。Set就是一种简化的Hash,只变动key,而value使用默认值填充。 可以将一个Hash表作为一个对象进行存储&#xff0c;表中存放对象的信息。 二&#xff0c;命令 H…

Ubuntu18.04安装Node.js教程

在Ubuntu 18.04上安装Node并部署环境变量的过程可以分为以下几个步骤&#xff1a; 安装Node.js 您可以选择从Ubuntu的软件源直接安装Node.js&#xff0c;或者使用NodeSource提供的仓库安装特定版本的Node.js。 从Ubuntu软件源安装 运行以下命令来更新软件包列表并安装Node.js&…

【stm32】SPI通信简介

SPI通信 SPI简介部分 所有SPI设备的SCK、MOSI、MISO分别连在一起 从主机引出多根SS选择线&#xff0c;分别接到每个从机的SS输入端&#xff0c;主机的SS线都是输出&#xff0c;从机的SS线都是输入&#xff0c;SS线 是低电平有效&#xff0c;同一时间主机只能选择一个从机 只能…

LeetCode 1780. 判断一个数字是否可以表示成三的幂的和

解题思路 该题目可以等价于求三进制的数&#xff0c;把>1的数 return false,剩下的 return true. 相关代码 class Solution {public boolean checkPowersOfThree(int n) {//该题目可以等价成不断地除以3&#xff0c;当余数>1时&#xff0c;则为falsewhile(n>3){ …

cmake学习笔记1

基础概念 CMake是什么&#xff1f; CMake是一个元构建系统(meta build-system),用于生产其他构建系统文件&#xff08;如Makefile或Ninja&#xff09;。 基础操作方式 CMake使用一个CMakeLists.txt文件描述配置&#xff0c;然后使用cmake驱动这个文件生成对应构建系统文件。…

websokcet服务端实现

一/websokcet服务端实现 步骤一&#xff1a; springboot底层帮我们自动配置了websokcet&#xff0c;引入maven依赖 1 2 3 4 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-websocket</arti…

AI图片智能选区抠像解决方案

高质量的图片处理往往依赖于繁琐的手动操作&#xff0c;耗费大量时间与精力。美摄科技推出了一款革命性的AI图片智能选区抠像解决方案&#xff0c;旨在帮助企业轻松实现图片的高效处理&#xff0c;提升内容创作效率与质量。 美摄科技的AI图片智能选区抠像解决方案&#xff0c;…

AFCI 应用笔记二之数据采集

1. 简介 基于监督学习的神经网络算法需要大量数据作为输入&#xff0c;模型完全由数据驱动&#xff0c;其数据质量是算法有效的必要条件&#xff0c;所以如何高效的采集到数据&#xff0c;以及正确的标注或分析是极其重要的&#xff0c;如果第一步有问题&#xff0c;后续的所有…

C++搭建深度学习的推理框架

我们的目的是:借助C++搭建一个类似于pytorch,tensorflow的深度学习框架,对标pytorch,tensorflow实现对应的功能。由于本人能力有限,下面本人将借助C++搭建一个简单的全连接神经网络,并且尝试解释里面的算子定义和计算图构建。 算子定义 回顾pytorch里面搭建的全连接神经网…

ESP32S3网络编程学习笔记(1)—— Wi-Fi扫描实验

前言 &#xff08;1&#xff09;如果有嵌入式企业需要招聘湖南区域日常实习生&#xff0c;任何区域的暑假Linux驱动/单片机/RTOS的实习岗位&#xff0c;可C站直接私聊&#xff0c;或者邮件&#xff1a;zhangyixu02gmail.com&#xff0c;此消息至2025年1月1日前均有效 &#xff…

基于DPDK的VPP 插件demo代码

VPP的插件编写&#xff0c; 首先要把VPP 工程下载下来&#xff0c; 编译通过。 然后按照example程序的套中来编写插件。 还有一个前提&#xff0c; 就是测试机上已经具备了DPDK 已经可用版本。 1. 下载VPP。 可以从github上下载VPP的指定版本的zip包&#xff0c; 也可以用…

2024年租用阿里云服务器多少钱一年?连夜整理分享

阿里云服务器租用价格表2024年最新&#xff0c;云服务器ECS经济型e实例2核2G、3M固定带宽99元一年&#xff0c;轻量应用服务器2核2G3M带宽轻量服务器一年61元&#xff0c;ECS u1服务器2核4G5M固定带宽199元一年&#xff0c;2核4G4M带宽轻量服务器一年165元12个月&#xff0c;2核…