移动web前端小结

原文地址:http://blog.csdn.net/small_rice_/article/details/22690535

在智能手机横行的时代,作为一个web前端,不会编写移动web界面,的确是件悲催的事情。当公司准备做一个微信的微网站时,作为一个多年经验的web前端码农,我迷茫了,真心不知道从何下手。

接下来就是搜一堆教程,然后开始编写代码,三天后,我的第一个移动端web页面编写完成。

回头想想,移动端的web页面代码编写远没有我想的那样复杂(可能是我做的这个项目比较简单的缘故)。但是就入门来说,其实是蛮简单的,我把他总结为一下几个方面:特殊的meta标签/百分百比布局宽度/rem设置字体大小/css3的使用。

好吧,让我们开始吧,以下是移动web新手的浅见,老鸟请绕行,如有赐教不胜感激。

 

1.特殊的meta标签;

因为现在我们用的智能手机(iOS,Android)的浏览器都是基于webkit内核,这里有一些针对webkit的特殊meta标签,在开发移动端web是起到很重要的作用:

 

<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>

 

强制让文档的宽度与设备的宽度保持1:1,并且文档最大的宽度比例是1.0,且不允许用户点击屏幕放大浏览;

 

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

复制代码

iphone设备中的safari私有meta标签,它表示:允许全屏模式浏览;

 

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

复制代码

iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;

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

复制代码

告诉设备忽略将页面中的数字识别为电话号码。

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

复制代码

Android中禁止自动识别页面中的邮件地址,iOS中不会自动识别邮件地址;

 

(注:由于webkit的浏览器对于html5的支持比较好,所以我们在声明头部的时候最好用html5的声明方式。当然如果你习惯了html4,那我只能告诉你,还是先学学html5在接着看吧!)

 

2.百分百布局;

拿到设计师的640px(以iPhone4的比例做的设计稿)的设计稿后,我就严格的按照设计稿设置了各个模块的高度/字号。接下来悲催的事情发生了,写出来的页面在手机上显示的异常大。我傻了,这是嘛情况!后来咨询专业人士才了解到,虽然iphone4的分辨率是960x640px,但是其屏幕的像素密度比较高,它的实际大小应该是减半的。所以在写代码时一切的高度/字号都要是设计稿的1/2。接着说百分比布局:

在做移动web页面时,我们要用百分比布局来实现自适应屏幕宽度。有pc端web页面开发经验的同学就会知道,元素的盒子模型(不清楚的同学可以去w3school上查查)。

那我想要一个元素100%显示,又必须有一个固定的padding-left/padding-right,还有1px的边框,怎么办?

  • element{
  •         width: 100%;
  •         padding-left: 10px;
  •         border: 1px solid blue;
  • }

复制代码

这样编写代码必然导致出现横向滚动条,肿么办?要相信问题就是用来解决的。这时候伟大的css3为我们提供了box-sizing属性,对于这个属性的具体解释不做赘述(想深入了解的同学可以到w3school查看,要知道自己动手会更容易记忆)。让我们看看如何解决上面的问题:

  • element{
  •         width: 100%;
  •         padding-left: 10px;
  •         box-sizing:border-box;
  •         -webkit-box-sizing:border-box;
  •         border: 1px solid blue;
  • }

复制代码

好的,问题被解决了!

 

3. rem设置字体大小;

在这里让我们花一些梳理一下css中的单位:px/em/rem(以下内容摘自0101后花园

px:就是css中最基本的长度单位了,用px做单位基本上没什么问题,可以做到让页面按套路精确的展现。但是,(听到但是的时候是不是突然有些不适,就像每次开发的同学喊我的时候,我的潜意识会告诉自己,坏了又出bug了!!)如果全篇用px布局会暗藏一个问题,就是当用户和Ctrl滚页面的时候(说白了就是ctrl+,ctrl-),你会发现页面结构产生了不可预知的错乱,因此有砖家倡导使用em替代px。

em:em是相对单位,em相对的基准点就是浏览器的字体大小(浏览器默认字体为16px),所以1em默认等于16px。那么14px=0.875em; 公式是14/16=0.875em。用em来写的话,就可以解决ctrl+,ctrl-时造成的页面错乱问题。

 

可是,问题又来了,em准确的说是相对于父节点的字号来计算的,如果自身定义了字号那么就相对自身字号来计算,举例如下:

  • html { font-size: 100%; }
  • .box-0 {
  •     height: 1em; /* 此时height等于16px */
  • }
  • .box-1 {
  •     font-size: 0.625em; /* 此时基准字号以变更为16*0.625=10px */
  •     height: 1em; /* 此时实际height等于10px */
  • }

复制代码

看明白了吧,1em并不是一个固定不变的值,再加上数学是体育老师教的,这不是自作孽吗。没关系,css3为我们引入一个新的单位就是rem可以解决这个问题。

 

rem:rem和em一样也是一个相对单位,为了方便理解,我们就理解rem为root em,顾名思义rem只相对跟节点<html>计算,这就是说只要在根节点设定好参考值,那么全篇的1rem都相等,计算方式同em,默认1rem=16px; 同理你可以设定html { font-size:62.5% } 那么1rem就等于10px,以此类推 …(当然万恶的ie678不支持rem,但是还好我们在做的是移动端web页面)

 

4.使用css3;

做这种高大上的移动web页面怎么能少的了css3。不过平时css3用的比较少,这里记下几个我在这个项目中用到的css3属性。更深入的亲们自己去学咯。同样,这里不对属性做赘述,放着强大的w3school不用,我只能对你说:药不能停啊!:

 

A.圆角(这个太常用了)

  • element{
  •         border: 1px solid blue;
  •         -moz-border-radius: 3px;
  •         -webkit-border-radius: 3px;
  •         border-radius: 3px;
  • }

复制代码

B.渐变(这个在做按钮的时候很常用)

  • element{
  •         background-image: -moz-linear-gradient(top, #2288cc, #389de2); /* Firefox */
  •         background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #389de2), color-stop(1, #2288cc)); /* Saf4+, Chrome */
  • }

复制代码

C.去掉手持设备点击时出现的透明层 (一般会在头部做格式化)

  • a,button,input{
  •         -webkit-tap-highlight-color: rgba(0,0,0,0);
  •         -webkit-tap-highlight-color: transparent; /* For some Androids */
  • }

复制代码

在应用了此属性时,链接的active属性会实效,解决的方法是,在页面unload时运行document.addEventListener("touchstart", function(){}, true);使active状态可用。(注:在小米系统下,点击链接仍然会出现红色的边框,各位同学如有解决方法,请赐教,不胜感激。)

 

D.改变盒子模型(上面已讲过)

  • element{
  •         box-sizing:border-box;
  •         -webkit-box-sizing:border-box;
  • }

复制代码

5.关于调试;

 

好了,有了上面的知识,我们就可以写一个移动的页面了。但不要太乐观了,我们要怎么调试呢?难道每写一个页面就发一次服务器,然后用手机访问测试环境!当然不需要那么麻烦,如果是用pc机的同学,可以用一个本地localhost工具调试(这次就不要各位自己动手了,附送上我自己用的工具。用法很简单,把所有的页面放到一个文件夹中,页面放在根目录下,工具也放在跟目录下,把你要调试的页面改成index.html。当然如果你有好几个页面,最好还是做一个index页面。启动调试器,用手机访问你电脑的ip,要保证手机所用的wifi和pc的网络在一个网段)。用mac的同学就到网上找一篇localhost的配置方法,开启以下这个功能就可以访问了。

时间: 2024-09-27 16:04:19

移动web前端小结的相关文章

web前端知识体系小结(转)

1. 前言 大约在几个月之前,让我看完了<webkit技术内幕>这本书的时候,突然有了一个想法.想把整个web前端开发所需要的知识都之中在一个视图中,形成一个完整的web前端知识体系,目的是想要颠覆人们对于前端只有三大块(html.css.js)的认识--做web前端需要的比这三大块要多得多. 拖了好几个月了,但是由于近期将要参加的某一个活动,我不得不这两天把这个东西整出来.说干就干.上午我就开始在办公室画草图,乱七八糟的在那儿理思路. 大家不要害怕,其实下文中的这个知识框架要比草图中的好看的

WEB前端性能优化:HTML,CSS,JS和服务器端优化

文章描述:WEB前端性能优化小结. 对前端开发工程师来说,前端性能优化的重要性是不言而喻的,最为大家所知的是YSLOW的23条优化规则,在我的理解中,性能优化不纯粹是指用户访问网站的速度,也包括开发的效率,这里我总结下我理解中的WEB前端性能优化. HTML部分 语义化HTML:好处在于可以使代码简洁清晰,支持不同设备,利于搜索引擎,便于团队开发: 减少DOM节点:加速页面渲染: 给图片加上正确的宽高值:这可以减少页面重绘,同时防止图片缩放: 防止src属性和link的href属性为空:当值为空

web前端初学技能——5大web前端核心技能

前言  Web前端开发所涉及的内容主要包括W3C标准中的结构.行为和表现,那么这三项中我们需要掌握的核心技能是什么呢?看小编来为你揭开谜底的. 1.开发语言 HTML发展历史有二十多年,历经多次版本更新,HTML5和CSS3的出现又是一次革新.有些人认为前端开发要掌握的技能简单,不就是制作网页嘛,其实不然,web前端需要掌握的核心语言xHTML+CSS+JavaScript,JavaScript作为最难的语言之一,许多编程高手也不敢妄自菲薄自封精通.由于JavaScript与html的差异性,以

vnStatSVG: 流量监控软件 vnStat 最佳 Web 前端

vnStatSVG: 流量监控软件 vnStat 最佳 Web 前端 vnStat 简介 vnStat 是一款轻量级的网络流量监控工具,目前各大 Linux/BSD 系统都已内置支持. vnStat 本身只支持命令行的交互方式,而 Web 前端则由第三方工具支持.这里汇总并对比下 vnStat 的几种 Web 前端并为大家推荐最佳的一款. vnStat Web 前端对比 vnStat 首页推荐的四个前端有: vnStat SVG frontend: 基于 CGI / SVG / AJAX 的轻量

web前端-固定的导航把 表格悬浮的表头挡住。

问题描述 固定的导航把 表格悬浮的表头挡住. 下面的是表头的css图片说明 设置top:50px 没反应 .. 解决方案 position: fixed是不占位的,也就是说你的导航下面其实是没有高度的,需要在表格前面加导航的高度的div来占位. 解决方案二: 设置表头z-index为99999试试,应该是z-index太低了 解决方案三: 解决方案四: 在悬浮导航后面加个 相关文章 web前端-固定的导航把 表格悬浮的表头挡住. js-怎么实现表格的表头固定 ,表格不要滚动条 前端-怎么让tab

国产web前端框架推荐之–NEC(网易)

NEC NEC:更好的CSS方案.nec框架是非常优秀的css框架,包含了规范.框架.代码库等内容. NEC官网:http://nec.netease.com/ 规范 你是否常常碰到以下问题:你总是看不懂他写的代码,或者读起来很吃力:你需要改他的代码却无从下手,或总是要去问他这里是什么改了会不会影响其他代码:你和他一起开发一个产品,你总是怕代码和他有冲突或互相影响:你的代码在多次维护任务之后变得越来越臃肿,越来越难以维护. 解决以上问题只需一种方法--读我们的规范! CSS规范:一系列规则和方法

国产web前端框架推荐之-NEJ(网易)

NEC是纯HTML框架,那么这款NEJ就是纯JS框架了 NEJ=Nice Easy Javascript NEJ 是由网易前端组工程师们发起创建的简洁,美观,真正的跨平台web前端开发框架:她遵循的原则是 自由定制.小巧灵活.简洁易用.愉悦编码.快乐开发. 快速下载:http://nej.netease.com/download/nej-1.0.zip 特点 依赖管理:优化开发阶段脚本文件依赖关系管理,所有脚本按需打包发布,上线产品分离依赖因此无任依赖相关开销 平台适配:支持桌面及移动平台.浏览

成为Web前端工程师的三个阶段

Web 前端工程师每个阶段所需技能大致如下:第一阶段平面设计师 : 良好的美术基础.对色彩有一定深入的理解.富有创意思维.精通PhotoShop.Fireworks 等软件.网页设计师 : (X)HTML.CSS.AS3.精通Flash.DreamWeaver等. 第二阶段UI设计师   : RIA技术,对"3D概念体系"有所认知.这里"3D"即:Design(设计).Development(开发).Deploy(产品部署)等.交互工程师 : JavaScript.

Web前端开发工程师必须知道的技术列表

想要打造并拥有一流的Web产品开发团队,在团队成员基础能力上一定要下功夫.对于Web前端产品开发来说,仅仅掌握Web1.0时代简单的"网页套接"是完全不够的.我结合自己的团队配备,特此罗列了Web前端产品工程师所涉及的技能列表如下: 通过许多实际项目,个人认为一个完备的前端产品开发团队,必须拥有如下的人才配备,也希望大家补充: ◎ 团队全体成员达到所有技能中的a级标准 ◎ 团队全体成员必须掌握两项技能中的b级标准,并保证所有的b级标准在该团队中有50%以上成员能达到 ◎ 团队全体成员必