应该说,移动端的开发是伴随着HTML5的兴起而出现的,2007年第一款iPhone诞生,2009年HTML5这个名词第一次登上“舞台”。当时的移动互联网开始逐渐兴起,发展到今,移动互联网已经和人们的日常生活密切相关。作为开发者,对于一个崭新的事物,一直在尝试的“路上”,到底最好的开发方式是什么?本文介绍了从移动端诞生到现在,自己探索到的开发方法,并配以相应知识点,欢迎跟大家沟通、分享。

初次接触移动端,绝对单位的使用

自己接触移动端开发是在2012年,那时候比较新潮的是制作WEB APP。什么是WEB APP呢?所谓的WEB APP就是用网页模拟出原生语言(如iOS)开发的APP交互效果。虽然在表现层面上,HTML5表现突出,但不得不承认的是,在系统性能层面,WEB APP明显要差于原生应用(即Native APP)。这也就使得WEB APP这条路暂时性的被堵住了。

于是,移动端的开发方向逐渐向移动端网页倾斜。对于PC端,我们一直使用的是px(像素)进行代码的书写,但是到了移动端,需要面临不同的分辨率。在2012年的时候,自己和团队成员在写移动端的时候,由于是初次接触,还是在使用px(像素)作为单位。因为在2012年的时候,绝大多数的手机的屏幕大小都是320*480分辨率,所以,即便是使用像素作为单位进行移动端网页开发也是完全可以的。

关于视口的知识,可点击查看——移动端H5知识-视口viewport

横向百分比,纵向像素值

随着移动端的继续发展,在2012年9月,iPhone5上市,开始引领“特殊分辨率”的发展,于是,320*480分辨率的手机屏幕在整个手机市场当中占有的份额越来越少,各种各样的分辨率如雨后春笋般冒了出来。

此时我们再进行固定像素进行开发明显是不明智的。于是,我们开始采用百分比(相对度量单位)进行盒模型横向属性(width、左右内边距、左右外边距)的制作,使用em(相对度量单位)实现文字的处理。但盒模型纵向上还是使用固定像素作为单位。

但是,这种操作导致了一个问题——主要表现在img标签的处理上。对于图片来说,只需要设置横向百分比,纵向会自动等比例缩放。在列表页以及内容页还好,毕竟内容是自动撑开父级高度的;但是在首页或者二级页,但凡涉及到父级元素高度固定的盒模型,里面的img就会出现变形(压缩或者拉伸)的问题。

这个问题也是困扰了自己许久,但是一直没有找到一个非常好的解决办法。

响应式布局

当自己还在纠结img的处理时,2013年,在北京流行起了一种新的技术——响应式布局。通过媒体查询,针对不同大小分辨率的设备,设置不同的样式。应该说,对移动端页面的开发帮助不大,原因在于,响应式的出现主要是因为我们希望一段代码能够同时适配PC端、平板电脑以及手机。由于三种平台的样式以及用户体验应该是迥然不同的,那么此时,我们就需要有“断点”,在不同位置,有不同的样式,而在两个“断点”之间的样式,则使用相对单位做“渐变性的过渡”。

应该说,响应式布局解决了典型的屏幕像素不同样式的问题,但是却依旧搞定不了之前的那个问题。

关于CSS3媒体查询的知识,可点击查看——移动端H5知识-CSS3媒体查询

横向纵向均百分比

在横向百分比,纵向像素值的方法无效时,自己能够想到的就是纵向也设置为百分比了,但是却发现,盒模型属性在纵向上的一些设置上是存在问题的,如padding-top/bottom、margin-top/bottom等。而文本属性中line-height在设置百分比时也并不是按照当前元素高度计算的。

于是,横纵向均设置为百分比的方法就破灭了~

关于盒模型的一些问题以及背景的合理使用,可点击查看——移动端H5知识-百变盒模型以及移动端H5知识-背景的妙用

横向纵向rem

随着HTML5的发展,除了原来的em单位,又新增了rem单位。这两个单位都是相对单位。1em表示的是当前元素一个字体大小的尺寸;而1rem,也表示的是一个字体大小的尺寸,但是是针对html标签进行计算的。相比之下,rem的计算起来要简单很多。于是,自己尝试用rem解决横向以及纵向的设置,舍弃掉了百分比,发现还是挺不错的,算是兼容了绝大多数机型和浏览器。之后,在使用一款华为手机进行测试的时候,发现并不支持横向的rem。于是,又需要想办法啦~~~

正解 —— 横向百分比,纵向rem

针对华为手机,我尝试了横向百分比,发现还是能够支持的,于是就折中了一下,横向使用百分比进行控制,纵向使用rem作为单位。此时能够实现所有浏览器的兼容。

优化正解 —— 横向百分比,纵向rem

在横向使用百分比,纵向使用rem时,会由于计算产生一定的误差,于是,运用学习过的一些HTML5技术,进行移动端页面的优化,例如,使用CSS3的盒阴影替换掉边框。而对于rem,在计算中通常是存在一定的字体误差的(会计算出小数点),此时正好接触了一下淘宝的移动端页面,看到了一个不错的JS框架——flexible.js,通过这个框架对页面进行处理,能够防止小数点的出现。

关于flexible.js框架的具体用法,可点击查看——移动端H5知识-处理rem小数点 flexible.js

优化正解2 —— 任性的使用固定像素来实现

上个月月初,发现网易移动端的制作方法有些特殊,查看代码时发现,网易采用了固定像素进行书写,而通过MetaHandler.js进行了页面的控制。最近尝试了一下,感觉还是挺不错的,兼容也是比较好的,不失为一种好方法。

关于MetaHandler.js框架的具体用法,可点击查看——移动端H5知识-固定像素的实现方法

转载于:https://www.cnblogs.com/wang98/p/7929292.html

如何进行移动端页面开发相关推荐

  1. [转]移动端页面开发资源总结及技巧

    工作了有一段时间,基本上都在搞移动端的前端开发,工作的过程中遇到过很多问题,bug的解决方案,记录下来,以便后用!!!内容并不是很全,以后每遇到一个问题都会总结在这里,分享给大家! 一.meta标签相 ...

  2. Web前端——移动端页面开发

    Web前端笔记 第五部分:移动端页面开发 1. 移动端与PC端页面布局区别 视口 视口是移动设备上用来显示网页的区域,一般会比移动设备可视区域大, 宽度可能是980px或者1024px,目的是为了显示 ...

  3. Rosin-移动端页面开发调试Fiddler插件

    前言 随着移动互联网大潮流的到来,移动端H5开发需求也愈加强烈.而移动端页面的调试对开发效率起着重要作用,都有什么调试方法呢? 对于Android设备,可通过设备连接Chrome浏览器进行调试(chr ...

  4. python移动端web开发代码_移动web前端开发,前端开发工作总结,移动端页面开发-我主页-一个前端程序猿的博客...

    热门推荐 html/css 一.escape和它们不是同一类简单来说,escape是对字符串(string)进行编码(而另外两种是对URL),作用是让它们在所有电脑上可读.编码之后的... 标签: 0 ...

  5. 简单粗暴的移动端页面开发技能

    移动端响应式页面开发说简单也简单,根据屏幕尺寸调节根字体大小. 大宽度用%,高度和小宽度全部使用rem,简单粗暴. 之前阅读过大漠老师的使用Flexible实现手淘H5页面的终端适配,介绍了手淘项目的 ...

  6. 微信移动端页面开发之视频

    说起视频相信大家都不陌生,作为前端开发者,我们并不需要关注视频本身:只要做到把视频正常地在页面播放出来,用户体验良好,就完成任务了.听起来好像很简单,但是由于浏览器(特别是移动端)的快速发展,前端视频 ...

  7. HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第2章HTML基础知识

    本教程案例在线演示 有路网PC端 有路网移动端 免费配套视频教程 免费配套视频教程 教程配套源码资源 教程配套源码资源 网页开发工具 VSCode 或 WebStorm HTML简介 HTML:Hyp ...

  8. 移动端页面开发通用问题解决方案

    1.使各个手机型号展示的css页面相同的问题 解决方案:引入reset.css文件 1 @charset "utf-8";html{background-color:#fff;co ...

  9. HTML5+CSS3前端入门教程---从0开始通过一个商城实例手把手教你学习PC端和移动端页面开发第3章初识CSS

    本教程案例在线演示 有路网PC端 有路网移动端 免费配套视频教程 免费配套视频教程 教程配套源码资源 教程配套源码资源 考虑对人的描述方式 人 {身高:175cm; 体重:70kg; 肤色:黄色 } ...

最新文章

  1. frame,iframe,frameset用法和区别
  2. C# SVN检出的代码,F12显示从元数据
  3. wget命令出现Unable to establish SSL connection.错误
  4. linux脚本计时,Linux用脚本实现“时分秒“倒计时功能
  5. F#年度调查结果概述
  6. python变量和对象的关系_Python变量与对象引用的区别
  7. 低价营销网站建设是陷阱,中小企业要谨记!
  8. 第八届蓝桥杯第六题最大公共子串
  9. React-Native组件之Text内文字垂直居中方案
  10. suse linux操作系统安全加固(服务关闭)
  11. 如何在macOS Big Sur的Voice Memos中使用增强录音和智能文件夹?
  12. 06手机消费趋势ZZ
  13. Winform 实现无边框窗体移动功能
  14. PHP面向对象学习(一)
  15. Flink SQL 之 Calcite Volcano优化器(源码解析)
  16. 数独游戏技巧从入门到精通_免费教学视频数独阶梯训练让孩子从入门到精通,数学思维直线上升!...
  17. flutter 顶部导航栏TabBarView自定义下划线的宽度和圆角
  18. 想要吸引女性粉丝?三种短视频类型可尝试,点赞关注少不了
  19. iOS即时通讯进阶 - CocoaAsyncSocket源码解析(Connect篇)
  20. 如何成为优秀的软件人才(转贴)

热门文章

  1. 移动端框架 - Bootstrap
  2. 电能减去热能计算机械能,力与运动机械能热能计算题
  3. 洗护用品标准号,有害添加剂介绍和注意事项
  4. Linux c — void类型变量和指针
  5. Instagram养号:账号防封攻略
  6. 基于linux的qos编程接口研究与分析,基于Linux的QoS编程接口研究与分析(2)
  7. python金融分析-计算对数收益率及其波动率并画图
  8. 串行进位加法器和超前进位加法器代码实现及性能对比
  9. 关于Integer和int
  10. 十分钟了解K-means聚类