2/3D平面转换(最近整理的关于CSS的平面转换)

平面转换

目标:使用transform属性实现元素的位移、旋转、缩放等效果

位移:

目标:使用translate实现元素位移效果
语法:transform:translate(水平移动距离,垂直移动距离)
取值:

  • 正负均可
  • 像素单位值
  • 百分比(参照物为盒子自身尺寸)

注意:X轴正向为右,Y轴正向为下
技巧:

  • translate()如果只给出一个值, 表示x轴方向移动距离
  • 单独设置某个方向的移动距离:translateX() & translateY()

补充:

  • transition()//过渡属性

  • ::before、::after伪元素显示模式为行内显示模式,加宽高不生效,可以用display,或者给浮动,宽高会生效!

    位移--绝对定位居中

    子绝父相:

    postion: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%);//百分比参考盒子自身尺寸计算结果
    width:200px;
    height:100px;

    旋转

    目标:使用rotate实现元素旋转效果
    语法
    transform: rotate(角度);
    注意:角度单位是deg
    技巧:取值正负均可

  • 取值为正, 则顺时针旋转

  • 取值为负, 则逆时针旋转

    转换原点

    目标:使用transform-origin属性改变转换原点
    语法 :

  • 默认圆点是盒子中心点

  • transform-origin: 原点水平位置 原点垂直位置; //一律添加给标签本身写,不要加到hover,

取值 :

  • 方位名词(left、top、right、bottom、center) ,方位名词之间用空格隔开

  • 像素单位数值

  • 百分比(参照盒子自身尺寸计算)

    多重转换

    目标:使用transform复合属性实现多形态转换
    多重转换技巧:

  • transform:translate() rotate()//移动距离记得注意本身距离 一圈360deg 不可以颠倒顺序 先位移,后旋转!如果颠倒,旋转会改变坐标轴向!也不可以拆开分别写,css相同的属性有层叠,覆盖掉了。

多重转换原理:

  • 旋转会改变网页元素的坐标轴向

  • 先写旋转,则后面的转换效果的轴向以旋转后的轴向为准,会影响转换结果

    缩放

    目标:使用scale改变元素的尺寸
    思考: 改变元素的width或height属性能实现吗?
    语法 :

  • transform: scale(x轴缩放倍数, y轴缩放倍数);

技巧 :

  • 一般情况下, 只为scale设置一个值, 表示x轴和y轴等比例缩放

  • transform: scale(缩放倍数);

  • scale值大于1表示放大, scale值小于1表示缩小

  • 透明度(opacity)可以看见变化过程,0-看不见 1-看得见 0~1半透明

    transform 有复合属性 自己伪元素两个transform会层叠,在hover的时候,transform也会层叠,所以复制一份到hover里!

    .box .pic::after {
              /* 播放按钮压在图片上面 - 居中 */
              position: absolute;
              left: 50%;
              top: 50%;
              /* margin-left: -29px;
              margin-top: -29px; */
              /* transform: translate(-50%, -50%); */
    
              content: '';
              width: 58px;
              height: 58px;
              background-image: url(./images/play.png);
    
              /* 大图 */
              transform: translate(-50%, -50%) scale(5);
    
              /* 透明,看不见 */
              opacity: 0;
              transition: all .5s;
          }
    
          /* lihover的时候,  谁变小pic::after */
          .box li:hover .pic::after {
              opacity: 1;
              transform: translate(-50%, -50%) scale(1);
          }

    渐变

    渐变背景:

    目标:使用background-image属性实现渐变背景效果

  • 渐变是多个颜色逐渐变化的视觉效果

  • 一般用于设置盒子的背景

  • image.png

  • image.png

语法:

 /* background-image: linear-gradient(
                pink,
                green,
                hotpink
            ); *///用的不多 
background-image: linear-gradient(
                transparent,
                rgba(0,0,0, .6)
            );//透明度

空间转换

概述:

目标:使用transform属性实现元素在空间内的位移、旋转、缩放等效果

  • 空间:是从坐标轴角度定义的。 x 、y 和z三条坐标轴构成了一个立体空间,z轴位置与视线方向相同。 z轴正值指向屏幕外,负值指向屏幕里面

  • 空间转换也叫3D转换

  • 属性:transform

    空间位移

    目标:使用translate实现元素空间位移效果

    语法

  • transform: translate3d(x, y, z);

  • transform: translateX(值);

  • transform: translateY(值);

  • transform: translateZ(值);

    取值(正负均可)

  • 像素单位数值

  • 百分比

    透视

    目标:使用perspective属性实现透视效果,可以结合空间转换看到Z轴的变化,人的视觉近大远小

    属性(添加给父级)

  • perspective: 值;

  • 取值:像素单位数值, 数值一般在800 – 1200。

  • 透视距离也称为视距,所谓的视距就是人的眼睛到屏幕的距离

    作用

  • 空间转换时,为元素添加近大远小、近实远虚的视觉效果

    空间旋转

    目标:使用rotate实现元素空间旋转效果

    语法:

  • transform: rotateZ(值);

  • transform: rotateX(值);

  • transform: rotateY(值);

#前端##前端工程师##前端开发实习#
前端基础开发 文章被收录于专栏

前端基础知识点

全部评论
渐变背景
点赞 回复 分享
发布于 2022-07-03 17:20

相关推荐

不愿透露姓名的神秘牛友
07-02 17:28
25届每天都在焦虑找工作的事情0offer情绪一直很低落硬撑着面了一个岗位岗位有应酬的成分面试的时候hr给我出各种场景题问的问题比较犀利 有点压力面的感觉感觉有点回答不上来本来就压抑的情绪瞬间爆发了呢一瞬间特别想哭觉得自己特别没用没绷住掉眼泪了事后想想觉得自己挺有病的 真的破大防了
喜欢唱跳rap小刺猬...:我觉得没关系吧,之前有一次面试leader给我压力面,我顶住了压力,结果入职的时候发现组里氛围很差,果断跑路。其实从面试就能大概看出组的情况,面试体验好的组倒是不一定好,但是面试体验不好的组。。。就很难说
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
3
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务