- zoom的缩放是相对于左上角的;而scale默认是居中缩放;
- zoom的缩放改变了元素占据的空间大小;而scale的缩放占据的原始尺寸不变,页面布局不会发生变化;
- 对文字的缩放规则不一致。zoom缩放依然受限于最小12像素中文大小限制;而scale就是纯粹的对图形进行比例控制,文字50%原来尺寸。
移动端自适应的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| <script> (function () { var wr = window.innerWidth / window.innerHeight; var _width = 750; if (wr > 750 / 1220) { _width = Math.floor(wr * 1220); } else { _width = 750; } var ua = navigator.userAgent; if (/Android (\d+\.\d+)/.test(ua)) { var version = parseFloat(RegExp.$1); if (version > 2.3) { document.write('<meta name="viewport" content="width=' + _width + ',user-scalable=no,target-densitydpi=device-dpi,minimal-ui">') } else { document.write('<meta name="viewport" content="width=' + _width + ',target-densitydpi=device-dpi">') } } else if (/QQAC_Client_iOS/.test(ua)) { document.write('<meta name="viewport" content="width=' + _width + ',maximum-scale=0.5,minimum-scale=0.5">'); } else { document.write('<meta name="viewport" content="width=' + _width + ',user-scalable=no,target-densitydpi=device-dpi,minimal-ui">') } })(); </script>
|
用了上述这个就可以使用和设计稿一样的尺寸来写css了
但是遇到第三方库的时候(比如弹出层)会出现文字、边框很小,(基本上插件也会用px作为长度单位)
解决方法是在第三方库的最顶层加个css:zoom:2;
例如:
具体差别可查看:
https://www.zhangxinxu.com/study/201511/zoom-scale.html
另外一种方法设置 rem
1 2 3 4 5 6 7 8 9 10 11
| initpage(); $(window).resize(function() { initpage(); })
function initpage() { var view_width = document.getElementsByTagName('html')[0].getBoundingClientRect().width; var _html = document.getElementsByTagName('html')[0]; _html.style.fontSize = (view_width / 375) * 100 + 'px'; }
|
移动端常见样式设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| .input{ -webkit-appearance:none; }
::-webkit-input-placeholder { color: #909; } :-moz-placeholder { color: #909; } ::-moz-placeholder { color: #909; } :-ms-input-placeholder { color: #909; }
div { -webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
|
a:hover伪类在ios移动端浏览器内无效的解决方法