`
nicegege
  • 浏览: 589680 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】手机页面rem布局

 
阅读更多

手机页面设计一般的大小是640,但是,手机屏幕大小确实不确定的,这样,怎么才能做出适应所有手机的手机页面呢?
一般的解决方案有两种,rem布局和百分比布局。这两种方案我有都试过,所以现在更推荐用rem布局来制作手机页面;

rem布局的兼容性:
Mozilla Firefox 3.6+、Apple Safari 5+、Google Chrome、IE9+和Opera11+、ie6-ie8 还是别用rem
不过现在的手机一般浏览器,一般可以直接不用去管IE内核的浏览器了。

REM的计算公式
例:html 设置font-size:16px 1rem = 16px 
那么640px = 640/16 =40rem

个人建议设置为100px 方便计算

首先,给页面的html定义一个100px的
html{ font-size:100px;}/*设定基础rem*/

然后,最核心的代码就是这一段js运算了,根据页面的大小来控制基础rem的值;

new function (){
   var _self = this;
   _self.width = 640;//设置默认最大宽度
   _self.fontSize = 100;//默认字体大小
   _self.widthProportion = function(){var p = (document.body&&document.body.clientWidthdocument.getElementsByTagName("html")[0].offsetWidth)/_self.width;return p>1?1:p<0.5?0.5:p;};
   _self.changePage = function(){
       document.getElementsByTagName("html")[0].setAttribute("style","font-size:"+_self.widthProportion()*_self.fontSize+"px !important");
   }
   _self.changePage();
   window.addEventListener("resize",function(){_self.changePage();},false);
};

demo

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<meta charset="utf-8">
<title>rem基础布局</title>
<script type="text/javascript">
new function (){
   var _self = this;
   _self.width = 640;//设置默认最大宽度
   _self.fontSize = 100;//默认字体大小
   _self.widthProportion = function(){var p = (document.body&&document.body.clientWidthdocument.getElementsByTagName("html")[0].offsetWidth)/_self.width;return p>1?1:p<0.5?0.5:p;};
   _self.changePage = function(){
       document.getElementsByTagName("html")[0].setAttribute("style","font-size:"+_self.widthProportion()*_self.fontSize+"px !important");
   }
   _self.changePage();
   window.addEventListener("resize",function(){_self.changePage();},false);
};
</script>
<style type="text/css">
/*=== base style===*/
*{margin: 0px; padding: 0px;}
ul{list-style: none;}
.wrap{min-width: 320px; max-width: 640px; width: 100%; margin: 0px auto;; background: #2a6ace; font-family:"微软雅黑", "helvetica neue",tahoma,"hiragino sans gb",stheiti,"wenquanyi micro hei",\5FAE\8F6F\96C5\9ED1,\5B8B\4F53,sans-serif; font-size: 12px;}/*适用于手机端:字体大小用em,1em=16px;为默认字体大小;最大宽度640*/

.pro{width:6.2rem; margin: 0px auto; padding-top: 20px; overflow: hidden;}
.clearfix:after {content:"";height:0;display:block;clear:both;}
.clearfix {zoom:1;}
.pro ul{width:6.4rem;}
.pro li{width: 3rem; height: 3.6rem; float: left; margin: 0 0.2rem 0.2rem 0;}
.pro li .box{width: 3rem; height: 3rem; background: #ccc;}
.pro li p{font-size: 0.24rem; line-height: 0.6rem; text-align: center;}
</style>
</head>
<body>
<div class="wrap">
   <div class="pro">
      <ul class="clearfix">
         <li> <div class="box"></div> <p>区块文案</p> </li>
         <li> <div class="box"></div> <p>区块文案</p> </li>
         <li> <div class="box"></div> <p>区块文案</p> </li>
         <li> <div class="box"></div> <p>区块文案</p> </li>
         <li> <div class="box"></div> <p>区块文案</p> </li>
      </ul>
   </div>
</div>
</body>
</html>

分享是一种美德,尊重原创也是美德。http://www.alixixi.com/web/a/2015031794526.shtml
分享到:
评论

相关推荐

    SuNing(rem布局).zip

    苏宁移动端的仿写项目采用REM布局,旨在模拟苏宁官网在手机和平板等小屏幕设备上的用户体验。 REM单位是相对于根元素(通常是`html`元素)的字体大小的单位,而不是相对于父元素。通过改变根元素的字体大小,可以...

    rem布局案例

    在移动Web开发中,"rem布局"是一种常用的响应式布局技术,它可以帮助开发者实现不同屏幕尺寸下的页面自适应。在这个“rem布局案例”中,我们看到开发者采用了Less预处理器和rem单位来创建一个模仿京东手机端界面的...

    手机端页面rem宽度自适应脚本

    ### 手机端页面rem宽度自适应脚本详解 #### 一、引言 随着移动互联网的迅速发展,用户越来越倾向于使用手机等移动设备访问网页。为了确保网站能够在不同尺寸的屏幕上良好显示,开发者们需要采取不同的技术手段来...

    黑马面面 flexible+rem布局

    在前端开发领域,"flexible+rem布局"是一种常见的响应式设计方法,它结合了Flexbox布局模型(Flexible Box)和相对单位rem(root em),用于实现不同屏幕尺寸下的自适应界面。这两种技术的结合使得网页能够更好地...

    移动web开发-rem布局案例源码,html+css素材

    CSS部分,rem布局的关键在于设置一个基于屏幕宽度的基础字体大小,并根据这个基础值来设定元素的宽高和其他尺寸。例如: ```css html { font-size: 16px; /* 初始化基础字体大小 */ } @media (min-width: 320px) ...

    移动布局之rem适配布局、Bootstrap前端开发框架.rar

    使用`rem`单位进行布局的优势在于,通过调整根元素的字体大小,可以实现整个页面的比例缩放,从而达到跨设备适配的效果。在移动设备上,这尤其重要,因为不同设备的屏幕尺寸和分辨率差异较大。通过适当地设置`html`...

    H5C3的易错点与@media + rem布局,以及动态图电池和旋转.zip

    总结,理解和掌握H5C3的易错点、`@media`查询与`rem`布局,以及动态图电池和旋转,是提升Web开发技能的关键。这不仅涉及到语法规范,还包括响应式设计原则和动画效果的实现,都是现代Web开发中不可或缺的技能。通过...

    仿京东移动端首页布局(固定尺寸、rem适配、vw适配)

    仿京东移动端首页布局,包括固定尺寸布局、rem适配布局、vw适配布局,设计稿尺寸使用的iPhoneXR的414px * 896px。 我们可以通过在不同移动端设备上展示移动端网页,发现固定尺寸布局的不足之处,以及rem适配、vw适配...

    CSS3中媒体查询结合rem布局适配手机屏幕

    总结来说,CSS3媒体查询结合rem布局是一种强大的工具,它使得我们可以根据用户设备的屏幕尺寸轻松地调整网页布局。通过适当地设置媒体查询断点和动态调整`html`元素的`font-size`,我们可以创建出高度响应的移动网页...

    了解真实的REM手机屏幕适配

    除了宽度和高度,`rem`单位还可以应用于边距、内边距、字体大小等其他CSS属性,帮助实现整个页面的响应式布局。 在学习和使用`rem`的过程中,需要注意浏览器兼容性。虽然大多数现代浏览器都支持`rem`单位,但一些较...

    使用CSS3的rem属性制作响应式页面布局的要点解析

    使用CSS3的rem属性制作响应式页面布局的关键在于理解rem单位的本质和其在不同屏幕尺寸下的动态调整。rem(root em)单位是一个相对单位,它表示元素的尺寸相对于根元素(通常是html)的字体大小。这使得rem成为构建...

    详解rem 适配布局

    这意味着,通过调整`&lt;html&gt;`元素的`font-size`,我们可以控制整个页面中所有使用`rem`单位的元素的大小,从而实现跨设备的布局自适应。 在适配布局的目标中,比如让两个`div`无论在大屏还是小屏上都能占据屏幕的...

    remjs移动端页面满屏H5自适应方案

    我们将讨论rem布局的优势、实现原理以及如何应用到实际项目中。 首先,rem(root em)是CSS3引入的一个长度单位,代表相对于根元素(通常是html元素)的字体大小的单位。与传统的em单位不同,em是相对于父元素的...

    移动Web开发之 rem适配布局----苏宁首页案例制作

    移动Web开发中的“rem适配布局”是一种针对不同屏幕尺寸和分辨率进行自适应设计的方法,主要应用于智能手机和平板电脑等移动设备。在这个“苏宁首页案例制作”中,我们将深入探讨如何利用rem单位来构建响应式的网页...

    移动Web开发布局(流式布局、flex弹性布局、less+rem+媒体查询布局)

    本文将深入探讨流式布局、Flexbox弹性布局以及Less+REM+媒体查询布局策略,这些都是现代移动Web开发的关键知识点。 首先,我们来了解流式布局。流式布局是一种基于百分比宽度的布局方式,它允许网页内容根据浏览器...

    详解H5 活动页之移动端 REM 布局适配方法

    本文将深入探讨移动端REM布局的适配方法,这是H5活动页实现响应式设计的关键技术。 首先,我们需要理解什么是REM(Root EM)。REM是一个相对于根元素(通常是html元素)font-size的长度单位。这意味着,如果我们...

    手机端转换rem适应

    本文将深入探讨如何在手机端利用`rem`进行页面布局的适配,并通过提供的代码实例来说明。 1. **理解rem单位** `rem`代表“root em”,与`em`单位类似,但不同之处在于`em`是相对于父元素的字体大小,而`rem`始终是...

    自适应rem的css文件

    通过使用rem,我们可以方便地调整整个页面的布局,以适应不同分辨率和尺寸的设备。 1. **理解rem单位** rem单位的全称是“root em”,与传统的em单位类似,但不同之处在于em是相对于父元素的字体大小,而rem始终相...

    移动端适配rem文件js代码.zip

    "移动端适配rem文件js代码.zip"这个压缩包就是针对这一需求提供的一种解决方案,它包含了一个名为“rem.js”的JavaScript文件,用于动态调整页面元素的大小,以适应不同分辨率和屏幕尺寸的手机或平板电脑。...

Global site tag (gtag.js) - Google Analytics