CSS3中 translate、transform 和 translation 的区别和联系,及开发问题解决

translate:移动,transfrom的一个方法              

  通过 translate() 方法,元素从其当前位置移动,根据给定的 left(x 坐标) 和 top(y 坐标) 位置参数:
  用法transform: translate(50px, 100px);
              -ms-transform: translate(50px,100px);
              -webkit-transform: translate(50px,100px);
              -o-transform: translate(50px,100px);
              -moz-transform: translate(50px,100px);
 

transform:变形。改变

  CSS3中主要包括
    旋转:rotate() 顺时针旋转给定的角度,允许负值 rotate(30deg)
    扭曲:skew() 元素翻转给定的角度,根据给定的水平线(X 轴)和垂直线(Y 轴)参数:skew(30deg,20deg)
    缩放:scale() 放大或缩小,根据给定的宽度(X 轴)和高度(Y 轴)参数: scale(2,4)
    移动:translate() 平移,传进 x,y值,代表沿x轴和y轴平移的距离
    所有的2D转换方法组合在一起: matrix()  旋转、缩放、移动以及倾斜元素
      matrix(scale.x ,, , scale.y , translate.x, translate.y)      
    改变起点位置 transform-origin: bottom left;
  综合起来使用:transform: 30deg 1.5 30deg 20deg 100px 200px;
  例子:
transform: translateX(10px) rotate(0deg) scale(0.5, 0.5)
transform: translate(10px, 0px) rotate(360deg)  scale(0.5)

transition:允许CSS属性值在一定的时间区间内平滑的过渡,

  需要事件的触发,例如单击、获取焦点、失去焦点等
  transition:property duration timing-function delay;
    property: CSS的属性,例如:width|height|all 为 none 时停止所有的运动,可以为 transform
    duration: 持续时间
    timing-function: 过渡效果,ease等
    delay: 延迟
  注意:当property为all的时候所有动画
  例如:transition: all 2s ease 0s;

实际问题解决1:

在开发中发现,画一个圆点,设置的宽高数值比较小时 ( 0.15rem; height: 0.15rem; border-radius: 50%;),发现圆形并没有那么圆。

猜想问题原因:个人认为是 js 对浮点数计算不精确,导致的。

解决办法1:调整宽高,比如:width:0.14rem; height: 0.14rem; (有时候能起作用,治标不治本)

解决办法2:设置 15rem; height: 15rem; transform: scale(0.1); transform-origin: center center; (先放大,再缩小,比较好)

原文地址:https://www.cnblogs.com/MrZhujl/p/12876574.html