我最近从css-tricks.com weblog #38: Basics & Tips on Designing for the iPhone做了Chris Coyier教程。毋庸置疑,我非常兴奋,并向一个人建议我做一些代码猴工作,我们现在可以向他的客户提供iPhone网站。他说很酷,但其他移动设备呢?好问题。那么Android,Blackberry,WindowsMobile等网站设计的低端是什么?人们是否在困扰其他平台?感谢。
答案 0 :(得分:13)
对于iPhone Safari,Opera Mobile和Androidkit开发的Webkit类似(but not identical),对它们的开发非常简单。
您可以依赖CSS2.1和JavaScript + DOM(但要小心UI events)。只需对样式表进行一些更改,您就可以免费使用常规网站。
诀窍在于提供这些样式表。 请勿使用User-Agent
字符串。
由于某些移动浏览器会读取手持媒体,有些人坚持使用屏幕样式并假装拥有960px宽屏幕(iPhone:/),因此您需要同时提供移动样式表:
<link media="handheld" ...>
<link media="screen and max-device-width:480px" ...>
后者是CSS3 Media Query - 非常有用,也适用于其他移动浏览器(您可以在带有@media {}
的样式表中使用它。)
不要依赖:hover
或onmouseover
,因为这些事件在触摸屏上不起作用。
onclick
被延迟,mousemove
可能无效。自定义DHTML小部件(下拉菜单,滑动条)和拖放式按钮在触摸屏上不起作用,除非您使用touch events(幸运的是所有最新的浏览器都采用)。
除了Apple的专有权(以及IMHO不灵活且违反标记和布局之间的分离)<meta name=viewport>
还要查看CSS3 @viewport,目前最新的Opera支持@-o-viewport
并希望其他人会跟着。
要在Opera Mobile中测试页面,请获取the simulator(或仅使用较旧的桌面版本,然后选择查看→小屏幕)。
Opera Mini很特别,因为CSS重新格式化了一点,DHTML在服务器端执行,这并不总能给出你期望的结果。有simulator available。
你需要Android SDK,摆弄命令行以启动其笨重的UI,下载一堆软件包,创建具有十几个不相关的模糊设置的虚拟设备,耐心地让这个怪物加载并将计算机的风扇变成四轴飞行器,然后你可以sss..sss..sloowowlyyyy测试在“浏览器”(我的英特尔i5太慢,无法模拟Galaxy Tab - 浏览器“停止响应”甚至在我完成输入网址之前)
更容易获得带有Android的手机/平板电脑并在真实设备上进行测试(但避免使用三星的播放器“iPod”,因为它与过时的软件一样垃圾)。
对于不喜欢Linux做事的人来说,Android浏览器真的很痛苦 - 只需阅读JS控制台,你就需要在命令行上摆弄远程调试连接和日志过滤。有simulator available(移动下载下的“Windows / Mac OS X / Linux”链接不是桌面版,而是桌面移动版操作系统。)
模拟器非常基础,移动Firefox本身就是IMHO非常好,例如overflow:scroll
效果很好,而在基于WebKit的浏览器上,溢出实现在非直观和完全破坏之间变化。
适用于Windows Mobile的PIE&lt; 7与Windows上的IE引擎不同。它主要与IE4一样原始和错误,但(几乎没有)支持一些令人惊讶的高级属性,如display:table
。
同时读取handheld
和screen
样式表,违反标准并在脚下射击。如果你要支持PIE,那么最后链接到handheld
样式表并反转/覆盖其中屏幕样式的所有规则。
无论如何,它已经死了,很难得到一个模拟器。
Windows Phone 7目前随IE7一样出货,微软后来承诺提供IE9等级。
最新的基于WebKit的BlackBerry浏览器相当不错,您可以将其视为一等公民(请参阅顶部链接的WebKits比较)。
在BB OS6之前,这是一场噩梦。只有基本的HTML工作。 CSS适用于某些模型,但它是原始的和破碎的。 JavaScript仅适用于某些模型,并且令人难以置信地缓慢且缺乏(甚至忘记基本的DHTML)。
RIM提供免费的BB模拟器(需要烦人的注册)。如果你运气不好,它会正确启动一次然后你将不得不完全重新安装它:)
同样的事情是在低端手机上使用数百种其他移动浏览器(由OpenWave等提供decent simulator)。您必须为他们准备1列基本HTML精简版网站。
即使您为每个移动设备创建了优化的(X)HTML,Google Mobile Search的用户也永远不会看到它!
相反,每个页面都将通过“无线转码器”进行代理,该无线转码器残酷地删除代码,剥离所有样式表和脚本(无论浏览器是否支持它们),甚至是<font>
:(