移动端开发--rem和像素如何使用!
刚开始做移动端的开发的时候,大多时候是在使用 像素(PX)来写页面和布局的,但是使用下来,还是有多少不好用!
随之就开始用 rem 来写,rem写的结果是页面放到一些屏幕上,字体过小,如果页面渲染用了rem,但是网站后台编辑器里的字体大小是用像素来做的,这就可能出现一种情况,rem设置的像素要比编辑器里设置的像素要小很多,所以所有的都用 rem 来设置大小,还是有些许问题。
互联网技术,想来想去还是看看阿里是怎么做的?打开淘宝的手机端,他使用的 px+rem混合做的,经过测试确实这种比较好!
下面就具体说下两种 rem 设置大小的方法:
第一种:按照设计稿750的大小来设置:
<style type="text/css">
html{font-size:100px;}
</style>
<script type="text/javascript">
var winW = $(window).width();
if (winW > 750) {winW = 750;}
$('html').css('font-size', winW / 7.5);
$(window).resize(function () {
winW = $(window).width();
if (winW > 750) {winW = 750;};
$('html').css('font-size', winW / 7.5);
});
</script>
设置html的大小为100px,那么页面的 750px 就相当于是 7.5rem; 100px 就是 1rem;1px就是0.01rem;也就是页面上多少像素,转化为 rem 就是除以100 即可;
第二种:按照设计稿540的大小来设置:(淘宝的做法)
<style type="text/css">
html{font-size:54px;}
</style>
<script type="text/javascript">
var winW = "";
$(window).resize(function(){partCom();});
partCom();
function partCom(){
winW = $(window).width();
$('html').css('font-size', winW / 10);
};
</script>
设置html的大小为54px;540px就是10rem;54px等于1rem;1px等于1/54像素;这种做的话,多少像素就必须计算出多少rem;
<style type="text/css">
div.jisuan{width: 100%; height:1.4814rem; line-height: 0.6296rem; background:rgba(0,0,0,0.5); position: absolute; top:0px; font-size:12px;}
div.jisuan input{width: 1.8518rem; height: 0.5555rem; line-height: 0.5555rem; font-size:16px; text-indent: 0.1851rem; border:none; outline: none;}
div.jisuan input.px{margin-left: 0.5555rem;}
div.jisuan span.dy{font-size:14px; color:#fff;}
div.jisuan span.px{font-size:24px; color: #fff;}
</style>
<div class="jisuan">
<div class="pxtorem">
<input type="text" class="px" value="540">
<span class="px">px</span>
<span class="dy">=</span>
<input type="text" class="rem" value="10">
<span class="px">rem</span>
</div>
<script>
(function(){
/* 计算
540px = 10rem
1px = (10/540) rem
*/
$("div.pxtorem input.px").blur(function(){
$("div.pxtorem input.rem").val(Math.round($("div.pxtorem input.px").val()*(10/540)*10000)/10000);
});
})();
</script>
<div class="remtopx">
<input type="text" class="px" value="10">
<span class="px">rem</span>
<span class="dy">=</span>
<input type="text" class="rem" value="540">
<span class="px">px</span>
</div>
<script>
(function(){
/* 计算
10rem = 540px
1rem = (540/10) px
*/
$("div.remtopx input.px").blur(function(){
$("div.remtopx input.rem").val(Math.round($("div.remtopx input.px").val()*(540/10)*10000)/10000);
});
})();
</script>
</div>
总结:总的来说,第一种方法更加方便,也可以用;但是更推荐第二种,参考淘宝的做法来写移动打的页面;
移动端开发--rem和像素如何使用!的更多相关文章
- 移动端开发 rem 案例
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- 移动端开发rem布局之less+媒体查询布局的原理步骤和心得
rem即是以html文件中font-size的大小的倍数rem布局的原理:通过媒体查询设置不同屏幕宽度下的html的font-size大小,然后在css布局时用rem单位取代px,从而实现页面元素大小 ...
- 移动端开发rem单位
1.用js计算 <script> (function (doc, win) { var docEl = doc.documentElement, resizeEvt = 'orientat ...
- 浅谈移动端适配-rem
对于移动端开发来说,无可避免的就是直面各种设备不同分辨率和不同DPR(设备像素比)的问题,在此忽略其他兼容性问题的探讨. 一. 移动端开发有关于像素的概念: 1.设备像素(dp),也叫物理像素.指设备 ...
- 移动端开发注意事项——meta、rem以及弹性盒
移动端开发注意事项——meta.rem以及弹性盒 随着人们对移动端的依赖程度的增强,前端开发对移动端的需求也越来越强烈.那么,在移动端开发中,有哪些事项是需要注意的呢? meta标签 在常规的pc端开 ...
- rem值计算------移动端开发计算方式
移动端开发: <meta name="viewport" content="width=device-width, initial-scale=1, maximum ...
- web移动端开发技巧与注意事项汇总
一.meta的使用 1.<meta name="viewport" content="width=device-width,initial-scale=1.0, m ...
- web移动端开发技巧
一.meta的使用 1.<meta name="viewport" content="width=device-width,initial-scale=1.0, m ...
- 29.html5 移动端开发总结
手机与浏览器 浏览器: 移动端开发主要针对手机,ipad等移动设备,随着地铁里的低头族越来越多,移动端开发在前端的开发任务中站的比重也越来越大.各种品牌及尺寸的手机也不尽相同.尺寸不同就算了分辨率,视 ...
随机推荐
- JS实现点击表头表格自动排序(含数字、字符串、日期)
这篇文章主要介绍了利用JS如何实现点击表头后表格自动排序,其中包含数字排序.字符串排序以及日期格式的排序,文中给出了完整的示例代码,并做了注释,相信大家都能看懂,感兴趣的朋友们一起来看看吧. < ...
- Jquery与.net MVC结合,通过Ajax
在工作中做了这么一个东西. Html端: @using Test.fh.Project.Storefront.ViewModels @using Test.fh.Project.Storefront. ...
- TensorFlow基础笔记(11) max_pool2D函数
# def max_pool2d(inputs, # kernel_size, # stride=2, # padding='VALID', # data_format=DATA_FORMAT_NHW ...
- e1084. 捕获错误和异常
All errors and exceptions extend from Throwable. By catching Throwable, it is possible to handle all ...
- 下载最新android adt的方法
作为一名android开发人员,需要经常更新最新版本的 android adt,但是直接到官网去找很难找到下载的链接,通过下面现成的链接,你就能够直接下载最新的android adt了, 网址是:de ...
- 关于MFC中的OnPaint和OnDraw
当窗口发生改变后,会产生无效区域,这个无效的区域需要重画. 一般Windows会发送两个消息WM_PAINT(通知客户区 有变化)和WM_NCPAINT(通知非客户区有变化). 非客户区的重画系统自己 ...
- shell脚本中判断一个字符串是否是空字符串
需求说明: 在写脚本的时候,有的时候,需要判断一个字符串是否为空,因此,在此写出如何判断一个字符串为空的方法. 简单来说,就是字符串的比较. 测试脚本: 以下的脚本用于测试str_1和str_2是否是 ...
- Trie树(字典树)(1)
Trie树.又称字典树,单词查找树或者前缀树,是一种用于高速检索的多叉树结构. Trie树与二叉搜索树不同,键不是直接保存在节点中,而是由节点在树中的位置决定. 一个节点的全部子孙都有同样的前缀(pr ...
- Effective C++ Item 18 Make interfaces easy to use correctly and hard to use incorrectly
1. A good API will provide easy to use interfaces but also provide hard to miss-use interfaces. Usua ...
- 分享一句话的同时说说遍历map的常用方法
最近在网上看到一句话,鄙人觉得这是比较经典的一句话,首先要给大家分享哈: 当一个人找不到出路的时候,最好的办法就是将当前能做好的事情做到极致,做到无人能及. Map<String, String ...