HTML5移动端手机网站开发流程

news/2024/11/8 14:42:54/

最近一直在研究移动手机网站的开发,发现做手机网站没有想象中的那么难。为什么会这么说呢?我们试想下:我们连传统的PC网站都会做,难道连一个小小的手机网站难道都搞不定吗?其实手机网站就是一个微缩版的PC网站罢了!至于为什么觉得难、觉得无从下手。

段亮觉得有以下几点:

一、没有完整的思路和流程

就像做网站的流程一样,如果你能知道它的流程,我相信就不会觉得做手机网站难!真正难的是你没有思路。

二、把html5这门技术想的高深莫测

好像觉得学会用html5+css3做手机网站,就相当于学会了顶尖的绝世武功。其实你错了!不要把html5这玩意想的太高深,其实做手机网站,真正意义上用不到什么的html5的强大功能。(可能对于一些不懂什么技术的小白而言:你的手机网站是用HTML5+CSS3做的啊,简直牛逼呀!能用上目前互联网上最新最前沿的技术。其实明眼人一看,就知道是用什么技术做的。俗话说的好:"外行看热闹,内行看门道")

好了扯了这么多,下面就说说怎么来开发移动手机网站吧!

基本上开发手机网站,可大致分为两大类。一类是用框架开发手机网站。一类是自己手写手机网站。

一、框架开发手机网站

一般用现在常用的开发框架有:目前Web前端最火的框架(BootStrap)、Jquery mobile..当然可能还有一些移动端开发的框架,这些我就没具体去研究过。

为什么说BootStrap是目前前端最火热的开发框架呢?

因为bootstrap自带响应式布局(栅格系统),而且能做到移动设备优先的原则。

运用bootstrap来开发网站有什么好处呢?

1.不懂设计也可以做网站

就算不懂设计,你的网页在Bootstrap的帮助下,也能拥有超高颜值。它强大的内置样式库让你的作品变成尤物。

主要体现在:字体文件和bootstrap自带的UI样式。(为广大不会UI设计的程序员,提供了福音)

2.上手快

你可以专心解决问题,冗繁的细节都丢给Bootstrap操心。可以做到一次开发,就可适配所有终端,并且能迅速上手并建出网站原型。还提供很多丰富的插件,就算你不会JS,基本能看懂常见的API,网站上的效果,基本能解决。

缺点:

1.不遵循最佳实践

我们在使用Bootstrap时遇到的最大问题之一是你的DOM元素上将拥挤大量的类。这打破了良好的web设计基本规则之一,HTML不再有语义,而且内容和表示不再分离。前端纯粹主义者会觉得这相当令人讨厌,以为它使可扩展性、重用性和维护性遇到了更大的挑战。

2. Bootstrap 太重

直接点说:就是CSS和JS有点点大。CSS压缩后115k,JS压缩后35k

如果你想要使用Bootstrap的所有功能,你应该好好考虑资源的加载时间。当然,对于一些地方这可能不是问题,但是在新西兰互联网不得不横跨太平洋,这时数据达到那儿将是很缓慢的。因此考虑你的目标市场。

相信任何框架都有它的优点,同时也是有它的缺点的。没有一个产品是很完美的,所以根据自身实际情况进行选择。至于一些其它框架暂时不做过多的解释了,相信只要你肯愿意百度一下,就可以找到你想要的答案。

二、手写手机网站

一般我们自己手动开发手机网站的话,基本可以划分两类来做到。一类是通过在网页头部添加meta标签进行实现(网页指html5的格式来开发)。另一类是通过CSS3的Media标签(媒介查询)来实现。不了解媒介查询的朋友,可以看看这篇文章:响应式布局。

在这里我们详细讲解下,利用添加meta标签来做手机网站。

基本在网页头部我们只需添加四个meta标签就可以实现一个手机网站的框架。我一起来看看是哪些meta标签。

1、添加viewport标签

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" /> 
详细属性:
width  ----  viewport的宽度(width=device-width意思是:宽度等于设备宽度)  
height ------  viewport的高度(height=device-height意思是:高度等于设备宽度)  
initial-scale ----- 初始的缩放比例  
minimum-scale ----- 允许用户缩放到的最小比例  
maximum-scale ----- 允许用户缩放到的最大比例  
user-scalable ----- 用户是否可以手动缩放  

关于viewport的详细原理和知识点,各位就百度吧!在这里我就不做详细的讲解了。

2、禁止将数字变为电话号码

<meta name="format-detection" content="telephone=no" /> 

一般情况下,IOS和Android系统都会默认某长度内的数字为电话号码,即使不加也是会默认显示为电话的,so,取消这个很有必要!

3、iphone设备中的safari私有meta标签

<meta name="apple-mobile-web-app-capable" content="yes" />

它表示:允许全屏模式浏览,隐藏浏览器导航栏

4、iphone的私有标签

<meta name="apple-mobile-web-app-status-bar-style" content="black">

不过腾讯对这个png图标的命名并不规范,常规我们要求文件名应为 apple-touch-icon.png 或 apple-touch-icon-precomposed.png ,前者的命名iOS会为这个图标自动添加圆角、阴影和高亮覆盖层,后者则不会添加这些效果。

手机网站基本框架代码:

<!doctype html>  
<html>  
<head>  
<meta charset="utf-8">  
<title>手机网站</title>  
<meta name="keywords" content="" />  
<meta name="description" content="" />  
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" />  
<meta name="format-detection" content="telephone=no" />  
<meta name="apple-mobile-web-app-capable" content="yes" />  
<meta name="apple-mobile-web-app-status-bar-style" content="black">  
<meta name="author" content="duanliang, duanliang920.com" />  
<style>  body{font-size:62.5%;font-family:"Microsoft YaHei",Arial; overflow-x:hidden; overflow-y:auto;}  .viewport{ max-width:640px; min-width:300px; margin:0 auto;}  
</style>  </head>  <body>  <div>  大家好!我是段亮,这是我的第一个手机网页哦!  </div>  
</body>  
</html>  

其实在移动端的开发让我纠结的是在字体单位上的选择。

随着CSS3的兴起,有一种叫rem的单位渐渐的出现在我们的视野中。它是一个相对单位,能实现响应式的那种。它是相对于html根元素来设置当前文字大小,或者宽高的。因为它是一个不固定值,不像PX。听说在PX这个单位在PC和移动的解析不同,所以才使用rem的。这点我也不是很清楚,也请教了一些做手机网站的高手,了解了一些信息。

原来大部分的人依旧是使用PX来布局,rem都用的少。目前来说,就移动端的淘宝首页就是采用rem来作为单位来布局的。关于使用rem单位这个问题以及它的好处:还得需要大神来解答这个问题,毕竟我也只是刚接触。

关于手机网站的调试问题

一般我们采用的:在浏览器调试+真机测试,因为浏览器毕竟只是一个模拟工具,实际开发的话,我们还得用真机去测试。

比如:(Android类手机,iPhone5、5s、6、6Plus...)

而在浏览器上测试,可以chrome(谷歌浏览器)的F12调试工具:有个手机样的小图标,点击就能模拟手机测试。








http://www.ppmy.cn/news/665117.html

相关文章

H5性能优化方案

H5性能优化意义 对于一个H5的产品&#xff0c;功能无疑很重要&#xff0c;但是性能同样是用户体验中不可或缺的一环。原本H5的渲染性能就不及native的app&#xff0c;如果不把性能优化做起来&#xff0c;将极大地影响用户使用产品的积极性。 用户感受 当用户能够在1-2秒内打…

HTML5学习

文章目录 autofocus自动聚焦语义化标签DOCTYPE声明metameta http-equivmeta charset的指定viewport移动端视口 不允许写结束标记的元素可以省略结束标记的标签属性值的简写废弃标签contenteditable规定元素内容是否可编辑hidden属性data-* 属性draggable拖拽属性dataTranfer数据…

android iphone字体,网站中的字体设置--兼容苹果、pc、安卓系统的字体设置

在网站设计制作中很多人会遇到一个问题:设计图和实际出来的网站的页面字体差别很大?苹果、pc、安卓以及各个浏览器显示都很不一样? 这要从网站设计各个职能的人说起了,平面设计师设计完后不管了,丢给前端工程师开发h5代码。而前端设计师做完后又丢给程序开发写后台程序………

如何做好云渗透测试的威胁建模(上)

NO.1 威胁建模相关定义 微软针对威胁建模&#xff08;Threat modeling&#xff09;的描述&#xff1a;威胁建模是帮助保护系统、应用程序、网络和服务的有效方法。这是一种工程技术&#xff0c;用于识别潜在的威胁和建议&#xff0c;以帮助降低风险并在开发生命周期的早期实现…

Vim 使用学习记录(1)

前言 在使用编辑器的时候依然存在很多不方便&#xff0c;Vim使用上手成本很高&#xff0c;但还是得学着用&#xff0c;此系列用来记录学习使用的Vim基本命令和用法 参考链接 zhihu 参考链接 博客 vim基本模式 vim的基本模式分为&#xff1a; 命令模式&#xff08;Command Mo…

Pycharm新建模板默认添加作者时间等信息

在pycharm使用过程中&#xff0c;对于每次新建文件的shebang行和关于代码编写者的一些个人信息快捷填写&#xff0c;使用模板的方式比较方便。 方法如下&#xff1a; 1.打开pycharm&#xff0c;选择File-Settings 2.选择Editor--Color&Style--File and Templates--Python-S…

js手动实现Promise;JS实现promise

Promise的实现主要有以下几个方法&#xff1a; 构造函数 - 创建一个Promise实例。 then() - 处理成功和失败的回调函数&#xff0c;并返回一个新的Promise实例。 catch() - 处理Promise的reject状态&#xff0c;并返回一个新的Promise实例。 resolvePromise() - 根据Promise链…

如何在多个 Linux 服务器上运行多个命令

动动发财的小手&#xff0c;点个赞吧&#xff01; 如果你正在管理多台 Linux 服务器&#xff0c;并且你想在所有 Linux 服务器上运行多个命令&#xff0c;但你不知道该怎么做。不用担心&#xff0c;在这个简单的服务器管理指南[1]中&#xff0c;我们将向您展示如何在多个 Linux…