移动Web资源管理:http://www.cnblogs.com/PeunZhang/p/3407453.html#question_17
Web App优化整理:http://www.cnblogs.com/yexiaochai/p/3759959.html
web移动端常见问题解决方案:http://www.html5cn.org/article-9314-1.html
响应式设计方案分析:http://blog.csdn.net/uikoo9/article/details/46555751
单页webapp应用开发(SPA架构):http://my.oschina.net/maomi/blog/183790?p=1#OSC_h4_15
移动端页面开发资源总结:http://www.imooc.com/article/1542
Zepto使用注意事项:http://www.cnblogs.com/samwu/archive/2013/06/06/3121649.html
移动端下拉刷新插件:http://www.cnblogs.com/duanhuajian/archive/2013/04/08/3008323.html https://github.com/ximan/dropload
移动webapp触摸滑动最优解决方案:http://be-fe.github.io/iSlider/#demo http://www.swiper.com.cn/
移动端的fullPage.js:https://github.com/yanhaijing/zepto.fullpage
适应手机端的jQuery图片滑块动画:http://www.html5cn.org/article-7151-1.html
移动端自适应图片大小:http://www.w3cplus.com/css/flexible-images.html
经过padding-bottom或者padding-top实现等比缩放响应式图片:http://www.cnblogs.com/websalon/p/3602324.html
纯CSS解决移动端自适应组件:http://www.alloyteam.com/2016/01/let-see-css-world/
模块、图片、背景图片、视频等响应式(宽高等比缩放)布局:http://ons.me/493.html
移动端Web开发调试之Chrome远程调试:http://blog.csdn.net/freshlover/article/details/4252864
head标签部分添加如下代码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> css
<meta name="renderer" content="webkit|ie-comp|ie-stand">html
<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,viewport-fit=cover">
<meta content="yes" name="apple-mobile-web-app-capable">
<meta content="yes" name="apple-touch-fullscreen">
<meta content="black" name="apple-mobile-web-app-status-bar-style">
<meta content="telephone=no,email=no" name="format-detection">
<!--[if lt IE 9]>
<script src=http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js"></script>
<![endif]-->
第一个meta标签表示:强制让文档的宽度与设备的宽度保持1:1,文档初始化缩放比例是1:1,不容许用户点击屏幕放大浏览,容许用户缩放到的最大比例。尤为要注意的是content里多个属性的设置必定要用分号+空格来隔开,若是不规范将不会起做用。其余属性有:width;height; initial-scale; minimum-scale; maximum-scale; user-scalable;
第二个meta标签是iphone设备中的safari私有meta标签,它表示:容许全屏模式浏览;
第三个meta标签也是iphone的私有标签,它指定的iphone中safari顶端的状态条的样式;
第四个meta标签表示:告诉设备不识别邮件和忽略将页面中的数字识别为电话号码
常见问题:
1.移动端建议用硬件加速的属性,而不是直接用margin。(transition移动一个div,margin会卡顿)
2.IE8或者更老的浏览器不支持媒体查询。你可使用media-queries.js或者respond.js来在IE中添加对媒体查询的支持。
3.大部分4.7-5寸设备的viewport宽设为360px;5.5寸设备设为400px;iphone6设为375px;ipone6 plus设为414px。
4.viewport:能优化移动浏览器的显示。若是不是响应式网站,不要使用initial-scale或者禁用缩放。
5.虽然移动端不用写:hover,但光写个:active是不够的。实测Android 2.3下按过的按钮会留下浏览器默认颜色,因此记得给:visited也加个颜色。
6.遇到写动画animation的时候,不要用到伪类上。否则Android是没效果的。
7.用Flexbox作等分时,记得给宽度。否则Android里若是内容字数不同,会撑开。
8.在ios的safari,click的捕获被认为和滚屏、点击输入框弹起键盘等同样,是一种浏览器默认行为,便可以被event.preventDefault()阻止的行为。
9.position:fixed在手机里面兼容性不是很好,尤为是在UC里面,若是要求比较高的话,老老实实用JS写吧。
10.-webkit-tap-highlight-color:
这个属性只用于iOS (iPhone和iPad)。当你点击一个连接或者经过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景。要重设这个表现,你能够设置-webkit-tap-highlight-color为任何颜色。想要禁用这个高亮,设置颜色的alpha值为0便可,即rgba(0,0,0,0)。
11.让html中的文本不可选,禁用长按图片弹出保存的菜单:
img{-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
12.开发中经常使用自定义滚动条效果:::-webkit-scrollbar:{width:8px;height:8px;}//血槽宽度
::-webkit-scrollbar-thumb{border-raidus:3px;}//拖动条
::-webkit-scrollbar-track{border-radius:6px;}//背景槽
IOS原生滚动回调效果:-webkit-overflow-scrolling:touch;
13.HTML+JS完成触屏动做的识别:http://bbs.html5cn.org/thread-84163-1-1.html
14.为了不fixed在IOS上显示错位的问题,布局能够采用 page{position:absolute;left:0;right:0;top:0;bottom:0;}绝对定位首先于父级,page要想拉伸,须要加上html,body{height:100%;}
15.在用户输入号码的表单中,须要禁止用户输入中文、符号等,减小用户输入出错误的可能性,
因而在全局样式中定义以下:前端
.ime-disabled{ime-mode:disabled;}/* 屏蔽输入法 */html5
在页面定义以下:ios
<input type="text" name="password" class="ime-disabled" >css3
16.使得外层元素内容(包括图片)居中:
外层元素{
position: absolute;
display: -webkit-box;
-webkit-box-pack: center;
-webkit-box-align: center;
}
或
外层元素{
display: table-cell;
vertical-align: middle;
}
17.解决字形图标在低端手机上不显示的问题,只需调整一下src地址的顺序便可:
@font-face {
font-family: "iconfont";
src: url('icons.eot?ixsnn2');
src: url('icons.svg?ixsnn2#icomoon') format('svg'),
url('icons.eot?#iefixixsnn2') format('embedded-opentype'),
url('icons.ttf?ixsnn2') format('truetype'),
url('icons.woff?ixsnn2') format('woff');
url('icons.woff2?ixsnn2') format('woff2');
}
18.尽量使用CSS动画,不少的CSS动画是用GPU处理的,所以动画自己很流畅,CSS动画比起JavaScript驱动的动画效率更高
.myAnimation {
animation: someAnimation 1s;
transform: translate3d(0, 0, 0); /* 强制硬件加速 */
}git
注:使用3D硬件加速提高动画性能时,最好给元素增长一个z-index属性,人为干扰复合层的排序,能够有效减小chrome建立没必要要的复合层,提高渲染性能,移动端优化效果尤其明显。github
19.移动端制做遇到的坑:http://caibaojian.com/mobile-web-app-fix.htmlweb
20.移动端Fixed布局的解决方案:http://caibaojian.com/mobile-position-fixed.html?wb chrome
21.HTML5 项目常见问题及注意事项:http://orangexc.xyz/2016/07/30/Common-problems-and-matters-needing-attention-in-HTML5-project/
22.众所周知,PS设计行业字体单位有像素、点、磅等单位,咱们这里以像素为例子,而所谓的间距“-100、-7五、-50。。。0。。。50、7五、100”,这些实际上是个相对关系和实际字体大小相关,文字字体越大实际间距也就越大,反之就越小。
实际像素大小 real_letter_spacing(单位为px)
文字字号 font-size(单位为px)
文字间距 spacing
它们的换算关系为:
real_letter_spacing = font-size * 10 / spacing
若是一段文字的字号为23px, 间距为100,那么实际间距为23px * 10 / 100 = 2.3px。
从而得出前端字体间距设置2.3px方可与设计图效果一致,实际测试也是如此,stype ="letter-spacing:2px";
23.针对HTML5 video "autoplay"没法自动播放的问题解决办法是:在video标签中添加muted属性,即<video muted src="" autoplay loop></video>