2011-04-24 92 views
2

有没有CSS黑客检测到只有Android浏览器写CSS?不是所有的WebKit浏览器 - 我想为iPhone和Android浏览器上的某些元素编写不同的CSS。有没有什么办法可以检测出只有CSS的Android浏览器?

例如http://paulirish.com/2009/browser-specific-css-hacks/

我想针对Android的浏览器CSS破解。

+3

我会避免,亲自。从长远来看,浏览器检测总是很麻烦。这就是为什么我们已经进入了媒体查询之类的问题,以寻求浏览器的特性,而不是“这是哪种浏览器?” – Parrots 2011-04-24 15:25:05

+2

CSS不是为了处理这种东西而设计的。 – BoltClock 2011-04-24 15:26:04

+1

有一些特定于Android的怪癖,例如[涉及“自动适应网页”功能的呈现问题](http://stackoverflow.com/questions/8508889/android-autofit-mode-causing-issues-with-css-宽度在-网页)。针对Android浏览器的一些规则(如no-op背景图像:解决该问题的方法)将非常有用。 – supervacuo 2012-11-04 18:21:45

回答

2

您引用的CSS黑客攻击利用了CSS中的缺陷以针对特定的浏览器(通常用黑客来获取一些与IE 6 /等传统浏览器一起工作的东西)。 CSS本身不能执行浏览器检测,尤其是不需要操作系统检测,这正是你正在寻找的。

我对您的问题上述评论是说(不这样做!),你可以抓住用户代理字符串,它包含的“Android”作为操作系统:

Mozilla/5.0 (Linux; U; Android 1.1; en-gb; dream) AppleWebKit/525.10+ (KHTML, like Gecko) Version/3.0.4 Mobile Safari/523.12.2 – G1 Phone 

我不能如果这是100%可靠的(尽管理由是每个Android手机都应该这样报告),并且没有什么可以阻止它在未来发生变化。您需要在Javascript中执行此检测并让JS加载您的用于Android的自定义CSS文件(让它为文档添加另一个样式标签),或者在您的服务器端编程(ASP/PHP等)中执行检测并让它将风格标签回传给您的来源。

-1

目前的最佳做法是使用功能检测而不是浏览器/操作系统检测。有一个名为Modernizr的JavaScript库可能会有所帮助。我相信它也有一些技巧可以让非CSS3浏览器应对一些新的CSS3标签,如headerfooter

+0

是的,功能检测是完美的...但也有浏览器错误。同样微不足道的CSS 2在桌面webkit上完美工作,并在android浏览器浏览器上给出一些意想不到的结果。 – SilentImp 2015-04-30 17:08:57

相关问题