首页 > 其他分享 >CSS基础-2D变形

CSS基础-2D变形

时间:2023-08-28 11:26:36浏览次数:51  
标签:盒子 变形 100px transform 旋转 2D background CSS

变形是CSS3中比较颠覆性的特征之一,今天介绍四种2D变形旋转、缩放、倾斜、位移变形。

变形在CSS3用 transform 属性 来实现。

transform-origin 属性

transform-origin 表示旋转的原点,默认是在盒子的中心位置(center)。

Untitled.png

transform-origin 的值可以是一个、两个或者三个,其中的每个值都表示一个方向上的偏移量。没有明确定义将默认为 center。

transform-origin: x y z;

Untitled 1.png

  • 第一个值 表示X轴上的偏移量, 可以使用 像素等长度单位、百分比 表示;也可以使用 left、center、right、top、bottom当中的一个值表示。
  • 第二个值 表示Y轴上的偏移量, 可以使用 像素等长度单位、百分比 表示;也可以使用 left、center、right、top、bottom当中的一个值表示。
  • 第三个值 表示Z轴上的偏移量,只能使用 像素 等长度单位表示。

旋转变形

旋转变形即使一个盒子发生旋转。

rotate() 函数来给 transform  属性赋值,即可实现旋转变形,若角度为正,则顺时针旋转,否则逆时针旋转。

语法

transform: rotate(45deg)

举例

盒子以中心为原点,旋转 45度。

Untitled 2.png

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>旋转变形</title>
    <style>
      .box {
        margin: 50px;
        width: 100px;
        height: 100px;
        background-color: blue;
        transform-origin: center;
        transform: rotate(45deg);
      }
    </style>
  </head>
  <body>
    <div class="box"></div>
  </body>
</html>

缩放变形

缩放变形即放大缩小一个盒子。

scale() 函数来给 transform  属性赋值,即可实现缩放变形, scale 函数接受的值为缩放比例, 大于1 表示放大, 小于1表示缩小。

语法

transform: scale(2);

举例

三个盒子,一个放大,一个缩小,一个不变。

Untitled 3.png

<!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 {
        display: inline-block;
        width: 100px;
        height: 100px;
        background-color: orange;
        margin: 50px;
      }

      .box1 {
        transform: scale(2);
      }

      .box3 {
        transform: scale(0.5);
      }
    </style>
  </head>
  <body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
  </body>
</html>

倾斜变形

倾斜变形即使一个盒子倾斜。

skew() 函数来给 transform  属性赋值,即可实现倾斜变形, skew 函数接受两个值, 第一个值表示X轴的斜切角度,第二个值表示Y轴的斜切角度。

语法

tranform: skew(10deg, 20deg)				

举例

两个盒子,其中一个盒子不变,另一个盒子x轴倾斜10 度, Y轴倾斜0度。

Untitled 4.png

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>斜切变形</title>
    <style>
      div {
        display: inline-block;
        width: 100px;
        height: 100px;
        background-color: orange;
        margin: 50px;
      }

      .box2 {
        transform-origin: center;
        transform: skew(10deg, 0deg);
      }
    </style>
  </head>
  <body>
    <div class="box1"></div>
    <div class="box2"></div>
  </body>
</html>

位移变形

位移变形即使一个盒子的 位置发生位移, 有点像之前讲到过的 相对定位,同样位移变形后,原来的位置无法被别的盒子占用。

translate() 函数来给 transform  属性赋值,即可实现位移变形, translate函数接受两个值, 第一个值表示向右移动距离, 第二个值表示向下移动距离。

语法

transform: translate(100px 200px)

举例

三个盒子,使得第二个盒子的位置发生变化。

Untitled 5.png

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>位移变形</title>

    <style>
      .box1 {
        width: 100px;
        height: 100px;
        background-color: red;
      }
      .box2 {
        width: 100px;
        height: 100px;
        background-color: green;
        transform: translate(200px, 200px);
      }

      .box3 {
        width: 100px;
        height: 100px;
        background-color: blue;
      }
    </style>
  </head>
  <body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>
  </body>
</html>

标签:盒子,变形,100px,transform,旋转,2D,background,CSS
From: https://www.cnblogs.com/haloujava/p/17661807.html

相关文章

  • CSS的htc文件对于脚本生成的html无效的处理方法
    最近用PIE.htc开发CSS3的网页时,发现用到PIE.htc的CSS效果对于用脚本生成的html代码都无效的情况众所周知htc是IE针对CSS开放的一种特殊实现方式htc的实现是在页面载入完成后开始的,类似于js的window.onload(),它并不是像CSS语言那样,成为浏览器原生的语言,所以当页面内容使用js生成时,其......
  • 【230828-2】▲ABC中,AB=根号2,点D在边BC上,BD=2DC,Cos∠DAC=3/根号10,Cos∠C=2/根号5,则AC=
    ......
  • CSS3新增内容
    CSS3新增内容css3新增内容布局方面新增了flex布局、媒体查询选择器方面新增了:first-of-type,:nth-child等选择器盒模型方面添加了box-sizing来改变盒模型,动画方面增加了animation,2d变换,3d变换等颜色方面添加透明,rbga等字体方面允许嵌入字体和设置字体阴影......
  • css语法
    CSS支持nvue样式css预处理器#页面样式与布局uni-app的css与web的css基本一致。本文没有讲解css的用法。在你了解web的css的基础之上,本文讲述一些样式相关的注意事项。uni-app有vue页面和nvue页面。vue页面是webview渲染的、app端的nvue页面是原生......
  • Unity 2D如何让背景图片拉伸填满整个窗口
    usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;[RequireComponent(typeof(SpriteRenderer))]publicclassSpriteFullScreen:MonoBehaviour{//StartiscalledbeforethefirstframeupdatevoidStart(){......
  • 标题:在Godot中使用Node2D创建自定义的Label
    在Godot游戏引擎中,我们经常需要在游戏中显示文本信息。通常,我们可以使用Label节点来实现这一点。但是,在某些情况下,你可能希望更灵活地控制文本的显示和样式。在本篇博客中,我们将学习如何通过使用Node2D节点来创建一个自定义的Label,从而能够更好地控制文本的呈现方式。效果图步......
  • HTML引入CSS的方式
    虽然很简单,但久了不用还是容易忘,暂且记一下:1、html引入css文件之直接在div中使用css样式制作div+css网页<divstyle="border:1pxredsolid;">html引入css文件</div>说明:html引入css文件的这种方法不建议使用,因为会让页面的标签很多,看起来很累赘,体现不了css的优势,当然如果......
  • 报错test_features2d.cpp:51:10: fatal error: features2d/test/test_detectors_regre
    问题描述:ubuntu18.04安装opencv4.5.1+contrib报错test_features2d.cpp:51:10:fatalerror:features2d/test/test_detectors_regression.impl.hpp:没有那个文件或目录解决方法如题,报错如下:解决方法:按照报错提示,将opencv-4.5.1/modules中的features2d文件夹一整个复制到ope......
  • 安装opencv_contrib-3.4.9, fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目
    1.在Opencv的CmakeLists.txt中加入以下include语句:INCLUDE_DIRECTORIES("/home/yourusername/Dependencies/opencv-3.4.9/opencv_contrib-3.4.9/modules/xfeatures2d/include")2.ippicv_2019_lnx_intel64_general_20180723.tgz下载地址:链接:https://pan.baidu.com/s/1mu......
  • opencv_contrib编译:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or dir
    在Ubuntu上编译opencv3.4.2源码时,遇到下面的错误,错误1:/home/src/software/opencv-3.4.2/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:42:fatalerror:opencv2/xfeatures2d/cuda.hpp:Nosuchfileordirectory # include"opencv2/xfeatures2d/cud......