谈谈关于CSS中transform属性之scale
2024-09-27 21:25:54
谈谈关于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;
}
如图所示可以直接影响到所有带px的属性,但是由于scale属性不会引起重排,会导致父元素的高度和宽度都不会受到影响.
scale和zoom差异
1.zoom引起重排,scale不会引起;缩放的中心点,zoom不能更改,而scale可以更改
2.重排导致的性能
1.scale会只会引起了当前元素
2.zoom会引起重排,所以会影响全部元素
最新文章
- 选中repeater表格中的一行使其变色
- MYSQL加锁的测验
- Designing a CSS based template
- UVALive 6665 Dragon&#226;s Cruller --BFS,类八数码问题
- LMAO?
- sql server 2008 R2 配置开启远程访问
- ASP.NET中实现页面间的参数传递
- Bug疑难杂症 - java.lang.NoSuchFieldError: udhLen
- 知名IT企业待遇一览表
- asp.net+Sqlserver 通过存储过程读取数据
- RR模式下的事务隔离
- 主机Window不能访问该虚拟机Linux Samba文件服务提供了一个文件夹
- 至linuxNIC添加多个IP
- canvas图表(2) - 折线图
- Oracle12c中多宿主容器数据库(CDBs)和可插拔数据库(PDBs)新特性之运行脚本
- Python脚本字符集问题
- Django组件——分页器和中间件
- macbook hive安装
- JSP的简单介绍
- 跨域(三)——JSONP
热门文章
- pandas补充(其二)与matplotlib补充
- C#comboBox取消SelectedIndexChanged事件
- Python+requests接口自动化完整项目框架整理笔记
- react 16.8版本新特性以及对react开发的影响
- 空顺序表的实现(基于c语言)
- MySQL — 索引
- Docker——时间配置
- nginx反向代理出现了代理的端口号
- C249: &#39;DATA&#39;: SEGMENT TOO LARGE“解决方法 | keilC51设置编译模式:SMALL,COMPACT,LARGE
- 如何使用docker制作开发集成环境