Day10:平面转换、渐变色

news2025/3/1 9:40:14

目标:使用位移、缩放、旋转、渐变效果丰富网页元素的呈现方式。


一、平面转换

1、简介

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

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

在这里插入图片描述

平面转换也叫 2D 转换,属性是 transform

2、平移
transform: translate(X轴移动距离, Y轴移动距离);
  • 取值

    • 像素单位数值
    • 百分比(参照盒子自身尺寸计算结果)
    • 正负均可,正值:向左、向下;负值:向右、向上
  • 技巧

    • translate() 只写一个值,表示沿着 X 轴移动
    • 单独设置 X 或 Y 轴移动距离:translateX() 或 translateY()
练习:定位居中
  • 方法一:margin-left, margin-top 设置为负值
  • 方法二:使用 transform 向左向上移动自身尺寸的一半
<head>
	<style>
		.box {
			background-color: pink;

			position: absolute;
			left: 50%;
			top: 50%;

			/* 方法一: margin-left, margin-top 设置为负值 */
			/* margin-left: -100px;
            margin-top: -50px; */

			/* 方法二: 使用 transform 向左向上移动自身尺寸的一半 */
			transform: translate(-50%, -50%);

			width: 200px;
			height: 100px;
		}
	</style>
</head>

<body>
	<div class="box"></div>
</body>
3、旋转
transform: rotate(旋转角度);
  • 取值:角度单位是 deg

  • 技巧

    • 取值正负均可
    • 取值为正,顺时针旋转
    • 取值为负,逆时针旋转
4、转换原点

默认情况下,转换原点是盒子中心点。可以通过 transform-origin 修改转换原点位置。

transform-origin: 水平原点位置 垂直原点位置;
  • 取值:
    • 方位名词(left、top、right、bottom、center)
    • 像素单位数值
    • 百分比
5、多重转换

同时使用平移和旋转,实现下面效果:

在这里插入图片描述

transform: translate() rotate();

技巧:要先平移再旋转

多重转换原理:以第一种转换方式的坐标轴为准
(1)旋转会改变网页元素的坐标轴向
(2)先写旋转, 则后面的平移效果的坐标轴以旋转后的坐标轴为准,旋转时坐标轴在不停的变化,平移额方向也在不停的变化

错误案例:先写旋转,再写平移,效果如下:

在这里插入图片描述

<head>
  <title>多重转换</title>
  <style>
    .box {
      margin-left: 600px;
      margin-top: 500px;
      width: 800px;
      height: 200px;
      border: 1px solid #000;
    }

    img {
      width: 200px;
      transition: all 5s;
    }

    /* 鼠标移入box,图片边走边转 */
    .box:hover img {

      /* 先平移再旋转 */
      transform: translate(600px) rotate(360deg);

      /* 错误: 先旋转再平移 */
      /* 旋转会改变坐标轴向 */
      /* 多重转换:以第一种转换形态的坐标轴为准 */
      /* transform: rotate(360deg) translate(600px); */

      /* 层叠性 */
      /* 分开写也不行, 后面的转换效果会覆盖前面的转换效果 */
      /* transform: translate(600px);
        transform: rotate(360deg); */
    }
  </style>
</head>

<body>
  <div class="box">
    <img src="./images/tyre1.png" alt="" />
  </div>
</body>
6、缩放
transform: scale(缩放倍数);
transform: scale(X轴缩放倍数, Y轴缩放倍数);
  • 技巧
    • 通常,只为 scale() 设置一个值,表示 X 轴和 Y 轴等比例缩放
    • 取值大于1表示放大,取值小于1表示缩小
7、倾斜

在这里插入图片描述

transform: skew();
  • 取值:角度度数 deg
<head>
  <title>倾斜效果</title>
  <style>
    body {
      background-color: #eee;
    }

    div {
      margin: 100px auto;
      width: 100px;
      height: 200px;
      background-color: pink;
      transition: all 0.5s;
    }

    div:hover {
      transform: skew(30deg);
      /* transform: skew(-30deg); */
    }
  </style>
</head>

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

二、渐变

渐变是多个颜色逐渐变化的效果,一般用于设置盒子背景。

分类:

  • 线性渐变

在这里插入图片描述

  • 径向渐变

在这里插入图片描述

1、线性渐变
background-image: linear-gradient(
  渐变方向,
  颜色1 终点位置,
  颜色2 终点位置,
  ......
);

取值:

  • 渐变方向:可选,如果不写方向,默认是从上向下,即 to bottom 或 180deg

    • to 方位名词,to right,to bottom…
    • 角度度数,0deg,90deg,180deg…
  • 终点位置:可选

    • 百分比,这个颜色所占的比例,如果不写,默认是几个颜色平分
<head>
  <title>线性渐变</title>
  <style>
    body {
      background-color: #eee;
    }

    div {
      margin-left: 100px;
      margin-top: 100px;
      width: 200px;
      height: 200px;
      /* 设置了渐变色, 就是设置了 background-image, 背景色被覆盖, 除非渐变色设置透明 transparent */
      background-color: yellow;

      /* 默认从上到下的方向 */
      background-image: linear-gradient(red,
          transparent);

      background-image: linear-gradient(to right,
          red,
          green);

      /* 使用角度, 0deg 是从下向上开始, 正值顺时针旋转, 90deg 从左到右 */
      background-image: linear-gradient(0deg,
          red,
          green);

      /* 属性一样, 最后写的会覆盖前面的属性 */
      /* 默认从上向下, 红色占比 80% */
      background-image: linear-gradient(red 80%,
          green);
    }
  </style>
</head>

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

在这里插入图片描述

设置了渐变色,就是设置了 background-image,背景色会被覆盖,除非渐变色设置了透明 transparent。

2、径向渐变
background-image: radial-gradient(
  半径 at 圆心位置,
  颜色1 终点位置,
  颜色2 终点位置,
  ......
);

取值:

  • 半径可以是 2 条,则为椭圆
  • 圆心位置取值:像素单位数值 / 百分比 / 方位名词
  • 超过半径的区域显示渐变色设置的最后一个颜色值
  • 如果想要超过半径的区域显示背景色,可以将最后一个颜色设置为透明色 transparent

三、综合案例

使用今日所学的平面转换和渐变色,实现下面网页中的特效。

在这里插入图片描述

想要完整代码的,点击这里获取Day10综合案例完整代码。完全免费,仅供学习参考使用。



在这里插入图片描述

乾坤未定,你我皆是黑马


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

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

相关文章

C语言(字符和字符串函数)2

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸各位能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎~~ &#x1f4a5;个人主页&#xff1a;小羊在奋斗 &#x1f4a5;所属专栏&#xff1a;C语言 本系列文章为个人学习笔记&#xff0c;在这里撰写成文一…

今日分享丨按场景定制界面

遇到问题 我们在写文档或者代码时&#xff0c;会遇到需要书写重复或者类似内容的情况。快捷的做法是&#xff1a;先复制粘贴此相似内容&#xff0c;再修改差异。那么开发人员在设计界面的时候&#xff0c;也会遇到同类型的界面有重复的特性&#xff0c;比如报销类型的单据&…

PostgreSQL常用插件

PostgreSQL 拥有许多常用插件&#xff0c;这些插件可以大大增强其功能和性能。以下是一些常用的 PostgreSQL 插件&#xff1a; 性能监控和优化 pg_stat_statements 1.提供对所有 SQL 语句执行情况的统计信息。对调优和监控非常有用。 2.安装和使用&#xff1a; pg_stat_k…

picoLLM:大模型的量化魔术师 上

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调重新阅读。而最新科技&#xff08;Mamba&#xff0c;xLSTM,KAN&#xff09;则提供了大模…

数字孪生在气象灾害防治中的重要贡献

数字孪生技术在气象灾害防治中正发挥着越来越重要的作用。数字孪生是指通过数字化方式在虚拟空间中构建与现实世界对应的虚拟模型&#xff0c;通过实时数据和模拟技术进行动态映射和交互。利用数字孪生技术&#xff0c;气象部门可以更高效、更精准地监测、预测和应对气象灾害&a…

四川景源畅信:抖音开店怎么做好运营?

在数字化时代的浪潮中&#xff0c;抖音作为一个流量巨大的社交平台&#xff0c;为许多商家提供了展示和销售产品的新舞台。但在这个充满竞争的平台上&#xff0c;如何做好店铺运营&#xff0c;吸引并留住顾客&#xff0c;成为了许多商家面临的挑战。接下来的内容将围绕如何在抖…

我与C++的爱恋:vector的使用

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 ​ 文章目录 一、vector的简单介绍二、vector的使用构造函数遍历容器对容器的操作vector 的增删查改 一、vector的简单介绍 vector是表示可变大小数组的序列容器 就像数组…

去噪扩散概率模型在现代技术中的应用:图像生成、音频处理到药物发现

去噪扩散概率模型&#xff08;DDPMs&#xff09;是一种先进的生成模型&#xff0c;它通过模拟数据的噪声化和去噪过程&#xff0c;展现出多方面的优势。DDPMs能够生成高质量的数据样本&#xff0c;这在图像合成、音频生成等领域尤为重要。它们在数据去噪方面表现出色&#xff0…

打开C语言常用的内存函数大门(二)—— memmove()函数 (内含memmove的讲解和模拟实现)

文章目录 1. 前言2. memmove()函数2.1 memmove()函数与memcpy()函数的差异2.2 memmove()函数的原型2.3 memmove()函数的使用案例 3. memmove()函数的模拟实现4. 总结 1. 前言 在之前&#xff0c;我向大家介绍了C语言中的一个常用的内存函数memcpy函数。如果你还没看的话&#…

算法(十一)贪婪算法

文章目录 算法简介算法概念算法举例 经典问题 -背包问题 算法简介 算法概念 贪婪算法&#xff08;Greedy&#xff09;是一种在每一步都采取当前状态下最好的或者最优的选择&#xff0c;从而希望导致结果也是全局最好或者最优的算法。贪婪算法是当下局部的最优判断&#xff0c…

【UnityShader入门精要学习笔记】第十六章 Unity中的渲染优化技术 (下)

本系列为作者学习UnityShader入门精要而作的笔记&#xff0c;内容将包括&#xff1a; 书本中句子照抄 个人批注项目源码一堆新手会犯的错误潜在的太监断更&#xff0c;有始无终 我的GitHub仓库 总之适用于同样开始学习Shader的同学们进行有取舍的参考。 文章目录 减少需要处…

报表工具DataEase技术方案(一)

一、使用场景&#xff1a; 企业内部系统想要快速接入报表功能&#xff0c;但是局限于人力资源不足&#xff0c;不想沿用传统的前端后端开发模式&#xff0c;可以尝试使用开源报表工具 DataEase。 二、架构设计&#xff1a; 使用最简便的报表集成方式&#xff0c;通过DataEase…

越洗越黑”的Pandas数据清洗

引言 先来一个脑筋急转弯活跃一下枯燥工作日常&#xff0c;问&#xff1a;“什么东西越洗越黑&#xff1f;” 有没有猜到的&#xff1f;猜不到我告诉你吧&#xff01; 答案是“煤球”。那么这个脑机急转弯跟我们要讨论的话题有没有关系呢&#xff1f; 嗯是的&#xff0c;还是沾…

2024年大屏幕互动源码+动态背景图和配乐素材+搭建教程

2024年大屏幕互动源码动态背景图和配乐素材搭建教程 php宝塔搭建部署活动现场大屏幕互动系统php源码 运行环境&#xff1a;PHPMYSQL 下载源码地址&#xff1a;极速云

Leetcode刷题笔记7

69. x 的平方根 69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; 假设求17的平方根 解法一&#xff1a;暴力解法 从1开始依次尝试 比如1的平方是1&#xff0c;2的平方是4...直到5的平方&#xff0c;25>17&#xff0c;所以一定是4点几的平方&#xff0c;所以等于4…

打家劫舍I 打家劫舍II (leetcode)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 打家劫舍Ihttps://leetcode.cn/problems/Gu0c2T/打家劫舍IIhttps://leetcode.cn/problems/PzWKhm/ 状态转移方程就是这样的&#xff1a; i位置选择偷f[i]&#xff1a;f[i] g[i-1] nums[i];i位置选择不偷g[i]&#xff1a;g…

C语言 指针——指针变量做函数参数:典型实例

目录 一个典型实例——两数互换 一个典型实例——两数互换 Errors

拓展虚拟世界边界,云手机可以做到吗

虚拟世界&#xff0c;AI&#xff0c;VR等词汇是21世纪最为流行的词汇&#xff0c;在科技背后&#xff0c;这些词汇的影响变得越来越大&#xff0c;已经走进了人们的世界&#xff0c;比如之前APPLE发布的vision pro&#xff0c;使人们能够更加身临其境的体验到原生os系统&#x…

存储 Bean 对象更加简单的方式

前置操作 如果是在 spring-config 中添加 bean 标签来注册内容&#xff0c;每个类都要弄一次就显得麻烦和臃肿了&#xff0c;对于 new 操作而言就没有什么优势了。因此 spring 就引入了注解操作来实现对 Bean 对象的存储。 配置扫描路径 想要将对象成功的存储到 Spring 中&…

【Linux系列】深入解析 `kill` 命令:Linux 下的进程管理利器

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…