移动端自适应rem的设置

一般所熟知的css样式大小单位有px,em。

px:精确地描述元素大小,不随屏幕大小的变化而变化;

em:相对于父元素的大小,如果有层层嵌套的话会导致这个值非常大或者非常小。

在写移动端页面的时候为了使页面能够适应多种尺寸的移动设备大小,通常会用rem来表示各个元素的大小。

rem:font size of the root element,即相对于根元素字体的大小。

因此,在开发页面之前,需要给根元素的字体指定一个值。

一般情况下,浏览器默认的根元素字体的大小是16px,因此为了方便计算,可以将根元素字体大小可以设置为

html{
     font-size:62.5%;
     /*16 * 62.5% = 10;根元素字体大小是10px*/   /* */
}h1{  font-size:1.2rem;/*h1字体的大小是12px*/}

然后通过媒体查询针对不同的屏幕大小设置font-size的百分比,就可以实现前端页面适配了。

还有一种方法是将根元素font-size的大小设置成屏幕宽度的一定比,这样通过不同屏幕打开时1rem的值自然也就不一样了。

document.getElementsByTagName(‘html‘)[0].style.fontSize = window.screen.width /10 + ‘px‘;

如果是iPhone5的尺寸,那么根元素字体大小就是32px;

如果是IPhone6的尺寸,那么根元素字体大小就是37.5px;

但是这样我们在设置各个元素大小的时候就很难换算了啊。没关系,css编译工具可以解决这个问题。以less为例:

设置一个函数,假设设计图是iPhone的尺寸,设计图上p的字体大小是12px,那么p在不同屏幕的字体大小就是(12/37.5)rem。

.fs(@px){
    font-size:unit(@px/37.5,rem);  /*37.5是设计图的尺寸对应的屏幕宽度除以10*/
}p{  .fs(12);}

其他的宽度和高度也写成函数的形式。

因为某些低版本浏览器不支持CSS3或者默认字体不是16px,因此在PC端就不要再使用rem了。

时间: 2024-11-10 06:41:22

移动端自适应rem的设置的相关文章

浅谈移动端的自适应问题——响应式、rem/em、利用Js动态实现移动端自适应

随着3G的普及,越来越多的人使用手机上网.移动设备正超过桌面设备,成为访问互联网的最常见终端.于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?本篇文章将讲述自适应网页设计的概念和方法,使网页开发人员维护同一个网页代码,即可使网站在多种设备上具有更好的阅读体验.本文详细介绍了自适应网页的实现方法,希望能给迷惑的你带来帮助. 一. 在HTML的头部加入meta标签 在HTML的头部,也就是head标签中增加meta标签,告诉浏览器网页宽度等于设备屏幕宽度,且不进行缩放,

rem 结合 scss 移动端自适应 初级入门demo

首先说明 本篇 内容 适合初级使用 rem 开发移动端 自适应 公式计算 推导过程, 高手绕路. 目标尺寸 = rem  *  根字体大小 根字体大小 = 比例值 = 屏幕尺寸宽度/PSD稿尺寸宽度 目标尺寸 = rem  *  屏幕尺寸宽度/PSD稿尺寸宽度 Px    =  rem * (html根字体px) Html跟字体浏览器支持 最小 12像素, 避免过小加权 系数 n 实际尺寸                                 实际尺寸              屏幕尺

移动端网页 rem 自适应布局

(function(doc , win){var DocElement = doc.documentElement;var RsizeEvent = 'orientationchange' in window ? 'orientationchange' : 'resize';function ResetSize(){var deviceWidth = DocElement.clientWidth;if(!deviceWidth){return false;}DocElement.style.fo

viewport原理和使用和设置移动端自适应的方法

viewport原理和使用和设置移动端自适应的方法 HTML中: <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> 该meta标签的作用是让当前viewport的宽度等于设备的宽度,同时不允许用户手动缩放.当然maximum-scale=1.0, user-scalable=0不是必需的,是否

处理移动端自适应布局的方法- calc()与vw

在处理移动端自适应布局时,目前前端最流行的方法应该就是使用媒体查询,来设置HTML的字体大小,然后用rem为单位对Dom的宽高进行设置,这个方法的优势在于兼容性方面很好,劣势则在于当前市场上不同的机型太多,尺寸种类比较杂,所以要想做到所以尺寸机型都能适应,工作量相对比较大.目前也有人会选择用百分比进行布局,这个布局方法在仅仅处理元素的宽高上面非常好用,但是当js中要对dom元素的尺寸进行设置时,百分比的局限性就出来了,还有就是dom元素的font-size没办法用页面宽度百分比对他进行大小设置,

移动端自适应方案

本文来自大搜车博客:移动端自适应方案,主要讲:1.移动真的需要动态生成viewport吗?2.移动前端如何自适应?作者给出主观的最佳实践:最帅的flex.演示地址.里面讲了一些互联网公司的自适应做法,可以看看. 研究样本 手淘 ml.JS 天猫首页 手机携程 一个月前去了css开发者大会,听到了手淘的自适应方案,想起之前一直就想了解ml.js到底干了什么事.回来仔细研究了一下,抱着好奇心一并看了同样类型的网站的方案,深入学习一下. 研究结论 手淘 获取手机dpr(window.devicePix

移动端自适应解决方案

实现移动端自适应大概的几种方法: 1.固定宽度,使用一个模式加上少许的媒体查询: 2.使用flexbox解决: 3.使用百分比加媒体查询: 4.使用rem. 一.如果是简单app,排版不管分辨率怎么变,关键元素宽高和位置固定,只是元素容器做伸缩变换.这种app是典型的弹性布局.而类似于这种app只有一个开发模式:文字流式.空间弹性.图片等比例缩放.当然如果分辨率较小还得加上媒体查询做一些兼容. 二.根据网易的自适应做法 随着分辨率变大,页面元素的宽高和间距会明显改变,网易用的就是rem布局.网易

移动端自适应布局方案尝试

原文地址:移动端自适应布局方案尝试 问题 刚开始接触移动端H5页面的时候最困扰的几个问题是: 6或6p上明明是1px的边框怎么就成了2px或3px辣么粗! 图片,div等如何等比自适应设计图 后来慢慢知道了第一点是由于retina屏幕下设备像素比的问题造成,第二点知道了单位rem. 目的 不想因为使用rem而一一去计算设计稿的尺寸,设计稿750的尺寸的标注可以直接在sass中使用:字体不使用rem缩放,原因是: 显然,我们在iPhone3G和iPhone4的Retina屏下面,希望看到的文本字号

移动端自适应

此代码加到head标签里面,加入后可随不同机型的移动设备,设置html的fontSize大小,这样子用rem可作为解决移动端自适应的方案 !function(N,M){function L(){var a=I.getBoundingClientRect().width;a/F>750&&(a=750*F);var d=a/10;I.style.fontSize=d+"px",D.rem=N.rem=d}var K,J=N.document,I=J.document