我需要创建一个在 ipad 上看起来不同的页面。我以前从未这样做过,所以我有几个问题:
1) 我怎样才能让一个页面知道它在 ipad 上被查看以用于 css 目的?
2)如果页面上的某些内容与ipad不同,我如何使用php知道正在加载页面的设备(因为这不能用css完成)?
我先回答你的第二个问题。在服务器端代码中检测特定设备类型的唯一方法是通过用户代理解析。在 PHP 中,您可以使用函数执行此操作,如果第二个字符串参数不包含在第一个字符串参数中strpos()
,该函数将返回。FALSE
例如:
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if (strpos($userAgent, 'iPad') !== FALSE) {
// load iPad-specific content
} else {
// load content for other devices
}
要回答您的第一个问题,无法使用 CSS仅检测iPad。您可以使用媒体查询来定位 1024x768 显示器,但这些将适用于具有该分辨率的任何屏幕(不仅仅是 iPad)。如果您想应用 iPad 特定的 CSS 样式,请使用上述 PHP 代码加载一个独特的样式表。
但是,应该指出的是,设备检测通常是一种不好的做法,因为它不会考虑不断变化的浏览器功能、市场趋势或用户代理欺骗。在大多数情况下,CSS 媒体查询提供了一种更强大、更前向的方法来支持各种设备。为什么?因为它们针对的是设备类型,而不是特定型号。这意味着您的网站今天可以在 iPad、Android 和 Windows 平板电脑上运行良好,明年也可以在市场上任何热门的新 xyz 设备上运行(无需更改代码)。
http://css-tricks.com/snippets/css/ipad-specific-css/
http://thomasmaier.me/blog/2010/03/04/howto-css-for-the-ipad/
http://matthewjamestaylor.com/blog/ipad-layout-with-landscape-portrait-modes
这可能会对您有所帮助,这是一篇写得很好的文章...
使用媒体查询来隐藏/显示/更改不同设备的内容。