• 移动端web开发最佳实践


    主流的移动终端和移动浏览器

    智能移动中断主要以智能手机和平板电脑为主,智能系统则是IOS和Android两大系统。

    由于IOS和Android系统成为主流系统,因此系统自带的浏览器就成了主流的浏览器。

    主流移动端浏览器包括Safari、Android Browser、Chrome和IE,其中Safari、Android Browser、Chrome都是以Webkit为内核的浏览器。

    移动端和桌面端开发的差异

    1. 移动设备和PC设备的显示差异
      从显示面积上看,智能手机的显示区域比PC端显示的区域要小很多。而目前大多数网站都是以PC端浏览角度进行设计,使用手机浏览PC网站会出现显示不全问题为了解决这个问题,IOS平台的Safari浏览器定义了一个名为viewport的meta标签
    <meta name="viewport" content="height = [ pixel_value |device-height],width = [ pixel_value |device-width ] ,initial-scale = float_value ,minimum-scale = float_value ,maximum-scale = float_value ,user-scalable=[yes | no] ,target- densitydpi = [ dpi_value | device-dpi| high-dpi | medium-dpi | low-dpi] "/>
    
    • 1

    这个viewport的作用是在浏览器中创建一个虚拟的窗口,而这个窗口的默认宽度为980像素。
    以第一代iPhone为例,设备的物理宽度为320像素,但是在浏览器中虚拟了一个980像素的窗口,意味着如果页面的最大宽度小于960像素,则页面可以完整地显示在iPhone浏览器中,这提高了网页的可读性

    1. 在移动端和PC端的web前端开发中,事件绑定存在差异
      移动设备上可以做多点触摸操作,在PC端只能使用鼠标做单一操作。
      没有PC端的鼠标类事件,只有手指的触摸类事件。

    2. 页面控件设计上存在差异
      PC端的用户习惯于使用鼠标操作,鼠标可以精准地操作页面并完成点击、拖放、选择等操作。
      但是在移动设备上,用户更多是使用手指触摸操作,操作的精准度会降低很多,文字的选中操作也没有在PC网页中方便

    前端最佳实践

    HTML的最佳实践

    1. 在页面head中添加必要的meta和link信息

    于智能移动设备的特殊性,因此浏览器厂商针对移动端网站添加了多个不同功能的meta和link设置。页面中添加了这些设置,用户在移动设备中有更好的用户体验

    
    <meta name = "viewport" content = "user-scalable=no,initial-scale=1.0,maximum-scale=1.0,width=device-width">
    
    <meta name="apple-mobile-web-app-capable" content="yes" />
    
    <meta name="mobile-web-app-capable" content="yes" />
    
    <meta name="apple-mobile-web-app-status-bar-style" content="black" />
    
    <meta name="format-detection" content="telephone=no" />
    
    <link rel="apple-touch-icon" href="touch-icon-iphone.png">
    <link rel="apple-touch-icon" sizes="76x76" href="touch-icon-ipad.png"><link rel="apple-touch-icon" sizes="120x120" href="touch-icon-iphoneretina.png"><link rel="apple-touch-icon" sizes="152x152" href="touch-icon-ipadretina.png">
    
    <meta name="format-detection" content="telephone=yes" />
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    1. 利用移动设备的便利性
    <meta name="format-detection" content="telephone=yes" />
    
    • 1

    这个设置和上面设置的电话号码自动识别meta并不冲突,meta设置是控制让设备不自动识别的,而这个tel和sms类型的链接是手动添加的链接,即当关闭自动电话号码识别时,仍然可以在页面上添加tel和sms类型的链接

    1. 不要使用iframe,谨慎使用table标签

    在大部分情况下,移动智能设备上很难适配table和iframe的显示,其屏幕宽度不够,要么内容被遮盖,要么就是整个布局变乱。为了提高移动平台用户的阅读体验,应尽量使用列表控件(ul、ol)代替table来显示数据

    CSS最佳实践

    1. 为了提高移动平台用户的阅读体验,应尽量使用列表控件代替table来显示数据
    2. 不要使用:hover伪类设置悬停效果
    3. 设置合理的字体大小和行高

    大部分智能移动设备的尺寸都比PC小很多,同样的字体大小,在移动设备上的阅读体验要比在PC上差。为了让网页上的内容在移动设备上更易于阅读,推荐设置的字体大小最小为16像素
    4. 在不需要选中文字的区域禁用文字选中功能

    在各智能移动设备的浏览器中,基本都有文字长按选中功能,这样可方便用户选中文字并进行复制、全选及粘贴等操作。这是一个很有用的功能,但在某些可点击控件或区域中,用户很容易误操作而使得页面弹出用户选中对话框

    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    
    • 1
    • 2
    • 3
    • 4

    JS最佳实践

    1. 使用移动平台中特有的事件处理

    在移动设备中由于交互方式的改变,事件处理的方式也和PC端不同了。在移动端的浏览器中,由于操作的方式主要是手势,因此添加了整套的手势触摸事件,包括touchstart、touchmove、touchend和touchcancel。

    1. 谨慎使用标准对话框,避免弹出窗口

    在各个平台的浏览器中,标准对话框的外观差异较大,因此,为了在各平台浏览器中有统一的外观,建议使用模拟的对话框来代替标准对话框

    1. 谨慎使用Timer

    在大部分的智能设备中,当页面处于隐藏状态(即用户点击了返回主菜单,或者打开其他应用,或者浏览器中打开了新的tab,或者智能设备屏幕关闭)时,正在浏览的页面会处于锁定状态,页面中的JavaScript代码会停止执行。

    目前,大部分主流移动版浏览器都遵循了这样的设计,只有Android版的Chrome浏览器在浏览器转入后台时仍然执行JavaScript代码。在开发中需要考虑这样的情况,避免影响页面的功能

  • 相关阅读:
    C语言-控制语句
    扫描车牌是什么神经网络,卷积神经网络车牌识别
    圆柱继承圆, 属性分析数据合理性 C#
    人工智能和AR/VR:AI在AR和VR中扮演什么角色?行业应用有哪些?
    MySQL必知必会
    数据结构(单链表)
    RabbitMQ消息可靠性(二)-- 消费者消息确认
    Jmeter系列-并发线程Concurrency Thread Group的介绍(7)
    GEO生信数据挖掘(六)实践案例——四分类结核病基因数据预处理分析
    【Pycharm配置】在Pycharm中配置Jupyter环境
  • 原文地址:https://blog.csdn.net/qq_40850839/article/details/126412867