Mobile Web下的编码设计(3)
来源:smbey0nd 发布时间:2010-01-28 10:42:00
坚持遵循Web标准和最佳实践
一个好网站的基础,是要有一个好的HTML结构,以及美妙的CSS(表现)和JavaScript(行为)。如果你认真地遵循Web标准,大多数移动浏览器至少会很好地解析并至少会基本可用,这是非常有可能的。例如:
一个网站,有良好的HTML结构顺序并在HTML中没有装饰性图片,在移动浏览器的单列模式或移动模式中,会呈现得很有逻辑性。
如果你的表单元素中含有“label”元素,浏览器将把它渲染得更有表单区域的感觉。
如果你给CSS和JavaScript使用了优雅降级/渐进增强技术,浏览器如果不支持、简化、忽略某些属性,这时站点的可用性几率会大大增加。
如果你花费时间精力去研究的话,在提升移动用户体验方面,还有更多事情可以去做。如果你的目标受众包括大量使用非HTML浏览器(例如支持WAP或CHTML的某些日本浏览器)用户,那么你可能不得不检测设备并提供适当的内容。
提供一个完全独立的移动网站
如前所述,我认为如果可能的话应该尽量避免使用这种方式。你可以做设备检测并自动重定向来避免给用户使用带来麻烦,但是这意味着你不得不维护两套网站。最主要的方法是通过UA嗅探来识别浏览器,或在服务端进行设备功能检测,然后再给用户提供相应的站点。在dev.opera.com,有很多优秀的文章来讲述如何实现 – 查看最后的资源部分。
但也有例外,对于完全独立的网站来讲 – 你不得不始终考虑用户体验情况。某些类型的浏览设备可能不兼容于特定的网站或者特定的功能。例如,有一个大学校园网,带有部门电话号码的搜索功能,但同时也包含了一大堆校园历史的网页。如果你想去与某人会面却找不到他们部门时,你大概会想在移动设备上使用搜索功能,但你在外出的时候也不太可能想坐下来阅读那么多的文字。
在这种情况下,你可以使用下面提到的一些技巧,来为移动设备提供网站中某个功能的一部分,或者干脆为移动设备创建一套完全独立的网站。你只需检测用户使用的设备类型并自动提供给他相应的站点,并把这个过程完全公开给用户,但是很多很多人并不愿意这个功能把他们完全限制住,所以如果你要这么做的话,就需要给用户提供一个指向完整站点的链接,用户可以自行选择是否用它来访问完整站点。
一句话警告 – 设备检测很容易被滥用。你可能经常看到一个网站的桌面版本非常牛B,而它的移动站点却非常的垃圾。因为开发者只是将移动站点放在一个非常低标准的位置上。事实上,目标受众的设备水平并不均衡,现在很多的移动浏览器都具有处理完整Web页面的能力了!你应该尽可能地让设备发挥他们最高的处理能力,并且要发挥移动设备的特别优势,比如基于位置的服务(LBS),还有 tel: 协议 – 在超链接点击时它可以让设备拨打一个电话号码。


猜你喜欢
- 一提到数字图像处理,可能大多数人就会想到matlab,但matlab也有自身的缺点:1、不开源,价格贵2、软件容量大。一般3G以上,高版本甚
- 约定:import pandas as pdimport numpy as npfrom numpy import nan as NaN填充
- 本文实例讲述了Python实现批量转换文件编码的方法。分享给大家供大家参考。具体如下:这里将某个目录下的所有文件从一种编码转换为另一种编码,
- 通常来说,php中总是只获取最后一个复选框的值,那么如何才能获取所有复选框的值?解决办法如下:form表单的部分代码如下:<input
- 一:代码实现class TreeNode: """节点类""&q
- 一、python的基础语法1.行连接的方法是最后加上一个‘\'2.注释:多行注释三引号,#行注释;三引号定义的字符串原样输出(保存原
- 本文代码重点在于演示Python扩展库matplotlib.pyplot中fill_between()函数的用法。import numpy
- element-ui中el-select下拉框选项过多el-select中options数据超过3000条就会造成前端页面明显卡顿,本次我的
- django admin管理工具有很多好用的功能,例如搜索框、筛选器等,编码简单,功能强大。但是常规的时间筛选有一定局限性,只能显示一定时间
- 我就废话不多说了,大家还是直接看代码吧~type Wait interface { // Register waits returns a
- 一、出现原因:readline模块没有安装二、解决方式:# 安装readline模块yum -y install readline-deve
- Microsoft SQL Server错误: 15138删除对于用户失败,数据库主体在该数据库中拥有架构,无法删除解决方法一先删除此用户对
- 1.0简介三维图像技术是现在国际最先进的计算机展示技术之一,任何普通电脑只需要安装一个插件,就可以在网络浏览器中呈现三维的产品,不但逼真,而
- 起因说起来录制视频,我们可能有很多的软件,但是比较坑的是,好像很少的软件支持能够同时录制两个摄像头的视频,于是我们用python自己写一个。
- 本系列专栏写作将采用首创的问答式写作形式,快速让你学习到 OpenCV 的初级、中级、高级知识。6. 在 Python OpenCV 针对图
- 1 、据说python3就没有这个问题了2 、u'字符串' 代表是unicode格式的数据,路径最好写成这个格式,别直接跟字
- 一、并发访问控制实现的并发访问的控制技术是基于锁;锁分为表级锁和行级锁,MyISAM存储引擎不支持行级锁;InnoDB支持表级锁和行级锁;锁
- 本文分析了PHP中$GLOBALS['HTTP_RAW_POST_DATA']和$_POST的区别。分享给大家供大家参考,具
- 一、什么是MQTTMQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/
- Lists Snippets我们先从最常用的数据结构列表开始1.将两个列表合并成一个字典假设我们在 Python 中有两个列表,我们希望将它