谈谈关于CSS中transform属性之scale

码界翱翔
• 阅读 9274

谈谈关于scale属性

scale是什么?

根据W3C定义 ,scale主要是进行缩放和转化:

scale能做什么?

1.1px细线
  <div class="wrap">
      <div class="UI-scale1"></div>
      <div class="UI-scale2"></div>
      <div class="UI-scale3"></div>
    </div>

CSS代码

.wrap{
        position: relative;
}
.UI_scale1{
    position: relative;
    width: 200px;
    height: 50px;
    border-bottom:1px solid #000;
}
.UI_scale2{
    position:relative;
    top: 0px;
    left: 0px;
    width: 200px;
    height: 50px;
    border-bottom: 1px solid #000;
}
@media screen and (-webkit-min-device-pixel-ratio:2){
    .UI_scale2{
        transform: scale(1,0.5);
        transform-origin:left center;
    }
}
2.页面适配
  function scale(){
          var origin_H = 667,
              origin_W = 375,
              win_H = $(window).height(),
              win_W = $(window).width();
          var ratio1 =  win_H / origin_H ,
              ratio2 =  win_W / origin_W ;
          if(ratio1<ratio2){
              $('.page1-wrap').css({
                '-webkit-transform':'scale('+ratio1+')'
              })
          }
          else{
              $('.page1-wrap').css({
                '-webkit-transform':'scale('+ratio2+')'
              })
          }
    }
    
3.动画(参考animate.css)
@-webkit-keyframes pulse {
    0% {
        -webkit-transform: scale3d(1,1,1);
        transform: scale3d(1,1,1)
    }

    50% {
        -webkit-transform: scale3d(1.05,1.05,1.05);
        transform: scale3d(1.05,1.05,1.05)
    }

    100% {
        -webkit-transform: scale3d(1,1,1);
        transform: scale3d(1,1,1)
    }
}

scale的属性会影响那些属性和布局

HTML代码

  <div class="wrap">
      <div class="UI-scale1"></div>
      <div class="UI-scale2"></div>
      <div class="UI-scale3"></div>
    </div>

CSS代码

.wrap{
        position: relative;
        background-color: #ccc;
}
.UI_scale1{
    position: relative;
    top: 0px;
    width: 100px;
    height: 50px;
    font-size:14px;
    line-height: 24px;
    margin-left: 50px;
    padding: 50px;
    border-bottom:1px solid #000;
    background-color: red;
}
.UI_scale2{
    position: relative;
    top: 0px;
    width: 100px;
    height: 50px;
    font-size:14px;
    line-height: 24px;
    margin-left: 50px;
    padding: 50px;
    border-bottom:1px solid #000;
    transform: scale(0.5);
    background: blue;
    transform-origin: center center;
}

谈谈关于CSS中transform属性之scale谈谈关于CSS中transform属性之scale

如图所示可以直接影响到所有带px的属性,但是由于scale属性不会引起重排,会导致父元素的高度和宽度都不会受到影响.

scale和zoom差异

1.zoom引起重排,scale不会引起;缩放的中心点,zoom不能更改,而scale可以更改

谈谈关于CSS中transform属性之scale

2.重排导致的性能

1.scale会只会引起了当前元素
谈谈关于CSS中transform属性之scale

2.zoom会引起重排,所以会影响全部元素
谈谈关于CSS中transform属性之scale

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
6个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
昔不亏 昔不亏
4年前
「Vue — 插件」标尺vue-sketch-ruler
安装npminstallsavevuesketchruler示例<template<divclass"wrapper"id"wrapper"<SketchRule:lang"lang":thick"thick":scale"scale":width"width":height"
Wesley13 Wesley13
3年前
Java中BigDecimal的8种舍入模式
java.math.BigDecimal不可变的、任意精度的有符号十进制数。BigDecimal由任意精度的整数非标度值和32位的整数标度(scale)组成。如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值乘以10的负scale次幂。因此,BigDecimal表示的数值是(unsc
Stella981 Stella981
3年前
FFMpeg笔记(五) 录制小视频时几个问题解决
1. YUV数据在使用avfilter scale时在特定的分辨率下UV分量不对由于是小视频,那么分辨率不需要太高,但是有的视频源是1080p,甚至有的是4K的,所以对视频源进行scale非常有必要。scale操作可以使用avfilter或者sws\_scale完成,具体
Wesley13 Wesley13
3年前
JDK8 BigDecimal API
第三篇先介绍以BigInteger为构造参数的构造器1publicBigDecimal(BigIntegerval){//根据BigInteger创建BigDecimal对象2scale0;//BigInteger为整数因此有效小数位数为03intVal
Stella981 Stella981
3年前
SVG.坐标转换_属性设置
1、  transform\"translate(9575)scale(1,1.5)rotate(90100100)"transform\"translate(9575)scale(1,1.5) rotate(90,100100)"transform\"translate(9575)scale(1,1.5) 
Wesley13 Wesley13
3年前
BC开方(乙)
functionbcroot($幂,$指'3',$scale0){开方$dfalse;if($幂'0'){return'0';}elseif($幂'1'){return'1';}$指数
Easter79 Easter79
3年前
SVG.坐标转换_属性设置
1、  transform\"translate(9575)scale(1,1.5)rotate(90100100)"transform\"translate(9575)scale(1,1.5) rotate(90,100100)"transform\"translate(9575)scale(1,1.5) 
小万哥 小万哥
1年前
NumPy 均匀分布模拟及 Seaborn 可视化教程
本文介绍了均匀分布和逻辑分布。均匀分布是连续概率分布,所有事件在指定范围内有相等概率发生,常用于随机数生成。其概率密度函数为f(x)1/(ba),其中a和b分别为下限和上限。NumPy的random.uniform()可生成均匀分布的随机数。Seaborn可用于可视化分布。文中还提供了练习及解决方案,包括生成不同范围的均匀分布随机数、比较分布形状变化及模拟抛硬币实验。逻辑分布则常用于S形增长现象的建模,其PDF为(scale/(π(1(xloc)/scale)^2)),由位置参数loc和尺度参数scale定义。