移动端开发常识

古诗推荐

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


移动端开发基本常识

首先是屏幕自适应

! 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对话开启:

<a href="http://wpa.qq.com/msgrd?v=3&uin=261177191&site=qq&menu=yes" data-qq="261177191" target="_blank"></a>

打电话:

<a href="tel:17181471334" target="_blank"></a>

发邮件:

<a href="mailto:xxx@xx.com">联系站长</a>
<a href="mailto:xxx@xx.com?cc=xxxx@xx.com">联系站长</a>
<a href="mailto:xxx@xx.com?bcc=xxxx@xx.com">联系站长</a>
<a href="mailto:xxx@xx.com?subject=给你主页提个建议">有话直说</a>
<a href="mailto:xxx@xx.com?body=你的网页做得不错啊,不过就是人气不够哦">评价</a>
<a href="mailto:xxx@xx.com,xxxx@xx.com">联系站长</a>

阴影的处理

在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);
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这是一个最好的时代,因为我们站在潮流中;但也是一个最坏的时代,因为我们站在潮头上。 META相关 1. 添加到主屏...
    泡芙小姐110阅读 3,987评论 3 17
  • META相关 1. 添加到主屏后的标题(IOS) 2. 启用 WebApp 全屏模式(IOS) 当网站添加到主屏幕...
    老夫的天阅读 8,190评论 3 21
  • 1、属性选择器:id选择器 # 通过id 来选择类名选择器 . 通过类名来选择属性选择器 ...
    Yuann阅读 5,574评论 0 7
  • 业务范围:营养食品,保健品的代理与销售! 传统保健品:只有销售,没有太多的售后与服务。 我的价值1:完善的服务系统...
    不见路不走阅读 4,574评论 0 0
  • 亲爱的小虫 今天妈妈郁闷到极点了,心里很沉,坠入谷底了,无法满腔热情地和你说话了,妈妈需要一个人静一静…… 201...
    240c6d9396b5阅读 1,103评论 1 0

友情链接更多精彩内容