移动端自适应布局的高效方法,欢迎批评或指正

简介:

是我个人偏好的一种方法,优点是可以省去大量的适配时间和精力,

一、总的办法是首先使用一点JS判断设备宽度,再给根元素html设置font-size,从而适配整个页面。

二、CSS中,无论是字号还是宽高,如果都使用em或rem单位(1px的可以无视),最终都是由根元素html的font-size大小决定的。举个例子,比如设计图是640px宽,我一般会设置html的font-size为20px, 假设一个移动端的body宽度(或者可用宽度,这个视情况定)为clientWidth,那么要在这个终端还原设计图,就需要将适配后的html的font-size数值改为clientWidth/(640/(20*2))(移动端字号一般要除2),再渲染整个DOM。JS如下:

function adaptFun(designPercent){
    var mainWidth = document.body.clientWidth;
    var fontSize = mainWidth/designPercent + 'px';
    document.documentElement.style.fontSize = fontSize;
//视窗变化时需要再次适配,这种情况实际价值不是很大!最主要的只是首次适配
    window.onresize = function(){
        var mainWidth = document.body.clientWidth;
        var fontSize = mainWidth/designPercent + 'px';
        document.documentElement.style.fontSize = fontSize;
    }
}

adaptFun(640/40);

我把上边代码单独放一个文件(adapt.js)中;

三、在页面上如何放置和执行adapt.js

adapt.js最好尽量往上放,尽量紧跟在body后就好(如下),因为这时并没有加载多少东西,但已经可以判断document.body.clientWidth了,这样就可以改变原始的html的font-size值了。

<link rel="stylesheet" href="css/style.css">
</head>

<body>

<script type="text/javascript" src="js/adapt.js"></script>

这样,页面在绝大多数终端上将呈现原设计图效果,即使有Device-pixel-ratio1.5或3的设备,由于相对位置不会变,也只能写一句媒本查询即可(除非特别复杂的页面,否则媒本查询也不需要)。

四、优点和感概

如果靠媒体查询适配,会写不少代码,很头疼,以后有相似的项目想要借鉴,甚至还需重新适配,花去大量时间。

我个人觉得,这种只要写好一个设计宽度的版本(比如写一个640或320宽的)就好,其它自动适配,和写PC页面差别不大。

测试地址:http://game.feiliu.com/zk/ysg/main/index.html

本文转自  小旭依然  51CTO博客,原文链接:http://blog.51cto.com/xuyran/1787141

相关文章
|
3月前
移动端的布局如何使用媒体查询
移动端的布局如何使用媒体查询
47 2
|
19天前
|
编解码 前端开发 UED
最常见的自适应布局方案
【4月更文挑战第2天】 最常见的自适应布局方案
27 9
|
1月前
|
编解码 前端开发 UED
Web前端开发中的移动端适配与响应式设计
【2月更文挑战第11天】 对于现代 Web 前端开发而言,移动端适配与响应式设计是至关重要的技术环节。移动设备的普及使得用户更多地通过手机或平板设备访问网站,因此,如何有效地适配各种屏幕尺寸并提供良好的用户体验成为了前端开发者需要面对的重要问题。本文将介绍移动端适配与响应式设计的基本原理,并结合实际案例探讨其在前端开发中的应用。
|
2月前
|
编解码 前端开发 开发者
探索前端开发中的响应式设计与适配方案
在当今互联网时代,移动设备的普及使得前端开发中的响应式设计和适配变得愈发重要。本文将深入探讨前端开发中的响应式设计原则和各种适配方案,帮助开发者优化用户体验,提升网页在不同设备上的表现。
|
8月前
|
前端开发
从头学前端-移动端布局
从头学前端-移动端布局
|
9月前
|
前端开发 UED 容器
深入了解Flex布局:构建灵活响应式布局的利器
深入了解Flex布局:构建灵活响应式布局的利器
123 1
|
10月前
|
编解码 前端开发 UED
构建自适应的用户界面:响应式设计与布局
在当今多设备和多屏幕的世界中,为用户提供一致的体验变得至关重要。响应式设计与布局是一种解决方案,它允许我们构建自适应的用户界面,以适应各种屏幕尺寸和设备类型。本文将介绍响应式设计的基本原理和最佳实践,帮助开发人员在构建用户界面时实现良好的响应性和灵活性。
139 0
|
11月前
|
Web App开发 编解码 前端开发
【前端】【响应式设计】【移动端】响应式设计作业01:视口、二倍图
【前端】【响应式设计】【移动端】响应式设计作业01:视口、二倍图
215 0
|
Web App开发
移动端适配——视口概念
事实上这种方式是不利于我们进行移动的开发的,我们希望的是设置100px,那么显示的就是100px;
116 0
移动端适配——视口概念
|
小程序 前端开发 容器
使用flex弹性布局来为微信小程序写自适应页面
我们知道,写习惯了前端的人,一般切图后布局页面的话,上手最习惯的是基于盒子模型的浮动布局,依赖 display 属性 + position属性 + float属性,但是浮动布局有一些致命的小问题,比如垂直居中比较费劲,比如著名的[float坍塌问题](https://v3u.cn/a_id_18),另外有些极端情况下,还得使用模型+clear:both来手动清除浮动,比较麻烦。
使用flex弹性布局来为微信小程序写自适应页面