如果把移动端的可视区域(320-768)的话,大部分网站都会因为太窄而显示错乱;
所以浏览器默认把viewport设置为一个较宽的值 980px或1024px,至少保证PC网站在移动端上可以显示,只不过出现了横向滚动条而已。
devicePixelRatio在不同浏览器中存在一些兼容性问题,并不是完全可靠的
需要用到
meta viewport 中有6个通用属性:
target-densitydpi = UI-width / device-width * window.devicePixelRation * 160 // UI-width: 布局宽度 // device-width:屏幕分辨率宽度 iphone4为640 // target-densitydpi=device-dpi 标示使用设备本身物理屏幕的像素,不会发生默认缩放
// 移动页面设计 480*854的比例 // dpi = 480/screen.width*window.devicePixelRatio*160; // scalevalue = screen.width/480; // 控制适配 分为5种组合 /* width + target-densitydpi(计算出来的) */ /* width */ /* width+target-densitydpi=device-dpi */ /* width+initial-scale */ /* targrt-densitydpi */ // 通过顺序设置5次来实现适配 直到小于等于10表示viewport设置正确了。 Math.abs(window.innerWidth - 480) <= 10;
js代码控制
// 建议执行横竖屏的事件都通过一个侦听完成,做一个统一的管理;在屏幕横竖屏切换完成之后再执行相应的事件 window.addEventListener("orientationchange",function () { This.isOrietation = true; This.changeOriention(); });
css控制
// 定义横屏显示的样式 @media screen and(orientation:landspace){...} // 定义竖屏显示的样式 @media screen and(orientation:portrait){...} // 某个尺寸的特殊样式 竖屏时宽度为768px 符合一般ipad的条件 @media only screen and(orientation:portrait) and(device-width:768px){...}
您可能也喜欢: |
15 个用于Web和移动应用开发的Javascript框架 |
11个有用的移动网页开发App和HTML5框架 |
移动设备网络开发WEB应用整理 |
十八般武艺!移动应用开发者必备的18款利器 |
copyleft 检测移动设备(手机)的 PHP 类库 |
无觅 |