zoom
使用[CSS]的zoom
属性可以实现自适应布局。
zoom
属性设置或检索对象的缩放比例,可以通过CSS媒体查询结合zoom
属性,根据不同的屏幕分辨率修改样式,从而实现自适应。
例如,可以在body
标签添加一个类标签,然后在不同的屏幕分辨率下使用媒体查询修改zoom
的值,这样就可以不用针对每个分辨率去修改样式。
总结概念
CSS的zoom
属性用于控制元素的缩放比例。它可以增大或减小元素的尺寸,同时也会影响元素内部的内容。
使用
zoom
属性的取值可以是一个数字或百分比。具体解释如下:
zoom: 1;
表示元素的原始大小,不进行缩放。zoom: 1.5;
表示元素的尺寸放大到原始大小的1.5倍。zoom: 200%;
表示元素的尺寸放大到原始大小的2倍。
适用的浏览器
vue.draggable.next
vue组件(vue.js 3.0)允许拖放以及与视图模型数组同步。
对于vue2和vue1版本检查: github.com/SortableJS/...
基于并提供 Sortable.js 的所有功能
背景
背景是,发现有一天测试过的拖拽组件不能拖动,代码放出来单独在全新项目运行没问题,但是在那个项目中确实拖不动,或者拖动的点位很奇葩很诡异才能调换位置。
于是排查了一下,是先前说的整体页面要整体缩小到98%,html这个标签加了个{zoom: 98%}.
导致整体页面缩小,然而Sortable这个库上加上zoom,不起作用拖不动。
github上有这个issue
可以去看看。我下面截个图。
里面见到的解决方法是说把zoom去掉。但是这个zoom又是必须保留的。有另外个不用去掉zoom的解决方法,如下面所示:
反向操作:
整体缩小到98%,那我就那个元素控件就方向操作,也就是整体放大到原来的那个大小:
设置css
解决的代码在下面👇:
css
// xxx 代表你想要反向操作的zoom的元素
xxx {
zoom: 102% !important;
transform: scale(1/1.02) !important; // 因为我这里是zoom了98%,那么100 + 2 就可以了 102,自己可以写代码试试
transform-origin: 0 0 !important;
}