CSS变换

CSS变换

根据 CSS 的变换的功能特性,它可以分为位移旋转缩放倾斜透视

也可以分成2D变换和3D变换,2D变换是二维平面上进行的,即 X 轴和 Y 轴。这些变换不涉及 Z 轴。3D 变换允许元素在三维空间中进行操作,这些变换涉及 X 、Y 和 Z 轴。这使得元素可以在视觉上远离或靠近观察者,创造出更加逼真的三维效果。

transform 属性包含多个变换函数时,它的顺序很重要,是从左向右应用的,从左到右乘以变换属性中的每个变换函数。

.element {transform: translate(60px, 60px) scale(1.5, 1.5) rotate(45deg);
}.element {transform: rotate(45deg) scale(1.5, 1.5) translate(60px, 60px);
}

transform 属性中的 translate(60px, 60px) 和 rotate(45deg) 两个变换函数互换了一下位置。最终呈现给用户的结果是完全不同的。

CSS 的变换函数有近 20 种不同的函数,它们分别用来帮助你对元素进行平移、旋转、缩放、倾斜和透视:

  • 平移translate() 、translateX() 、translateY() 、translateZ() 和 translate3d()

  • 旋转rotate() 、rotateX() 、rotateY() 、rotateZ() 和 rotate3d()

  • 缩放scale() 、scaleX() 、scaleY() 、scaleZ() 和 scale3d()

  • 倾斜(有时也称扭曲) :skew() 、skewX() 和 skewY() 。注意,它没有 3D 空间的概念,在 CSS 中并没有 skewZ() 和 skew3d() 两个函数

  • 透视perspective() ,它有对应的一个 CSS 属性,即 perspective

除了上面所列的 CSS 变换函数之外,还有两个矩阵函数,它们分别是 2D 矩阵 matrix() 和 3D 矩阵 matrix3d() 。

平移函数 translate()

  • x 轴移动语法 : transform: translateX(x);
  • y 轴移动语法 : transform: translateY(y);
  • x / y 轴移动语法 : transform: translate(x, y);
  • 沿 x 轴水平移动,正值向右移动,负值向左移动

  • 沿 y 轴上下移动,正值向下移动,负值向上移动

  • 可以是一个长度值(<length>)、百分比值(<percentage>),还可以是其他的数学函数表达式值

 注意:translate() 函数的参数是个百分比值时,该百分比值是相对于元素自身的大小计算,而不是父容器尺寸计算,即 x 轴方向相对于元素的 width 计算,y 轴方向相对于元素的 height 计算。

/* 只沿 x 轴移动元素 */
.element {transform: translateX(var(--positionX));/* 等同于 */transform: translate(var(--positionX), 0);
}/* 只沿 y 轴移动元素*/
.element {transform: translateY(var(--positionY));/* 等同于 */transform: translate(0, var(--positionY));
}

 缩放函数 scale()

  • scale() 函数的值为 1 时,元素将保持原样不变,既不放大,也不缩小

  • scale() 函数的值为 0 时,元素将缩小到不可见

  • scale() 函数的值大于 1 时,元素将会放大

  • scale() 函数的值小于 1 时,元素将会缩小

  • scale() 函数可以被视为 scaleX() 和 scaleY() 的简写函数

  • scaleX() 函数:用于指定元素在水平方向上的缩放倍数,而垂直方向保持不变

  • scaleY() 函数:用于指定元素在垂直方向上的缩放倍数,而水平方向保持不变

注意当 scale() 函数传递两个值时,只要其中有一个值为 0 ,元素都会被缩小到不可见。另外,当两个值相同时,第二个参数值(y 轴)可以省略不写 。

scale3d() 函数允许同时指定三个方向(xy 和 z)上的缩放倍数,用于三维变换。

  • x:表示水平方向的缩放倍数。

  • y:表示垂直方向的缩放倍数。

  • z:表示在Z轴上的缩放倍数。

    电视开关动画实例: 

    @layer animation {@keyframes closeTV {from {transform: scale(1, 1);filter: brightness(100%);}to {transform: scale(0.5, 0);filter: brightness(800%);}}.switch:has(:checked) ~ .video > video {animation: closeTV 0.28s ease-out both;}
    }
    

    旋转函数 rotate()

  • rotateX() 函数 :元素绕 x 轴进行 3D 旋转

  • rotateY() 函数:元素绕 y 轴进行 3D 旋转

  • rotateZ() 函数:元素绕 z 轴进行 3D 旋转

  • rotate3d() 函数:元素在三维空间中绕指定轴进行旋转

如果 rotate() 函数使用正角度值,则元素进行顺时针旋转;反之元素进行逆时针旋转

rotate() 函数的值除了正负角度值之外,你还可以使用其他描述角度值的单位,比如:

  • 角度值( deg  :一个完整的圆是 360deg

  • 梯度值( grad  :一个完整的圆是 400grad

  • 弧度值( rad  :一个完整的圆是  弧度

  • 圈( turn  :一个完整的圆是 1turn

1 度(deg)  = 1.11111 梯度(grad)
1 度(deg)  = π ÷ 180 弧度(rad)
1 圈(turn) = 360 度(deg)

rotateZ() 和 rotate() 的视觉效果上是一样的

两个 3D 变换函数,可以由单个轴的变换函数组合而成,即:

translate3d(tx, ty, tz) = translateX(tx) translateY(ty) translateZ(tz)
scale3d(sx, sy, sz) = scaleX(sx) scaleY(sy) scaleZ(sz) 

倾斜函数 skew()

 skew()通过沿水平方向 x 轴和(或)垂直方向 y 轴倾斜元素来扭曲元素,从而呈现出倾斜的外观:

  • skew() :接受两个参数,第一个是水平方向倾斜元素的角度,第二个是垂直方向倾斜元素的角度,如果第二个参数省略不写,将表示垂直方向不做任何角度的倾斜,即为 0

  • skewX() :使元素沿着水平方向按指定的角度倾斜元素

  • skewY() :使元素沿着垂直方向按指定的角度倾斜元素

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

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

相关文章

大学英语ab级题搜题软件?分享7个支持答案和解析的工具 #笔记#其他

合理利用学习辅助工具和资料&#xff0c;可以帮助大学生更好地组织学习内容、掌握知识点和提升学术水平。 1.智能翻译官 这是一款多语言在线翻译神器&#xff0c;除了最基础的英语以外&#xff0c;还支持日语、德语、俄语、法语等几十种语言文本翻译和拍照翻译&#xff0c;并…

php代码执行计划任务dos实现方式和宝塔面板实现方式

dos php 计划任务 echo off :loop echo 这是一个死循环 echo This is an infinite loop. php think gpt php think ai timeout /t 2 goto loop 宝塔面板 php 计划任务 #!/bin/bash PATH/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH ste…

关于Ansible模块 ⑤

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》与《关于Ansible的模块 ③》之后&#xff0c;继续学习ansible常用模块之…

如何利用Flutter将应用成功上架至iOS平台:详细指南

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…

医院要不要安装医疗设备漏费控费管理系统

19339904493&#xff08;康溪&#xff09; 不知道大家有没有去医院做过检查&#xff0c;比如说做B超、彩超、多普勒、胃肠镜、心电、脑电&#xff0c;核磁、CT、DR、X光、钼靶、生化分析仪、血球等。你们可能不知道&#xff0c;在做检查、检验的时候还会存在一个漏洞。医院的存…

HarmonyOS NEXT应用开发之@Link装饰器:父子双向同步

子组件中被Link装饰的变量与其父组件中对应的数据源建立双向数据绑定。 说明&#xff1a; 从API version 9开始&#xff0c;该装饰器支持在ArkTS卡片中使用。 概述 Link装饰的变量与其父组件中的数据源共享相同的值。 限制条件 Link装饰器不能在Entry装饰的自定义组件中使用…

Java常用API_时间

一&#xff0c;JDK7时间&#xff1a; 1.Date&#xff1a; 我先通过一段代码简单展示一下它的几个方法及功能 代码&#xff1a; 这里要注意的是 时间原点&#xff1a;1970年1月1日 00:00:00 中国的时间原点&#xff1a;由于中国处在东八区&#xff0c;时间原点要晚上8小时&…

MySQL 主从 AUTO_INCREMENT 不一致问题分析

本文介绍了 MySQL5.7 中常见的replace into 操作造成的主从auto_increment不一致现象&#xff0c;一旦触发了主从切换&#xff0c;业务的正常插入操作会触发主键冲突的报错提示。 一、问题描述 1.1 问题现象 在 MySQL 5.7 版本中&#xff0c;REPLACE INTO 操作在表存在自增主键…

nssm 工具把asp.net core mvc变成 windows服务,使用nginx反向代理访问

nssm工具的作用&#xff1a;把项目部署成Windows服务&#xff0c;可以在系统后台运行 1.创建一个asp.net core mvc的项目weblication1 asp.net core mvc项目要成为windows服务需要安装下面的nuget包 <ItemGroup><PackageReference Include"Microsoft.Extension…

2_7.Linux中的无人值守安装脚本kickstart

## 一.kickstart自动安装脚本的作用 ## #在企业中安装多台操作系统时面临的问题# 当安装Linux操作系统时&#xff0c;安装过程会需要回答很多关于设定的问题 这些问题必须手动选择&#xff0c;否则无法进行安装 当只安装1台Linux系统&#xff0c;手动选择设定工作量比较轻松 当…

『VUE』14. Style绑定(详细图文注释)

目录 行内css动态样式对象引入数组引入代码演示总结 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 欢迎关注 『VUE』 专栏&#xff0c;持续更新中 大体上和前面的class绑定是一致的,只是class换成了style. 请注意,实际开发中,我们一般建议用class,因为style的权重太高了,用sty…

边缘计算采集网关如何助力制造企业解决数采问题-天拓四方

一、企业背景 某大型制造企业&#xff0c;位于国内某经济发达的工业园区内&#xff0c;拥有多个生产线和智能化设备&#xff0c;致力于提高生产效率、降低运营成本。随着企业规模的扩大和生产自动化的推进&#xff0c;该企业面临着海量数据处理、实时响应和网络安全等多重挑战…

ElementUI使用问题记录:设置路由+iconfont图标+自定义表单验证

一、关于导航怎么设置路由 1、在el-menu这个标签的属性中添加 router ,官方文档的解释是&#xff1a;启用vue-router 这种模式 2、在el-menu-item标签中的index属性直接书写路由&#xff0c;就可以实现正常vue-router了 3、在el-menu-item标签中书写路由属性&#xff1a;:route…

【C++进阶】哈希的应用之位图和布隆过滤器

位图和布隆过滤器 一&#xff0c;位图1. 实现2. 位图的应用 二&#xff0c;布隆过滤器1. 使用场景2. 模拟实现 三&#xff0c;海量数据面试题哈希切分 四&#xff0c;总结 这一节我们来看哈希的应用 一&#xff0c;位图 先来看一个面试题 这里如果用unordered_set来解决&…

C++11可变模板参数:海纳百川的Args

目录 一、可变模板参数的概念及功能 1.1Args的概念与使用 1.2获取args中的参数 二、emplace可变模板参数的实际应用 三、逗号表达式展开参数包 一、可变模板参数的概念及功能 1.1Args的概念与使用 C11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板…

二维码门楼牌管理应用平台建设:物业缴费的数字化革新

文章目录 前言一、物业缴费的数字化革新二、在线缴费功能的实现三、智能化缴费管理的优势四、面临的挑战与未来展望五、结语 前言 随着科技的不断进步&#xff0c;二维码门楼牌管理应用平台已成为物业管理的新趋势。在这样一个平台上&#xff0c;物业缴费的数字化革新不仅提高…

【计算机网络】TCP协议可靠传输保证(序列号/确认应答机制、超时重传、最长消息长度、滑动窗口控制、拥塞控制)

TCP协议可靠传输 1.序列号确认应答机制2.超时重传3.最长消息长度4.滑动窗口控制5.拥塞控制 1.序列号确认应答机制 这个机制类似于问答的形式。比如在课堂上老师会问你“明白了吗&#xff1f;”&#xff0c;假如你没有隔一段时间没有回应或者你说不明白&#xff0c;那么老师就会…

橘子学JDK之JMH-03(@State)

这里我们来搞官方的第三个案例&#xff0c;引入新的注解State。 一、案例三代码 package com.levi;/*** Description:* Author: Levi* Date: 2024/4/8 18:44*/import org.openjdk.jmh.annotations.*; import org.openjdk.jmh.runner.Runner; import org.openjdk.jmh.runner.R…

【YOLOV8】项目目录重点部分介绍和性能评估指标

目录 一 项目目录重点部分介绍 二 性能评估指标 一 项目目录重点部分介绍 1 ultralytics

windows环境变量滥用维权/提权

0x01 前提 通过滥用系统的路径搜索机制来欺骗高权限用户执行看似合法的系统二进制文件&#xff0c;实际上是恶意的代码或程序&#xff0c;从而导致升权限并执行恶意操作。 攻击的关键前提&#xff1a; 路径搜索顺序&#xff1a; 当用户在命令行或程序中执行一个命令时&#x…