移动网站开发标记语言(取其精华版)

精选自原文:移动网站开发——标记语言

一般来说,对于移动网站可以采取两种方式:

  • 专门开发一个独立的移动版本
  • 使用media type和media query控制网站在移动浏览器的表现

本文和下一篇文章将介绍第一种方案

基于XHTML

XHTML Basic为针对移动网站的标记语言提供基础的模块。与其基础的XML一样,它也被设计用于扩展。而XHTML Mobile Profile(XHTML MP)——它在XHTML Basic的基础上添加了一些在它们之前的版本中有的特性。之后不久W3C就发布了XHTML 1.1版本,吸收了在XHTML MP中加入的一些特性。所以现在看来这两个版本差不多是一样的。这里我们选择XHTML Basic,因为它是W3C推荐的…..

开始使用XHTML Basic

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang=="en">
<head>
<title>Hello Mobile</title>
</head>
<body>
</body>
</html>

是的,只是加了个 XML 的头声明,然后使用 xhtml basic 的 DTD。

XHTML Basic 支持的模块

模块 元素/属性
结构 html, head, title, body
文字 abbr, acronym, address, blockquote, br, cite, code, dfn, div, em, h1, h2, h3, h4, h5, h6, kbd, p, pre, q, samp, span, strong, var
链接 a
列表 dl, dt, dd, ol, ul, li
表单 button, fieldset, form, input, label, legend, select, optgroup, option, textarea
表格 caption, table, td, th, tr
图片 img
对象 object, param
表现 b, big, hr, i, small, sub, sup, tt
元信息 meta
链接 link
base base
事件 onblur, onfocus, onload, onunload, onreset, onsubmit, onchange
脚本 script, noscript
样式 支持style元素
样式属性 支持style属性
目标 支持target属性

不支持的内容:

  • 不支持外部CSS文件
  • 不支持嵌套table;
  • 不支持thead、tbody、tfood等;
  • 不支持name属性;
  • 不支持框架;
  • 不支持del、ins、basefont、center、dir、font、isindex、menu、sstricke、u等元素。

注意事项:

  • 对事件的支持依赖具体的浏览器支持,有些浏览器不一定支持这些事件;
  • webkit支持更多的事件
  • opera mini由于是基于自己的代理服务器,有些事件是不支持的,详见:JavaScript support in Opera Mini 4

XHTML MP

XHTML MP是对XHTML Basic的一个扩展,所以XHTML MP有更好的适用性。而XHTML MP对于Basic最大的优势就是支持外部样式文件——虽然这会导致多一个HTTP请求。

这里是一份关于XHTML MP和XHTML basic的对比表

PS:事实上,WAP 2.0也就是XHTML MP,也就是说,WAP 2.0与WAP 1.0关系不大。

兼容性与现状

  1. 根据W3C的统计,现在绝大部分手机都支持WAP 2.0了,使用WAP 1.0的设备已经非常的少了;
  2. 根据观察,绝大多数网站的移动版本,都是采用XHTML MP规范;
  3. 大部分网站使用内联样式表,而不是外部样式文件;
  4. 非常多的Mobile版本页面采用table布局
  5. Opera mini可以在所有支持java的手机上使用,而Opera mini支持全部的(X)HTML特性。

所以,如果你想要开发一个移动版的网站,可以放心的使用XHTML Basic 1.1 /MP。

HTML5

Mobile Webkit是目前对标准支持最好的移动浏览器,它支持所有的XHTML特性,同时对HTML5的支持也非常棒。如果你的项目只针对iPhone 和(或) Android,完全可以使用HTML 5来编码。

事实上作为又一个很强劲的趋势,HTML 5众望所归要成为下一代的网页标准,Google、apple、opera和微软等互联网巨头一直在努力推广和推进HTML 5。opera认为HTML 5是统一移动互联网的关键