组件等比例放大——scale和zoom

文章探讨了CSS中的scale和zoom属性在缩放元素时的不同行为,包括缩放基准点、空间占用和对页面布局的影响。zoom在Firefox中不受支持,而scale则没有这个问题。在处理组件S在不同页面的缩放需求时,使用scale可能导致内容高度不足和锚点定位问题,解决方案是动态调整元素高度。若不考虑Firefox兼容性,zoom是个更直接的选择。
摘要由CSDN通过智能技术生成

scale和zoom的区别

  1. zoom的缩放是相对于左上角的;而scale默认是居中缩放,可以通过transform-origin修改基准点
  2. zoom的缩放改变了元素占据的空间大小;而scale的缩放占据的原始尺寸不变,页面布局不会发生变化。
  3. 对文字的缩放规则不一致。zoom缩放依然受限于最小12像素中文大小限制;而scale就是纯粹的对图形进行比例控制,文字50%原来尺寸
  4. 兼容性问题。firefox下不支持zoom;scale针对IE9+

由于zoom兼容性问题,我们采用scale进行缩放。

需求描述

有个组件S,需要在A页面显示本来的大小(用于截图发邮件),在B页面放大1.25倍(用于详情查看,需要放大一点)

B页面还有锚点的交互,和滚动定位,可以定位到组件S的某个区域上。大概这样
在这里插入图片描述

transform: scale(1.25);
transform-origin: top;
或者
zoom: 1.25;

scale问题和解决

问题: scale放大,占据宽高不变,导致内容高度不够,锚点定位到最后,菜单上移消失问题
解决: 在组件S加载完之后,获取放大后的高,在html中设置该高度


   handleDomLoaded() {
      const sketchDom = document.getElementById('sketch')
      const { width, height } = sketchDom.getBoundingClientRect()
      this.heightStyle = { height: height + 'px'}
 }

如果不考虑兼容firfox,可以改用zoom,就没有上面的问题了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值