在着手构建移动端网站之前,需明确是否已拥有PC端网站。若已存在PC端网站,可通过程序配置实现直接访问移动端。若尚无PC端网站,则直接创建移动端网站即可。
1、PC端与移动端同步
有人会问,既然移动端网站如此流行,我们是否可以仅创建移动端网站而不构建PC端网站?这个问题并无定论,但需经过分析才能得出结论。从营销角度考虑,两个网站均不可或缺,一个为PC端,一个为移动端。SEM最初主要推广PC端竞价排名,随后才开始开发移动端网站推广。两者一方面访问网址不同,一个是展示PC端网站,一个是展示移动端网站;另一方面,出价比例也不同,目前来看,移动端网站的出价比例高于PC端网站。
2、域名
PC端网站的域名常见以WWW开头,而移动端域名并无明确指向。因此,为更好地与PC端域名呼应,一般采用WAP或M开头。
3、数据同步
移动端网站的制作流程与PC端网站基本相似,建议使用Dedecms进行网站搭建。除了相同的操作流程外,前端需考虑网站兼容性,后台程序则因域名不同而出现不同后台和数据。为节省时间,可使用同一数据库,这样PC端网站更新时,移动端网站也会同步更新。尽管前端模板不同,但发表的文章内容相同。
如何进行移动端页面开发
移动端开发伴随HTML5兴起而出现,2007年首款iPhone诞生,2009年HTML5首次亮相。当时移动互联网逐渐兴起,至今已与人们日常生活密切相关。作为开发者,对于这一新兴事物,一直在探索最佳开发方式。本文介绍了从移动端诞生至今,自己探索到的开发方法,并配以相应知识点,欢迎交流、分享。
初次接触移动端,使用绝对单位
2012年接触移动端开发,当时流行制作WEB APP。WEB APP即用网页模拟原生语言(如iOS)开发的APP交互效果。尽管HTML5在表现层面突出,但在系统性能层面,WEB APP明显逊于原生应用(即Native APP)。这导致WEB APP之路暂时受阻。
随后,移动端开发方向逐渐转向移动端网页。PC端一直使用px(像素)进行代码编写,但移动端需面对不同分辨率。2012年,自己和团队成员在编写移动端时,由于初次接触,仍使用px(像素)作为单位。当时,绝大多数手机屏幕大小为320*480分辨率,因此使用像素进行移动端网页开发是可行的。
关于视口的知识,可点击查看——移动端H5知识-视口viewport
横向百分比,纵向像素值
随着移动端发展,2012年9月,iPhone5上市,引领“特殊分辨率”发展。320*480分辨率手机屏幕市场份额逐渐减少,各种分辨率如雨后春笋般涌现。
此时,固定像素开发已不适用。于是,我们开始采用百分比(相对度量单位)进行盒模型横向属性(width、左右内边距、左右外边距)制作,使用em(相对度量单位)实现文字处理。但盒模型纵向上仍使用固定像素作为单位。
然而,这种操作导致img标签处理问题。成都软件开发公司对于图片,只需设置横向百分比,纵向会自动等比例缩放。在列表页和内容页还好,内容自动撑开父级高度;但在首页或二级页,涉及父级元素高度固定的盒模型,img会出现变形(压缩或拉伸)问题。
这个问题困扰自己许久,但一直未找到完美解决方案。
响应式布局
2013年,北京流行一种新技术——响应式布局。通过媒体查询,针对不同分辨率设备,设置不同样式。响应式布局主要针对PC端、平板电脑和手机,希望一段代码同时适配三种平台。由于三种平台的样式和用户体验应有所不同,因此需要“断点”,在不同位置设置不同样式,两个“断点”之间使用相对单位进行“渐变过渡”。
响应式布局解决了屏幕像素不同样式问题,但无法解决之前问题。
关于CSS3媒体查询的知识,可点击查看——移动端H5知识-CSS3媒体查询
横向纵向均百分比
在横向百分比、纵向像素值方法无效时,尝试将纵向也设置为百分比,但发现盒模型纵向上的一些设置存在问题,如padding-top/bottom、margin-top/bottom等。文本属性line-height在设置百分比时也不是按照当前元素高度计算的。
因此,横纵向均设置为百分比的方法行不通。
关于盒模型问题及背景合理使用,可点击查看——移动端H5知识-百变盒模型以及移动端H5知识-背景的妙用
横向纵向rem
随着HTML5发展,新增rem单位。这两个单位都是相对单位。1em表示当前元素一个字体大小的尺寸;1rem表示html标签一个字体大小的尺寸,但针对html标签计算。相比之下,rem计算更简单。尝试使用rem解决横向和纵向设置,舍弃百分比,发现兼容性不错,适用于绝大多数机型和浏览器。然而,在使用华为手机测试时,发现不支持横向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知识-固定像素的实现方法