跟着pink老师前端入门教程-day16

二十七、CSS3进阶

1、CSS3 2D转换

转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果

转换(transform)可以简单理解为变形

移动:translate;旋转:rotate;缩放:scale

1.1 二维坐标系

2D转换是改变标签在二维平面上的位置和形状的一种技术

1.2 2D 转换之移动 translate

2D移动是2D转换里面的一种功能,可以改变元素在页面中的位置,类似定位

语法:

transform: translate(x,y); 或者分开写
transform: translateX(n);
transform: translateY(n);

重点:

定义 2D 转换中的移动,沿着 X 和 Y 轴移动元素

translate最大的优点:不会影响到其他元素的位置

    <style>
        /* 移动盒子的位置:定位、盒子的外边距、2d转换移动 */
        div {
            width: 200px;
            height: 200px;
            background-color: saddlebrown;
            /* 1、 transform: translate(x,y); x就是x轴上移动位置,y就是y轴上移动位置,中间用逗号分割 */
            /* transform: translate(100px, 100px); */
            /* 2、只移动x坐标 */
            /* transform: translate(100px, 0); */
            /* transform: translateX(100px); */
            /* 3、只移动y坐标 */
            /* transform: translate(0,100px); */
            /* transform: translateY(100px); */
        }

        /* div:first-child {
            transform: translate(100px, 100px);
        } */

        div:last-child {
            background-color: salmon;
        }
    </style>
</head>

<body>
    <div></div>
    <div></div>
</body>

translate中的百分比单位是相对于自身元素的 translate:(50%,50%);

对行内标签没有效果

    <style>
        .three {
            position: relative;
            width: 500px;
            height: 500px;
            background-color: sandybrown;
        }

        p {
            position: absolute;
            top: 50%;
            left: 50%;
            width: 200px;
            height: 200px;
            background-color: aqua;
            /* margin-top: -100px;
            margin-left: -100px; */
            /* translate(-50%, -50%) 盒子往上走自己高度的一半 */
            transform: translate(-50%, -50%);
        }

        span {
            /* translate 对于行内元素是无效的 */
            transform: translate(300px, 300px);
        }
    </style>
</head>

<body>
    <div class="three">
        <p></p>
    </div>
    <span>123</span>
</body>
​

1.3 2D转换值旋转rotate

2D旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转。

语法:transform:rotate(度数)

重点:

rotate里面跟度数, 单位是 deg 比如 rotate(45deg)

角度为正时,顺时针,负时,为逆时针

默认旋转的中心点是元素的中心点

    <style>
        img {
            width: 150px;
            /* rotate(45deg) 顺时针45度 */
            transform: rotate(45deg);
            border-radius: 50%;
            border: 5px solid palegreen;
            /* 过渡写到本身上,谁做动画给谁加 */
            transition: all 1.0s;
        }

        img:hover {
            transform: rotate(360deg);
        }
    </style>
</head>

<body>
    <img src="img/oldman.jpg" alt="">
</body>

1.4 2D转换中心点transform-origin

语法:transform-origin: x y;

重点:

注意后面的参数 x 和 y 用空格隔开

x y 默认转换的中心点是元素的中心点 (50% 50%)

还可以给x y 设置 像素 或者 方位名词 (top bottom left right center)

    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: darkblue;
            margin: 100px auto;
            transition: all 0.1s;
            /* 1.可以跟方位名词 */
            transform-origin: left bottom;
            /* 2. 默认的是50% 50% 等价于center center*/
            /* 3. 可以是px,px */
        }

        div:hover {
            transform: rotate(360deg);
        }
    </style>
</head>

<body>
    <div></div>
</body>

1.5 2D 转换之缩放scale

缩放,顾名思义,可以放大和缩小。只要给元素添加上了这个属性就能控制他放大还是缩小

语法:transform:scale(x,y);

注意:

注意其中的x和y用逗号分隔

transform:scale(1,1) :宽和高都放大一倍,相对于没有放大

transform:scale(2,2) :宽和高都放大了2倍

transform:scale(2) :只写一个参数,第二个参数则和第一个参数一样,相当于 scale(2,2)

transform:scale(0.5,0.5):缩小

sacle缩放最大的优势:可以设置转换中心点缩放,默认以中心点缩放的,而且不影响其他盒子

    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: salmon;
            margin: 100px auto;
            /* transform-origin: left bottom; */
        }

        div:hover {
            /* 1. 里面写的数字不跟单位,就是倍数的意思 1就是1倍 2就是2倍 */
            /* transform:scale(x,y) */
            /* transform: scale(2, 2); */
            /* 2、修改了宽度为原来的2倍 高度不变 */
            /* transform: scale(2, 1); */
            /* 3、等比例缩放 同时修改宽度和高度, */
            /* transform: scale(2); */
            /* 4、小于1就是缩放 */
            transform: scale(0.2);
            /* scale 的优势之处:可以设置转换中心点缩放 */
            transform: scale(2);

        }
    </style>
</head>

<body>
    <div></div>
</body>

1 .6 2D 转换综合写法

注意:

1. 同时使用多个转换,其格式为:transform: translate() rotate() scale() ...等,

2. 其顺序会影转换的效果。(先旋转会改变坐标轴方向)

3. 当我们同时有位移和其他属性的时候,记得要将位移放到最前

    <title>2D 转换综合写法</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: saddlebrown;
            transition: all .5s;
        }

        /* 用空格隔开 */
        div:hover {
            /* transform: translate(150px, 50px) rotate(45deg); */
            /* 同时有位移和其他属性,需要把位移放到最前面 */
            transform: translate(150px, 50px) rotate(180deg) scale(1.2);
        }
    </style>
</head>

<body>
    <div></div>
</body>

1.7 2D 转换总结

转换transform 我们简单理解就是变形 有2D 和 3D 之分

我们暂且学了三个 分别是 位移 旋转 和 缩放

2D 移动 translate(x, y) 最大的优势是不影响其他盒子, 里面参数用%,是相对于自身宽度和高度来计算的

可以分开写比如 translateX(x) 和 translateY(y)

2D 旋转 rotate(度数) 可以实现旋转元素 度数的单位是deg

2D 缩放 sacle(x,y) 里面参数是数字 不跟单位 可以是小数 最大的优势 不影响其他盒子

设置转换中心点 transform-origin : x y; 参数可以百分比、像素或者是方位名词

当我们进行综合写法,同时有位移和其他属性的时候,记得要将位移放到最前

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LVGL源码移植】

LVGL源码移植 ■ LVGL源码移植一&#xff1a;下载LVGL源码二&#xff1a;修改LVGL文件夹1: 将这5个文件&#xff0c;复制到一个新的文件夹2: 简化文件&#xff0c;减少内存消耗&#xff08;去除不必要的文件&#xff09;3: 为了规范化&#xff0c;我们将下列文件进行重命名 三&…

nodejs+vue+ElementUi宠物领养救助网站0w6wc

宠物领养救助平台采用B/S架构&#xff0c;数据库是MySQL。网站的搭建与开发采用了先进的nodejs进行编写&#xff0c;使用了vue框架。该系统从两个对象&#xff1a;由管理员和用户来对系统进行设计构建。主要功能包括&#xff1a;个人信息修改&#xff0c;对用户、宠物类别、宠物…

七、并发工具(上)

一、自定义线程池 1&#xff09;背景&#xff1a; 在 QPS 量比较高的情况下&#xff0c;我们不可能说所有的访问都创建一个线程执行&#xff0c;这会导致内存占用过高&#xff0c;甚至有可能出现 out of memory另外也要考虑 cpu 核数&#xff0c;如果请求超过了cpu核数&#…

【多个SpringBoot模块项目如何变成聚合项目】

【前言】 项目虽然是Eureka、OpenFeign 进行服务注册和服务调用&#xff0c;但是每个模块都是一个单独的SpringBoot&#xff0c;启动每个模块都需要单独启动一个idea,觉得这个过于繁琐&#xff0c;现在想把项目变成一个聚合项目&#xff0c;只需要启动一个idea即可。 【过程】…

09. 异常处理

目录 1、前言 2、常见的异常 3、异常处理try...except...finally 4、异常信息解读 5、raise 6、自定义异常 7、小结 1、前言 在编程中&#xff0c;异常&#xff08;Exception&#xff09;是程序在运行期间检测到的错误或异常状况。当程序执行过程中发生了一些无法继续执…

vue前端html导出pdf

package.json中添加依赖 调用方&#xff1a; import htmlToPdf from ../../../utils/file/htmlToPdf.js// 下载方法&#xff0c;pdfDownloadDpi为onClickDownLoad() {htmlToPdf.getPdf(标题1, jsfgyzcpgxmShow, this.pdfDownloadDpi)}htmlToPdf.js // 页面导出为pdf格式 imp…

Backtrader 文档学习- Broker - Cheat-On-Open

Backtrader 文档学习- Broker - Cheat-On-Open 1.概述 V1.9.44.116增加了Cheat On Open的支持。对于全押的人来说&#xff0c;这似乎是一个必需的功能&#xff0c;用bar的收盘价后进行计算&#xff0c;希望与开盘价相匹配。 当开盘价差距&#xff08;上涨或下跌&#xff0c;取…

杂题——试题-算法训练-P0602

分析&#xff1a; 把要重排序的数字转成数组对数组进行排序&#xff0c;从小到大排序数组转成字符串&#xff0c;字符串转成数字&#xff0c;得到最小数再把最小数的字符串反转&#xff0c;得到最大数注意&#xff1a; 在java语言中&#xff0c;如果使用Arrays.toString(digits…

DevOps系列文章之 Git命令:过滤日志

使用git log命令查找特定提交历史的高级技巧。其中的一些技巧配合格式化日志命令使用有奇效。 按照数量过滤 使用git log命令时最基本的过滤方式就是按照可以显示的日志条数进行过滤。如果你只对最近几次提交感兴趣&#xff0c;这会节省在页面上查看所有提交的麻烦。 git lo…

成熟的汽车制造供应商协同平台 要具备哪些功能特性?

汽车行业是一个产业链长且“重”的行业&#xff0c;整个业务流程包括了研发、设计、采购、库存、生产、销售、售后等一系列环节&#xff0c;在每一个环节都涉及到很多信息交换的需求。对内要保证研发、采购、营销等业务环节信息流通高效安全&#xff0c;对外要与上、下游合作伙…

springboot-前后端分离——第一篇

本篇主要对前后端分离的一些基础知识进行总结&#xff0c;主要对HTTP请求协议、HTTP响应格式、Http协议解析等进行总结。重点在于简单了解前端如何向服务端发送请求&#xff0c;服务端如何接收请求并返回响应结果。 一、简单案例&#xff1a; 首先创建一个springboot项目&…

使用pygame建立一个简单的使用键盘方向键移动的方块小游戏

import pygame import sys# 初始化pygame pygame.init()# 设置窗口大小 screen_size (640, 480) # 创建窗口 screen pygame.display.set_mode(screen_size) # 设置窗口标题 pygame.display.set_caption("使用键盘方向键移动的方块的简单小游戏")# 设置颜色 bg_colo…

帅气的性能监控平台Grafana(Windows下使用Grafana监控系统指标与GPU指标)

帅气的性能监控平台Grafana&#xff08;Windows下使用Grafana监控系统指标与GPU指标&#xff09; 前情提要 系统环境准备 windows_exporter下载 nvidia_gpu_exporter下载 prometheus下载 Grafana下载 安装指导 windows_exporter安装与nvidia_gpu_exporter安装 promethe…

ApacheNginx配置ssl证书

一、Apache配置ssl Linux版本&#xff1a;CentOS Linux release 7.9.2009 (Core) Apache版本&#xff1a;Apache/2.4.6 (CentOS) 1、安装Apache&#xff08;使用默认yum源&#xff09; [root10-35-1-25 ~]# yum -y install httpd2、查Apache版本&启动Apache [root10-35-…

深度解读NVMe计算存储协议-2

近日&#xff0c;NVME协议组织为了解决这些性能问题并为供应商提供标准化机制&#xff0c;在其架构中集成优化的计算功能&#xff0c;开发了NVM Express (NVMe) 计算存储特性。 计算存储的核心特性包括两个命令集&#xff1a;计算程序集和子系统本地内存。 其中&#xff0c;计算…

postgresql|数据库|pg_repack插件的部署和使用

一&#xff0c; 表和索引的膨胀现象 Postgres SQL 实现的MVCC的机制不同于 oracle &#xff0c; mysql innodb 的 undo tablespace 的机制。 表上所用的更新和删除等操作的行为&#xff0c;都不会实际的删除或修改&#xff0c;而是标记为死元祖 &#xff08;dead rows or dead…

非鸿蒙官方低代码源码生成器

介绍 鸿蒙低代码可视化开发神器快速对鸿蒙ArkUI生成源码&#xff0c;结合类似小程序类似设计&#xff0c;页面设计底部菜单&#xff0c;支持宫格组件、轮播图、图文列表、图片组件、文本内容组件&#xff0c;快速对接第三方HttpApi。通过鸿蒙扩展axios扩展库加载数据源&#x…

jmeter+nmon+crontab简单的执行接口定时压测

一、概述 临时接到任务要对系统的接口进行压测&#xff0c;上面的要求就是&#xff1a;压测&#xff0c;并发2000 在不熟悉系统的情况下&#xff0c;按目前的需求&#xff0c;需要做的步骤&#xff1a; 需要有接口脚本需要能监控系统性能需要能定时执行脚本 二、观察 >…

Spring的事件监听机制

这里写自定义目录标题 1. 概述&#xff08;重点&#xff09;2. ApplicationEventMulticaster2.1 SimpleApplicationEventMulticaster2.2 AbstractApplicationEventMulticaster 3. ApplicationListener3.1 注册监听器3.2 自定义 4. SpringApplicationRunListeners 1. 概述&#…

协会认证!百望云荣获信创工委会年度“卓越贡献成员单位”称号

当前&#xff0c;新一轮科技革命和产业变革正加速重塑全球经济结构&#xff0c;强化企业科技创新的主体地位&#xff0c;推动创新链、产业链、人才链深度融合&#xff0c;加快科技成果产业化进程至关重要。 近日&#xff0c;中国电子工业标准化技术协会信息技术应用创新工作委员…