在开发移动端APP页面时,对各操作系统各种型号的手机进行适配是必须的。然鹅,上周在开发完一个落地页后,被测试给打了回来,其中列出了一个在我看来很小的问题:单击进入页面的时候,页面还没加载完的时候字体显得特别大,整个页面不美观,网速快的时候还好网速慢的时候这种现象可能会停留1s到2s,等页面加载完就恢复正常了。遂仔细查找原因并顺利解决这个问题。

说到移动端字体的适配,那不得不提到px,em,rem这三个单位了。先来回顾一下其基本概念:

px: 绝对长度单位,即你设置了多少就是多少,在各种屏幕大小的设备上显示的大小都是一样的。

em:相对长度单位,相对于其父级元素进行计算而得到的值,在所有现代浏览器中,1em默认的字体大小都是“16px”。例:当父元素的大小为10px,设置子元素0.3em,那么子元素的大小换算成绝对单位就是10*0.3=3px大小了。

rem:相对长度单位,但它是相对于根元素而言的,页面中的根元素指的是html,我们通过设置html的字体大小就可以控制rem的大小。比如,设置html的font-size:20px;子元素btn的font-size:0.6rem,那么换算成绝对单位就是0.6*20=12px大小了

所以在兼容不同屏幕大小设备的时候rem单位是很好的选择,但经检查发现我这个出问题的页面的确用的就是rem相对单位呢,那就是根元素设置的不对,回看js代码,发现是这样动态设置根元素大小的:

 <script>
//设置html节点的font-size值
var ua = navigator.userAgent;
if(ua.indexOf('Android 2') > -1){
timmer = setInterval(function(){
var windowWidth = $(window).width();
$("html").css('font-size',windowWidth/6.4 + 'px');
if(windowWidth > 0){
clearInterval(timmer);
}
},100);
}
else {
var windowWidth = $(window).width();
$("html").css('font-size',windowWidth/6.4 + 'px');
}
</script>

也就是说刚加载页面的时候是需要根据当前窗口的屏幕大小计算出并设置根元素的大小,而与此同时页面又开始渲染了,导致这极短的时间里字体的变得特别大,等到页面加载完全又恢复正常了。找出问题的原因所在后,转而采用媒体查询的方式来动态的设置根节点元素大小,顺利地解决了页面刚打开时页面显示不正常的问题。

 @media screen and (min-width: 640px) {
html{
font-size:18px;
}
} @media screen and (max-width: 639px) and (min-width: 414px){
html{
font-size:17px;
}
}
@media screen and (max-width: 413px) and (min-width: 321px){
html{
font-size:16px;
}
}
@media screen and (max-width: 320px){
html{
font-size:14px;
}
}

App页面显示优化的更多相关文章

  1. APP H5页面显示优化

    在开发移动端APP页面时,对各操作系统各种型号的手机进行适配是必须的.然鹅,上周在开发完一个落地页后,被测试给打了回来,其中列出了一个在我看来很小的问题:单击进入页面的时候,页面还没加载完的时候字体显 ...

  2. chrome远程调试真机上的app - 只显示空白页面

    chrome远程调试真机上的app - 只显示空白页面 这个是chrome需要的插件没办法自动下载导致的,怎么办你懂得,越狱... 调试起来感觉卡顿的厉害哇,有没有更好的方式?

  3. ios&h5混合开发项目仿app页面跳转优化

    前言:本人原本是ios开发工程师,但由于现今H5的兴起,行内刮起了一阵混合开发的风气,趁着这股劲,我也学了前端开发,不说研究的多深,但也能胜任日常的开发工作.长话短说,现今的混合开发应该还处于摸索阶段 ...

  4. AngularJS应用页面切换优化方案

    葡萄城的一款尚在研发中的产品,对外名称暂定为X项目.其中使用了已经上市的Wijmo中SpreadJS产品,另外,在研发过程中整理了一些研发总结分享给大家.如本篇的在页面切换的过程中优化方案,欢迎大家跟 ...

  5. 带你实现开发者头条APP(四)---首页优化(加入design包)

    title: 带你实现开发者头条APP(四)---首页优化(加入design包) tags: design,Toolbar,TabLayout,RecyclerView grammar_cjkRuby ...

  6. web 页面内容优化管理与性能技巧

    回想一下,以前我们不得不花费大量时间去优化页面内容(图片.CSS等等),如今用户有更快速的互联网链接,我们似乎能够使用更大的图像或更大的闪存文件,里面包含的有视频或者图片.然而,随着移动开发的兴起,我 ...

  7. SEO 网站页面SEO优化之页面title标题优化

    在seo优化中,标题的优化占着举足轻重的地位,无论是从用户体验的角度出发,还是从搜索引擎的排名效果出发,title标题都是页面优化最最重要的因素.笔者总结了优化title标题应该注意的六个方面: ①. ...

  8. 大型网站性能优化(页面(HTML)优化的方法)

    页面(HTML)优化的方法 除了语言层面上进行优化外,对Web开发,HTML的优化将很大程度上减轻服务器的负载,提高网站的性能 1). 减少HTTP请求数.打开网页,浏览器会发出很多请求,图片,脚本, ...

  9. 移动端APP页面Webview模式跳转详解

    首先,来看一下关于Android home键和back键区别 back键 Android的程序无需刻意的去退出,当你一按下手机的back键的时候,系统会默认调用程序栈中最上层Activity的Dest ...

随机推荐

  1. shell 两个rpm包做差分

      当前目录下两个rpm包做差分. *.rpm 两个目录,解压rpm包. export LANG=c 差分判断是脚本还是Binary Files 脚本添加命令行提示符,awk. [root@sj_x8 ...

  2. C# - 系统类 - String类

    String类 ns:System String类封装了一系列不能被改变的Unicode字符序列 字符属于引用类型 但它又具有值类型的行为 固定不变意味着 一旦在托管堆中分配了一块内存来存储字符 字符 ...

  3. 什么是Cocos2d-x

    以下是官方对Cocos2d-x的说明."       Cocos2d-x is an open-source mobile 2D game framework, released under ...

  4. 100 high quality blogs from java developers

    This list collects 100 high quality blogs from Java developers from all over the world. Some of thes ...

  5. 转:ORACLE制造方法的比较

    转自:http://blog.itpub.net/133041/viewspace-438549/ 1.离散制造. 2.重复制造 3.流式制造 Oracle Applications 支持离散.项目. ...

  6. 5.CentOS6.6安装git

    额,因为公司的项目存放在gitlab上,所以要求员工必须会使用git 这里简单说下git在 linux下的安装,使用的说明,我会单开一篇文章来写 1.首先卸载掉CentOS6.6自带的1.7.1版本的 ...

  7. java.sql.SQLException: ORA-28001: the password has expired。

    java.sql.SQLException: ORA-28001: the password has expired. Oracle11g的密码过期. 原因:是由于oracle11g中默认在defau ...

  8. 别了 oi——一篇高三狗的滚粗遗言

    /* 开始于2015年12月 结束于2016年11月 一年的oi生涯有很多值得怀念的事 还记得去年旺哥找我学oi 当时是一脸的蒙逼 要知道 高二才开始搞是很晚了 然而 也就是那一晚之后 许多事情都变了 ...

  9. Java类加载及实例化的调用顺序

    标题起得略拗口,大概意思就是说在一个Java类中,域和构造方法的调用顺序. 1. 没有继承的情况 单独一个类的场景下,初始化顺序为依次为 静态数据,继承的基类的构造函数,成员变量,被调用的构造函数. ...

  10. JavaScript如何获得Select下拉框选中的值

    js代码: var mySelect = document.getElementById("resultList2"); var mySelectText = mySelect.o ...