css - 如何获得与移动网站的大多数设备的最大兼容性?

标签 css xhtml mobile mobile-website mobile-phones

我为智能手机创建了单独的站点,现在需要为其他旧手机创建单独的站点。
如何在旧/小屏幕手机上与移动网站的大多数设备实现最大兼容性?



我正在考虑使用

HTML的此文档类型

<?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">


AND仅支持CSS Mobile Profile 2.0的选择器和属性


图片不应使用过多,否
应使用透明图像
旧版本不支持Javascript
手机
一些CSS 2.1选择器不是
与旧版浏览器兼容
布局应没有固定宽度
因为各种屏幕尺寸
那里
最好不要使用外部CSS。
里面的CSS会很好
不支持HTML 5 doctype,因此我将使用XHTML Basic 1.1
widthfloat不应为
为任何元素定义
http请求应该少得多
不应定义font-family


我不确定某些事情吗?


如果可能,我应该使用CSS Sprite吗?
我应该在其中进行布局吗
代替
内联CSS是否比外部CSS好
CSS?
我应该在以下位置使用任何CSS重置代码吗
CSS的阶段?
我应该使用utf-8还是ISO?
可以使用表格吗
验证?
我不应该给任何链接
打开一个新窗口?
在中使用use em是否必要好
px的字体大小的地方?


我的观点够好吗?

尽管我将详细阅读http://www.w3.org/TR/mobile-bp/并检查了http://html5boilerplate.com/mobile/,但它适用于包括Smartphones +在内的所有功能,但有些事情很有用

智能手机前端矩阵
https://spreadsheets.google.com/spreadsheet/ccc?authkey=CJPSkfwO&pli=1&hl=en&key=tLen0XZBVTziVZBzwwQFxlw&hl=en&authkey=CJPSkfwO#gid=0

手机屏幕分辨率,按品牌和型号分类
http://cartoonized.net/cellphone-screen-resolution.php

但是,根据您的个人经验,您会建议考虑哪些其他事项?是否有任何提示?

最佳答案

为什么您使用<?xml version="1.0" encoding="UTF-8"?>?这是xml标头,而不是html。

关于问题:


不应过多使用图像,也不应使用透明图像


您可以使用透明的GIF,但有些支持。但是,透明Png并非如此。


旧手机不支持Javascript


不是不被支持。首先,默认情况下,旧浏览器始终禁用JS。第二个问题是JS的错误实现。第三个因素是旧手机的资源有限,并且由于JS是客户端,因此它可能导致手机崩溃/减速。


布局应该没有固定的宽度,因为那里有各种屏幕尺寸


在移动设备上,技巧是始终使用流畅的布局(基于百分比)


最好不要使用外部CSS。里面的CSS会很好


内联css在旧设备上是最好的,因为大多数设备在请求过多或将样式应用于dom时都会遇到问题。请记住,它们使用EDGE或更糟糕的WAP连接,几乎与拨号连接一样糟糕。


不支持HTML 5 doctype,因此我将使用XHTML Basic 1.1


您可以使用XHTML基本版本甚至更好的版本,<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.2//EN" "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile12.dtd">


不应为任何元素定义宽度和浮点数


宽度,始终为%。浮动,永远不会。直到S60 3rd FP1,Symbians上的花车都是越野车。 (N73在S60 3rd上运行,并且浮动是有问题的。在N95'S60 3rd FP1上,浮动在大多数用途上都是固定的,但还是一次或多次错误,这取决于使用情况)。绝对位置和固定位置也是如此。


http请求应该少得多


尽可能减少。更多的请求,需要更多的时间才能获得一些东西,并且需要更多的时间加载。


不应定义字体系列


家庭和大小是旧设备令人讨厌的两件事。他们大多数都有自己的字体和大小。
例如:摩托罗拉V3R / RAZR V3拥有自己的字体,只有一个大小(如果我没记错的话,每个字母大约在屏幕的7〜9px)。但是您可以声明Arial,因为它是一种通用字体,将在浏览器拥有它时使用。


如果可能,我应该使用CSS Sprite吗?


不惜一切代价避免。在减少请求数量的同时,您遇到了另一个问题:布局将变得流畅,并且使用百分比时背景位置通常会混乱。而且老黑莓喜欢与背景图像进行交互。


内联CSS是否比外部CSS更好?


在我看来,是的。由于连接和渲染都很慢,因此,如果您的css文件超时,无论出于何种原因,(已经很糟糕的)布局都会变得更糟。


我应该在CSS的启动阶段使用任何CSS重置代码吗?


我曾经使用过YUI的浏览器,但在非常老的浏览器(还是V3r及更高版本)上,并没有太大的区别。但是,当您向客户展示时,这很好:P


我应该使用utf-8还是ISO?


真正取决于您的内容。如果您对所有html实体进行编码(例如,使用拉丁字符时),请使用UTF-8。如果您不编码,请尝试使用ISO。但是无论如何,旧的浏览器会强制使用自己的编码。检查N95的浏览器,例如,您可以设置自己的编码,从而弄乱了html的编码。


可以使用表单验证吗?


尽可能避免使用JS,请始终在服务器端使用。


我不应该提供任何打开新窗口的链接吗?


旧的浏览器不支持“标签”,因此即使您指定为target =“ _ blank”,它也会在当前页面的顶部打开。
虽然S60的浏览器确实支持选项卡,但我没有提醒您,但它有点隐藏。例如,N95 S60 3rd FP1 Webkit浏览器不允许您在新窗口中打开链接,但是如果使用_blank,则将打开一个新标签。要浏览“标签”,您需要按“ 5”键。


使用em代替px的字体大小是否必要好?


当您有一个脚本来增加字体大小(那些A- / A +图标)时,出于易于理解的原因,这很好。但是正如我在No font-family上应该说的那样。



一些技巧:

=大多数旧的黑莓浏览器都是垃圾,比IE5-6差很多。因此,例如如果您想在主容器上向左/向右留出5px的边距,以便可以将其显示为“居中”,请从margin:0 5px处放弃;并选择border-left:5px solid #same_bg_color; border-right:5px solid #same_bg_color;可悲的是RIM所做的:/

=始终尝试使布局尽可能垂直。不要在同一行中堆放太多东西。

=始终将导航锚定在文本中间。旧设备会从锚点跳转到锚点(或S60 +中的“伪鼠标”),因此,如果您到达页面末尾,则必须按“向上”无数次。通过创建“转到顶部”或什至更好的方法来避免这种情况,在页脚上创建相同的顶部菜单。

=不要在大多数时间弄乱字体。颜色,大小,家庭在大多数情况下都不起作用。

=所有这些技巧都考虑了以下个人设备等级中的“低”和一些早期的“中”设备:

高端设备:运行以下操作系统的设备:iOS,Android,WP7 +,Bada,bbOS 6.0+

中端设备:高端设备之前的设备。一些后来的Symbian S40系列以及所有S60,最新的Sony / Ericsson的Walkman,然后才开始使用Android。

低端设备:所有其他设备,包括WML,WAP1,BlackBerries,Windows Mobile(6.XX或更旧版本),大多数Symbian S40或更旧版本,以及其他所有设备。

关于css - 如何获得与移动网站的大多数设备的最大兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5813138/

相关文章:

javascript - 包含 <p></p> 标记的字符串呈现为 HTML 内容而不是 DOM 查询中的字符串

java - Web 端、移动开发、独立应用程序该走哪条路?

jQuery 附加第二类

html - 使 css 对象移动友好

html - 使用 div 标签和 CSS 创建布局

html - 当父元素居中时,如何将元素拉伸(stretch)到页面的左边缘?

javascript - 如何验证 url 地址并确保它至少包含 javascript 中 url 的一部分?

javascript - 如何使用 javascript 函数编写此代码?

android - 将内容定位到特定用户

android - 设备休眠时声音停止 flex mobile