移动端开发常识

古诗推荐

木兰花·拟古决绝词柬友
[清]纳兰性德
人生若只如初见,
何事秋风悲画扇。
等闲变却故人心,
却道故人心易变。
骊山语罢清宵半,
类雨霖铃终不怨。
何如薄幸锦衣郎,
比翼连枝当日愿。


移动端开发基本常识

首先是屏幕自适应

! function(n) {
    var e = n.document,
        t = e.documentElement,
        i = 720,
        d = i / 100,
        o = "orientationchange" in n ? "orientationchange" : "resize",
        a = function() {
            var n = t.clientWidth || 320;
            n > 720 && (n = 720), t.style.fontSize = n / d + "px"
        };
    e.addEventListener && (n.addEventListener(o, a, !1), e.addEventListener("DOMContentLoaded", a, !1))
}(window);

上边的代码是小米官网对于屏幕自适应的处理。我这里也是参考的。


兼容问题

移动端兼容就几个问题,主要就是苹果手机和华为手机的兼容,尤其是华为荣耀。本人对其特别无语。
在苹果上有一个点击延迟的问题,之前我自己开发遇到过(其实也是经验不足)。我用的是fastclick来处理的。

if('addEventListener'indocument) {
        document.addEventListener('DOMContentLoaded',function() {FastClick.attach(document.body);
    },false);
}

首先引入fastclick,之后再引入这段代码如果是引入了jQuery可以直接引入

$(function() {FastClick.attach(document.body);});

华为手机是问题最多的机型

对于一些很普通的属性比如CSS3中的calc(),flex布局等。在华为上还得用那些传统的布局,比如浮动等去解决问题。作为移动端网站开发尽量要考虑到这个机型,如果说你用flex布局一定要考虑好在华为中的兼容问题。


手机端的超链接

之前写a标签的时候后边不加target结果发现在jQuery-mobile中是存在问题的,所以在移动端开发中必须加这个属性。
还有就是一些功能,比如打电话,发邮件,调取QQ对话等等。
QQ对话开启:


打电话:


发邮件:

联系站长
联系站长
联系站长
有话直说
评价
联系站长

阴影的处理

在iOS上,输入框默认有内部阴影,但无法使用 box-shadow 来清除,如果不需要阴影,可以这样关闭:

input,textarea {
      border: 0;
      -webkit-appearance: none;
    }

字体的处理

对于网站字体设置

  • 移动端项目:
  font-family:Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti 
SC",sans-self;
  • 移动和pc端项目:
  font-family:Tahoma,Arial,Roboto,"Droid Sans","Helvetica Neue","Droid Sans Fallback","Heiti SC","Hiragino Sans GB",Simsun,sans-self;
  • 字体大小尽量使用pt或者em,rem,代替px。

  • 设置input里面placeholder字体的大小

::-webkit-input-placeholder{ font-size:10pt;}
.main input::-webkit-input-placeholder{
    color: #CCCCCC;opacity:1;
}
  • 解决字体在移动端比例缩小后出现锯齿的问题:
-webkit-font-smoothing: antialiased;

框架

  • 移动端基础框架
      zepto.js 语法与jquery几乎一样,会jquery基本会zepto~
      iscroll.js 解决页面不支持弹性滚动,不支持fixed引起的问题~ 实现下拉刷新,滑屏,缩放等功能~
      underscore.js 该库提供了一整套函数式编程的实用功能,但是没有扩展任何JavaScript内置对象。
      fastclick 加快移动端点击响应时间
      animate.css CSS3动画效果库
      Normalize.css Normalize.css是一种现代的、CSS reset为HTML5准备的优质替代方案
  • 滑屏框架
      适合上下滑屏、左右滑屏等滑屏切换页面的效果
      slip.js
      iSlider.js
      fullpage.js
      swiper
  • 瀑布流框架
      masonry
  • 工具推荐
      caniuse 各浏览器支持html5属性查询
      paletton 调色搭配

动画的处理

开启硬件加速解决页面闪白保证动画流畅

.css {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0);
}
  • 设计高性能CSS3动画的几个要素
  • 尽可能地使用合成属性transform和opacity来设计CSS3动画,
  • 不使用position的left和top来定位
  • 利用translate3D开启GPU加速

消除闪烁

消除transition闪屏

.css{
  -webkit-transform-style: preserve-3d;
  -webkit-backface-visibility: hidden;
}

移动端取消touch高亮效果

在做移动端页面时,会发现所有a标签在触发点击时或者所有设置了伪类 :active 的元素,默认都会在激活状态时,显示高亮框,如果不想要这个高亮,那么你可以通过css以下方法来禁止:

.xxx {
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

你可能感兴趣的:(移动端开发常识)