liveapp场景应用,给前端工程师的一些建议

liveapp场景应用,一般针对的是移动端,近来也是很火,颇有一些感受,拿来分享一下。

页面宽度范围:

一般移动端页面我们的像素范围是320px-640px,最大640px,最小320px,所以设计稿就是按照640px来做

布局方式:

  流式布局,百分比布局和rem。

  目前我用过的主要是这rem和流式布局

流式布局:

  网页的主要架构部分按照百分比布局,宽度百分比,高度定死;

  如果是图片宽度设置百分比,高度根据图片的比例自适应,如果是封面图片可以高度定死,用background-size:cover显示部分就行;

  一些具体的内容直接用像素定宽高就行了,比如用户头像,一些按钮,一些比较固定的文字。

  下面这个页面就是流式布局,分别是640和320情况下的样子,下面的页面不是场景应用,只是举例

  

  

  流式布局一般偏向于文字展示的页面,对整个页面比例要求不那么高的。

专门说说rem布局:

  rem就是偏向于图片较多,不出现滚动条的满屏页面,且高度还原设计图比例的情况,所以下面的例子是基于满屏页面的情况。

  关于rem的具体介绍参考  腾讯的rem文章http://isux.tencent.com/web-app-rem.html

  因为rem是根据html的字体像素确定它的值,也就是html{font-size:20px}时 1rem==20px。

  总之我们可以用js获取到屏幕的宽高后,通过修改html的font-size来控制整个页面的大小,来达到完整并高度还原设计稿。

  

  我们的宽度范围仍然是320-640,我们怎么定义html的字体像素范围呢。

  我们需要用字体像素对应320-640,比如font-size为10px的时候对应320px,那么确定10px为最小的基数,那么对应关系就会如下:

font-size 1rem 宽度 用rem表示宽度
10px 10px 320px 32rem
20px 20px 640px 32rem

但实际上我更喜欢这样:

  

font-size 1rem 宽度 用rem表示宽度
20px 20px 320px 16rem
40px 40px 640px 16rem

因为低于12px在某些浏览器里是默认还是为12px,因此当我们给html设置font-size:10px的时候,这时还是12px,就会对布局造成影响。

所以一般我以20px作为基数对应320px。

还有比如iphone4里,在微信下浏览器的高度比较矮,这时我们为适应高度的还会把font-size设置到18px左右,这样才可能显示完整。

好现在,我们设置body的宽度为16rem,根据当前屏幕的宽度修改html的跟字体大小

如果屏幕宽度大于等于640px,我们就设置为40px,小于等于320px就设置为20px。

  如果是在320,640之间,就用对应的rem去计算,比如20px为320px基数时候,rem最大的值是16rem,16就作为基数去除屏幕宽度,

比如当前屏幕宽度是400px,那么根字体大小就是 400/16=26px

以下是js resize:

window.onresize = function(){
    resize();
}

function resize(){
    //html:20px: 16rem 320px
    //html:40px: 16rem 640px
    var base = 16;//rem

    var wid = $(window).width();
    var hei = $(window).height();
    if(hei < 460){//适应个别高度较矮的设备
        $(‘html‘).css(‘font-size‘, ‘18px‘);
        return;
    }
    if(wid < 320){
        $(‘html‘).css(‘font-size‘, ‘20px‘);
        return;
    }
    if(wid > 640){
        $(‘html‘).css(‘font-size‘, ‘40px‘);
        return;
    }
    $(‘html‘).css(‘font-size‘, wid/16 + ‘px‘);//在320和640之间,除以16的基数,来算font-size
}
resize();

基于rem,我们几乎都可以用绝对定位,相对于body就行了。

比如我们的设计稿,设计稿是640px的

有一个按钮宽度是200px,高度是100px,相对于图片左边距是40px,相对于图片上边距是80px。

那么我们的css就应该这样写:

  

.button{   position: absolute;
     width: 200/40rem;(5rem)
     height: 100/40rem;(2.5rem)
     left: 40/40rem;(1rem)
     top: 80/40rem;(2rem)
}

如果我们的设计稿是320px,按钮宽高边距和上面一样,那么我们css就应该这样写:

.button{
    position: absolute;
     width: 200/20rem;(10rem)
     height: 100/20rem;(5rem)
     left: 40/20rem;(2rem)
     top: 80/20rem;(4rem)
}

  这样布局起来会省很多事情。

百分比布局:

还有一种就是单纯的百分比布局,也是全部用绝对定位,和以上rem不同的就是,用的百分比作为宽高边距的单位,这种方式并不推荐,控制力不强。

以下是一些心得:

  1.fastclick最好都要使用

  2.css3动画写在before和after里是无效的

  3.基于微信开发的时候,微信缓存非常厉害哟,有一次改了几个小时代码一直不对,最后发现是微信缓存,有时候不得不去系统管理里关闭微信和微信缓存进程。

  4.最好还是用构建工具,比如gulp、grunt

  5.做一个通用的demo start,供下次使用,包括gulp等构建工具,常用的三方和自定义的less、css loading,js相关文件和三方库

  6.写一个图片预加载,未加载完前显示css loading,加载完了再显示页面,

以下是预加载的代码,主要针对一些大图片做加载,因为一般主要的大点的图片加载完,页面都会加载完,这算是一种小技巧吧,实际的精度也不差:

    //图片预加载
    function preloader(images, cb){
        i = 0;
        var onComplete = function(e){
            i++;
            if(i == images.length){
                cb && cb();
            }
        }
        for(j in images) {
            var img = new Image();
            img.onload = img.onerror = onComplete;
            img.src = images[j];
        }
    }

    var onImgLoaded = function(){
        $(".loading").addClass("hide");         /*显示正式页面*/
    }

    //使用
    preloader(["/img/guide.png","/img/combine-list-bg.png","/img/frontpage-words.png","/img/frontpage-bg.png"], onImgLoaded);

7.弹框居中的方式,推荐用下面代码:

.tf-center{
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -moz-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}
时间: 2024-08-28 15:26:26

liveapp场景应用,给前端工程师的一些建议的相关文章

想做web前端工程师应该学习些什么?

偶然间看到这篇文章,感觉博主写的挺不错的,如果你想做web前端工程师的话,建议您阅读以下这篇文章,其实web前端工程师所做的工作其实就是网站设计,有些小公司的美工其实就是做web前端的.这篇文章对于想学web前端工作的人有很大的帮助,如果您是做SEO的,也建议您学习下博主推荐的这些课程,或许对你以后的职业.薪资都有很大的帮助! 遇到很多新手,都会问,如果要学习web前端开发,需要学习什么?难不难?多久能入门?怎么能快速建一个网站?工资能拿到多少?还有些让我推荐一些培训机构什么的要去学习.我建议是

前端工程师的价值体现在哪里?

这是一个很老的话题"前端工程师的价值体现在哪里?".有人说:"前端工程师之于网站的价值犹如化妆师之于明星的价值."一位好的Web前端开发工程师在知识体系上既要有广度,又要有深度.当然,Web前端工程师并不是设计师,每天接触最多的是代码,代码,还是代码.对此,你是如何给自己定位的?你的价值是否能够得到很好的体现?如今,旧话重提无非是想与开发者们共同探讨下前端工程师的价值所在,希望对你有所感悟. 一起来看下业内资深大牛对前端工程师是如何评价的: 张克军 - 豆瓣前端工程

整个互联网行业都缺前端工程师?

本文来自 100offer 团队原创,部分内容译自:Why can’t we find Front End developers? 前端工程师的缺乏问题几乎蔓延到整个互联网行业,从刚起步的创业公司,到上市公司乃至巨头,这个问题都存在着.没错,优秀的前端工程师简直比大熊猫还稀少. 每天,100offer 的 HR 群都有人在吐槽招不到靠谱的前端工程师.实话说对这些需求,100offer 也无能为力:在供不应求的前端招聘市场上,优秀的前端工程师才是有话语权的那一方. 在国外,前端工程师一样是需求旺盛

前端工程师需要明白的「像素」

场景: 人物:前端实习生「阿树」与 切图工程师「玉凤」 事件:设计师出设计稿,前端实现页面 玉凤:树,设计稿发给你啦,差那么点像素,就叼死你┏(  ̄へ ̄)=? 阿树:~(>_<)~毛问题噶啦~ 阿树:哇靠,为啥你给的设计稿是640px宽 ,iPhone 5不是320px宽吗??? 玉凤:A pixel is not a pixel is not a pixel, you know ? 阿树:(#‵′),I know Google... 为什么会出现以上的情况,难道他们当中一位出错了,摆了这样的

淘宝前端工程师:国内WEB前端开发十日谈

转自:http://www.jianshu.com/p/8cf2df3fdbf2 一直想写这篇“十日谈”,聊聊我对Web前端开发的体会,顺便解答下周围不少人的困惑和迷惘.我不打算聊太多技术,我想,通过技术的历练,得到的反思应当更重要. 我一直认为自己是“初级”前端开发工程师,一方面我入道尚浅,只有短短几年,另一方面我自知对技术的钻研并不深入,可能是由于环境的原因,当然最重要的是,我幸运的参与到互联网崛起的浪潮之巅.时势造就了一批技能薄弱但备受追捧的“弄潮者”,这在很大程度上影响我们对“技术本质”

阿里天猫魔盒 TV 资深前端工程师刘丹:兴趣是最好的老师

他是电子科技大学的高材生,通过兴趣和努力脚踏实地的成为了一名优秀的前端工程师.他是一个对新技术充满了无限渴望的优秀开发者,喜欢挑战.喜欢学习.热爱分享.他就是本期程序员客栈专访优秀前端工程师:前京东现阿里天猫魔盒TV前端工程师:刘丹 程序员客栈王鑫:可否简单的做一下自我介绍? 刘丹:大家好,我是刘丹,目前就职于阿里巴巴,担任天猫魔盒TV端前端开发,先后参与了TV端焦点引擎的研发,TV端组件规范和生态的搭建,主导TV端H5页面及其应用搭建系统开发,研究TV端web性能优化方案,以及nodejs方面

互联网产品团队中Web前端工程师的重要性

国内外各大互联网公司,都有UEx/d|UCD|CDC(Customer Research & User Experience Design Center)团队. 在很多公司会认为,合格的产品经理应该具备技术能力.从另一些角度思考,是否技术人员也需要拥有产品策划能力或设计能力?技术思维与产品思维是相辅相成.缺一不可的.高超娴熟的编码技巧支撑项目快速落地.但拥有了产品的角色之后,能让我们站在更高的角度去解读产品,避免走弯路. 打住,我思考的还不是这些高大上的主题,只是实实在在的前端编码解决方案. 好

物联网浪潮之下,前端工程师如何迎刃而上?

经历了过去几年的发展,Node.js.Angular.js.Vue.js 等前端主流技术框架填补了原有技术的空白与不足,日渐趋于成熟.然而信息时代的来临,任何的技术不会趋于稳定而止于脚下,现如今物联网.人工智能.虚拟现实等新领域的出现,意味着前端下一风口的来临,新的技术革新与发展机遇悄然而至.在火热的物联网浪潮之下,作为一名前端开发工程师,如何迎接这一风口?JavaScript.Python 等脚本语言又会与物联网碰撞出怎样的火花?真正的转型需要学习什么样的新技能?未来发展前景如何?基于此,我们

前端工程师也要关注代码版本控制

那么,为什么说前端工程师也要关注代码版本控制呢?因为web开发和软件开发本质无异,同样具有迭代周期,需求不是一揽子提完.一口气开发完的,是有步骤的开发,因此,每次上线开发哪些功能.为后续扩展功能留足哪些接口.代码在可扩展和可维护性上应当作哪些考虑……,这些应当是每个工程师关注的事情,所谓迭代就是指这种需求的叠加,这是软件开发的常态,也是web开发的常态,刚开始,前端工程师总会不断抱怨没完没了的需求,代码起初还算干净,但很快就越来越乱,代码的版本管理对于Web前端工程师来说有些困难,这也使得大部分