IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

移动网站开发――CSS

前端观察 2010-07-19 22:44:25 累计浏览 3,191 次
本机暂存

    上一篇我们谈到了移动网站中的标签,想必很多人也很想了解Mobile CSS的情况吧,本文将和大家一起探讨移动网站中的CSS标准。

介绍

    Mobile css的标准也是有些复杂的,与前一篇文章中提到的类似,之前存在着一个W3C制定的CSS Mobile Profile 1.0以及OMA的WAP CSS 1.0,事实上它们都是CSS 2.1的子集,而且内容非常接近,不同的是,WAP CSS 1.0针对移动设备加入了一些扩展,这些扩展通过-wap-前缀来实现。

    后来,W3C将二者进行了整合,吸收了WAP CSS1.0的一些优点,推出了CSS Mobile Prifile 2.0规范,它也是CSS 2.1的一个子集。我们本文将主要讨论这个规范。

CSS Mobile Profile 2.0中的CSS支持

    因为这是CSS 2.1的一个子集,那么我们对这个规范的内容应该不会陌生,我们通过这个表格可以很直观的看到CSS MP对CSS的支持情况:

支持的 不支持的
选择器 全局选择器(*)、类型选择器(比如h1, div, p等)、子选择器(p>span)、链接伪类 (:link,:visited)、动态伪类(:active, :focus)、类选择器、id选择器、分组(h1,h2,h3{}…) :first-child、:hover 、:lang() 伪类, :first-letter 、:first-line 伪元素, 兄弟选择器(比如h1 + p),属性选择器 (比如 a[href], a[target="_blank"])
背景和边框 background, background-color, background-image, background-repeat, background-attachment, background-position, border, border-width, border-color, border-style(注1)
定位 position, top, right, bottom, left, z-index
列表 list-style, list-style-image, list-style-type list-style-position
基本的盒模型 display(注2), margin, padding, height, min-height, max-height, width, min-width, max-width, float, clear, visibility, overflow(注3), overflow-style(注4)
色彩 color
字体 font, font-family, font-style, font-variant, font-weight, font-size(注5)
文字 text-indent, text-align, text-decoration(注6), text-transform, white-space word-spacing, letter-spacing, unicode-bidi
线形 vertical-align(注7) line-height
基本的用户界面 utline, outline-color, outline-style, outline-width cursor
滚动 marquee-style, marquee-direction, marquee-play-count, marquee-speed
@规则 @charset, @import, @media(注8), @namespace @page
注1:border-style只支持常用的none、dotted、dashed、solid和inherit,其它的几个并没有被列入规范。注2:display仅限于inline、block、list-item、none和inherit,不支持run-in和inline-block注3:overflow只支持auto注4:overflow-sytle只支持marquee值注5:font-size只支持大小关键词,比如small、medium、bigger等,px、pt和百分比等不被支持。注6:text-decoration只支持none、blink、underline和inherit等,overline、line-trough不被支持。注7:vertical-align 只支持top, middle, bottom, baseline 和inherit。sub, super, text-top, text-bottom, 百分比和长度不被支持注8:@media规则只支持 handheld 和all 媒体类型。

用法与浏览器支持

    就像之前文章里面提到的那样,目前绝大多数的手机是支持XHTML Basic 1.0和XHTML MP 1.0标准的,这就意味着在某种程度上移动网站的HTML/XHTML代码是可以与桌面版的相兼容甚至完全一致的。甚至有些网站的移动版直接使用HTML 4/5或者XHTML 1.0的DTD。这样移动版网站可以直接通过handheld的media type来制定一个移动页面专用的CSS文件:

1

    绝大多数传统手机上的浏览器都支持handheld媒体类型,包括opera mini和windows mobile中的IE。

    其实考虑到传统手机的自身的限制和移动网络速度的限制,通过media type来加载外部样式是不可取的,通常用于移动版页面的样式不多,而多加载一个外部样式的代价是巨大的。所以,大部分的网站的移动版采用在head中嵌入样式表的方式。

    如果,你一定要采用外部样式的话,最好不要用@import,因为有些手机浏览器并不支持。

    特别值得一提的是,mobile webkit(包括iphone safari和android chrome lite等)不支持handheld

    而在视觉上的差异,主要是字体的表现差异,这和各个手机浏览器有关,想要做的像素完美,不是件容易的事情。

总结

    虽然,移动网站貌似不用考虑太多的功能,布局简单,功能简单,但是现实并没有想象中的那么简单。移动网站面临的最大的问题是浏览器众多,手机终端差别又很大,开发的时候,会遇到这种细节问题。

    目前国内移动网站的前端开发,还处于起步阶段,随着iPhone和Android等智能手机的流行,针对高端智能手机设备的网站开发将逐渐盛行,如 @SMbey0nd 所言,Mobile Web风暴,即将席卷中国,对于这个相对较新的领域,我们还有很多事情要做。

    其实本文仅仅涉及到Mobile CSS的一些非常基础的方面,希望可以抛砖引玉,引起更多的人研究和分享移动网站开发的前端技术和技巧,如果你有较深入的研究,欢迎通过前端观察与大家分享。

参考

http://www.w3.org/TR/css-mobile/Mobile style - CSS Mobile Profile 2.0complete css guide Mobile profile

同分类推荐文章

  1. 「置顶」我做了什么 (2026-05-05 12:13:28)
  2. 万字长文推演:手机不再从 App 开始,Agent OS 如何接管任务入口 (2026-04-28 14:57:22)
  3. Android Perfetto 系列 10 - Binder 调度与锁竞争 (2025-11-16 15:33:30)

查看更多 移动开发 文章 →

建议继续学习

  1. 50个活力和动感的网页设计-颜色的灵感 (累计阅读 34,367)
  2. 视觉设计前瞻实用性研究(PNVD) 第二期 (累计阅读 12,913)
  3. 各公司对前端开发的职位描述 (累计阅读 10,346)
  4. iframe大小自适应 (累计阅读 9,986)
  5. 浏览器的渲染原理简介 (累计阅读 8,290)
  6. 解决IE6从Nginx服务器下载图片不Cache的Bug (累计阅读 8,286)
  7. 程序员眼里IE浏览器是什么样的 (累计阅读 7,948)
  8. 2010网页设计趋势 (累计阅读 7,743)
  9. Web前端工程师编程能力飞升之路 (累计阅读 7,623)
  10. 颜色的代码表达式 (累计阅读 7,610)