网上关于这方面的文章有很多偅复的东西本文不再赘述,仅提供思路并解释一些其他文章讲述模糊的地方。 1、使用meta标签这也是普遍使用的方法,理论上讲使用这个標签是可以适应所有尺寸的屏幕的但是各设备对该标签的解释方式及支持程度不同造成了不能兼容所有浏览器或系统。 首先解释该标签嘚含义: 如果你完全不了解这个标签的使用需要先百度一下 解释:content中的“width” 这个width指的是什么宽度,我看过的文章对这个都没有解释的很清楚有几个备选:虚拟窗口的宽度、APP手机页面屏幕的宽度、还是页面的宽度等等?经试验这个指的是虚拟窗口的宽度了解宽度之后,對后续的各种scale就应该知道是谁与谁的比例,是 虚拟窗口宽度 / 页面宽度这样就会有问题出现安卓设备尺寸差异很大光主流的就有宽度为 320 480 720 1080 等各种尺寸而以上标签只能支持一种尺寸,当然有些浏览器会自动缩放使其适应屏幕但这不是统一标准,正确的做法是用js动态生成此标簽当然,应该先获取屏幕尺寸 对于此标签还有以下需要分享: 3)、APP手机页面页面可以触摸移动,但是如果有需要禁止此操作就是页面寬度等于屏幕宽度是页面正好适应屏幕才可以保证页面不能移动。 4)、如果页面是经过缩小适应屏幕宽度的会出现一个问题,当文本框被噭活(获取焦点)时页面会放大至原来尺寸。 以上是使用viewport标签的一些小体会分享给大家。 3、百分比法首先应明确一个概年,CSS中的百汾比中的百指的是什么我告诉你指的是父元素,所有百分比都是这样的子元素宽度50%,那么父元素的宽度就是百子元素的padding-left:50%,父元素嘚宽度是百子元素的margin-top:20%,那么父元素的高是百所以body默认宽度是屏幕宽度(PC中指的是浏览器宽度)子孙元素按百分比定位(或指定尺寸)僦可以了,这只适合布局简单的页面复杂的页面实现很困难。 4、使用css3单位rem有人这样解释rem,root-em就是根部的em,想必em大家都懂的那么rem就是將根节点html的font-size的值作为整个页面的基准尺寸,默认html的font-size是16px即1rem=16px,如果某div宽度为32px你可以设为2rem当我们把html的font-size设为20px时,1rem=20px那么32px=1.6rem了。到这里我们也就了解了rem的用法了那么怎么用rem来实现不同尺寸屏幕的自适应呢?在页面载入开始时首先判断window的宽度(是window的宽度($(window).width())不是屏幕分辩率的宽度(screen.width),两者的差别请自行查阅)假设宽度为W,一个div在宽度为640px的设计稿的下的宽度为dW1这样如果html的font-size为100px,那么这个div的宽度用rem表示是多少呢计算:div宽度dW2=dW1/100,px与rem之间很好换算,除以100就可以这是假定屏幕宽度为640的,而不同宽度的屏幕怎么处理为了能保证换算容易那就要为html设置一个合适嘚font-size,计算:100 / 解释一下为什么把100作为一个缩放比例用10或1不是更方便吗,这是因为大多数浏览器font-size的最小值为12px所以只能用100了。所以会在头部加上这个JS代码 5、媒体查询媒体查询也是css3的方法,我们要解决的问题是适应APP手机页面屏幕这个媒体查询正是为解决这个问题而生,媒体查询的功能就是为不同的媒体设置不同的css样式这里的“媒体”包括页面尺寸,设备屏幕尺寸等比如我们要为宽度小于480px的页面中的class=”icon”嘚元素设置样式,可以这样写@media screen and 综上,至今我没有找到一种完全适应各种屏幕的方法,只能根据页面特点选择不同的方法多种方法灵活运用,才是王道 发布了1 篇原创文章 · 获赞 4 · 访问量 4万+