zoukankan      html  css  js  c++  java
  • 移动/手机前端开发入门总结

    个人博客:

    http://mcchen.club


    1.首先是meta标签

    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    <meta name="format-detection"content="telephone=no, email=no" />
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
    <meta name="apple-mobile-web-app-capable" content="yes" /><!-- 删除苹果默认的工具栏和菜单栏 -->
    <meta name="apple-mobile-web-app-status-bar-style" content="black" /><!-- 设置苹果工具栏颜色 -->
    <meta name="format-detection" content="telphone=no, email=no" /><!-- 忽略页面中的数字识别为电话,忽略email识别 -->
    <!-- 启用360浏览器的极速模式(webkit) -->
    <meta name="renderer" content="webkit">
    <!-- 避免IE使用兼容模式 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
    <meta name="HandheldFriendly" content="true">
    <!-- 微软的老式浏览器 -->
    <meta name="MobileOptimized" content="320">
    <!-- uc强制竖屏 -->
    <meta name="screen-orientation" content="portrait">
    <!-- QQ强制竖屏 -->
    <meta name="x5-orientation" content="portrait">
    <!-- UC强制全屏 -->
    <meta name="full-screen" content="yes">
    <!-- QQ强制全屏 -->
    <meta name="x5-fullscreen" content="true">
    <!-- UC应用模式 -->
    <meta name="browsermode" content="application">
    <!-- QQ应用模式 -->
    <meta name="x5-page-mode" content="app">
    <!-- windows phone 点击无高光 -->
    <meta name="msapplication-tap-highlight" content="no">
    <!-- 适应移动端end -->

    2.Html5+Css3的使用

      因为手机大多数都是高级浏览器,HTML5可以实现一些HTML4中无法实现的丰富的WEB应用程序的体验,可以减少开发者很多的工作量,当然了你决定使用HTML5前,一定要对此非常熟悉,要知道HTML5的新标签的作用。比如定义一块内容或文章区域可使用section标签,定义导航条或选项卡可以直接使用nav标签等等。

      按钮带有圆角效果,有内发光效果还有高光效果,这样的按钮使用CSS3写是无法写出来的,当然圆角可以使用CSS3来写,但高光和内发光却无法使用CSS3编写,

    这个时候你不妨使用-webkit-border-image来定义这个按钮的样式。-webkit-border-image就个很复杂的样式属性。

      还有渐变,动画等你能够想象出的各种酷炫狂拽吊炸天的效果。

    3.块级化a标签  

      因为大多数都是触屏手机,要让用户很方便的能点击到标签,建议用42X42。操作对象的大小符合手指的操作,按键的大小设置规范:食指点击的间距 约为7*7 mm, 1mm间距,拇指点击8*8 mm,2mm间距。当前推荐的值为9mm 大小,最小应不小于7mm。

    4.自适应布局

      在编写CSS时,我不建议前端工程师把容器(不管是外层容器还是内层)的宽度定死。为达到适配各种手持设备,我建议前端工程师使用自适应布局模式(支付宝采用了自适应布局模式),因为这样做可以让你的页面在ipad、itouch、ipod、iphone、android、web safarik、chrome都能够正常的显示,你无需再次考虑设备的分辨率。页面必须自适应屏幕大小,可以采用流体布局。其它一些小问题可以采用media query,比如对于图片的处理,只要设置宽度,让图片自适应,防止图片变形,当然要兼容的设备分辨率差距很大的时候,需要利用media queries根据分辨率的不同加载不同的图片(需要同一张设置为几种不同的规格),一是防止小分辨率设备加载大图片浪费流量,二是防止大分辨率设备加载小图片导致的图片模糊问题。

    5.适当优雅降级

      要做好优雅降级(平稳退化),少用JS,图片,要用户禁止下载JS和图片的时候页面也能体现价值(因为很多APP默认设置为3G下是不自动下载图片等资源的)。

    6.字体大小与行间距

      不建议使用px/em,而使用rem,虽然它是相对单位,但使用rem单位可以避开很多层级的关系而行间距则直接是采用字体的倍数。为了方便计算,在html元素中常将font-size设为62.5%。注意在chorme是会强制等于12的~

    7、IOS在第三方输入法下不支持onkeyup事件 
    使用oninput进行代替onkeyup事件 
    $("#user-name")[0].oninput = function() { 
    that.checkusername(); 
    };

    8、部分android系统中元素被点击时产生的边框怎么去掉 
    android用户点击一个链接,会出现一个边框或者半透明灰色遮罩, 不同生产商定义出来额效果不一样,可设置-webkit-tap-highlight-color的alpha值为0去除部分机器自带的效果

    a,button,input,textarea{ 
    -webkit-tap-highlight-color: rgba(0,0,0,0;) 
    -webkit-user-modify:read-write-plaintext-only; 

    -webkit-user-modify有个副作用,就是输入法不再能够输入多个字符

    另外,有些机型去除不了,如小米2

    对于按钮类还有个办法,不使用a或者input标签,直接用div标签

    9、winphone系统a、input标签被点击时产生的半透明灰色背景怎么去掉 
    <meta name="msapplication-tap-highlight" content="no">

    10、webkit表单元素的默认外观怎么重置 
    .css{-webkit-appearance:none;}

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

    input, 
    textarea { 
      border: 0; /* 方法1 
      -webkit-appearance: none; /
     方法2 */ 
    }

    12、移动端禁止选中内容 
    .user-select-none { 
    -webkit-user-select: none; /* Chrome all / Safari all 
    -moz-user-select: none; /
     Firefox all (移动端不需要) 
    -ms-user-select: none; /
     IE 10+ */ 
    }

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

    html { 
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 

    但这个方法在三星的机子上无效,有一种妥协的方法是把页面非真实跳转链接的a标签换成其它标签,可以解决这个问题。

    14、如何禁止保存或拷贝图像(IOS) 
    通常当你在手机或者pad上长按图像 img ,会弹出选项 存储图像 或者 拷贝图像,如果你不想让用户这么操作,那么你可以通过以下方法来禁止:

    img { -webkit-touch-callout: none; }

    15、屏幕旋转的事件 
    window.orientation,取值:正负90表示横屏模式、0和180表现为竖屏模式;

    window.onorientationchange = function(){ 
    switch(window.orientation){ 
    case -90: 
    case 90: 
    alert("横屏:" + window.orientation); 
    case 0: 
    case 180: 
    alert("竖屏:" + window.orientation); 
    break; 

    }

    16、audio元素和video元素在ios和andriod中无法自动播放 
    应对方案:触屏即播

    $('html').one('touchstart',function(){ 
    audio.play() 
    })

    17、手机拍照和上传图片 

    <input type=file accept="image/*"> 

    <input type=file accept="video/*"> 
    使用总结:

    ios 有拍照、录像、选取本地图片功能 
    部分android只有选取本地图片功能 
    winphone不支持 
    input控件默认外观丑陋

    18、消除transition闪屏 
    .css{ 
    /设置内嵌的元素在 3D 空间如何呈现:保留 3D
    -webkit-transform-style: preserve-3d; 
    /(设置进行转换的元素的背面在面对用户时是否可见:隐藏)
    -webkit-backface-visibility: hidden; 

    开启硬件加速

    解决页面闪白 
    保证动画流畅

    .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加速

  • 相关阅读:
    linux集群实施与部署-----Nginx
    以太网链路聚合简单配置
    配置基于源地址的策略路由
    shell --Day 6
    ps初学--Day 1部分工具使用
    shell --Day 5
    shell ——Day 4
    shell——Day3
    shell——Day 2
    初学shell——Day1
  • 原文地址:https://www.cnblogs.com/McChen/p/4434753.html
Copyright © 2011-2022 走看看