php - 我想在我的网站上添加一些检测;这些是好的选择吗?

标签 php html internet-explorer css

<分区>


想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它.

关闭 9 年前

当我重新编码我的整个网站时,我需要选择几种方法来检测网络浏览器和移动设备。从下面的列表中,你能推荐更好的选择吗?

这是我的选择;

浏览器检测

  • 使用 IE 特定的注释参数来定位 IE6 - IE8 CSS 文件; IE9+和其他浏览器将使用相同的CSS文件
  • 通过 PHP 匹配 Web 浏览器用户代理字符串(不是完整用户代理字符串!)

移动设备检测

  • CSS3 媒体查询,尽管这对于不支持它们的 IE 版本以及检测分辨率能够显示完整网站(例如 4.7 英寸 1080p 显示器或 7 英寸 1080p 显示器)的移动设备可能会有问题显示)
  • 通过 PHP 匹配用户代理字符串(同样,不是整个 字符串!)

理想情况下,我希望所有移动设备(智能手机和平板电脑)都显示网站的移动版本,并可以选择通过用户代理开关查看桌面版本,我知道 Chrome、Firefox 和 Opera Android 优惠(至少)。

谢谢。

最佳答案

您不应使用浏览器检测,而应使用功能 检测。为此,我强烈推荐 Modernizr .

关于设备检测,我使用 PHP Mobile Detect ,效果非常好。然而,大多数情况下,您只需通过媒体查询进行屏幕尺寸检测即可:

@media screen and (max-width:759px){
    /* mobile CSS */
}

@media screen and (min-width:760px){
    /* browser CSS */
}

那显然过于简单了,你可以设置成你想要的任何大小,并且有多个版本(平板、巨屏等)。 More information can be found here.

也就是说,IE8 及更低版本不支持媒体查询,因此您需要进行基于 Javascript 的检测。如果您使用 Modernizr,您可以检测它,将屏幕大小的 CSS 复制到一个单独的文件中,然后通过为您的 CSS 链接提供一个 ID 来动态应用该 CSS 文件:

<link rel="stylesheet" type="text/CSS" id="ApplyQueries" href="queries.css" />

然后根据屏幕大小动态应用正确的文件:

if(document.documentElement.clientWidth < 760){
    document.getElementById('ApplyQueries').href = 'mobile.css';
} else {
    document.getElementById('ApplyQueries').href = 'browser.css';
}

同样,这过于简单化了,但应该让您知道从哪里开始。

关于php - 我想在我的网站上添加一些检测;这些是好的选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19794789/

上一篇:html - Bootstrap 3 上的行排序/定位

下一篇:html - CSS 在 Chrome 和 IE 8 中的工作方式不同

相关文章:

c# - IE9 缓存文本文件

css - 与 FF 和 Chrome 相比,渲染字体不同于 IE

php pdo 准备语句动态过滤器

PHP div 每 12 个图像

html - 根据条件在Angularjs中动态应用CSS样式属性

html - YouTube嵌入视频具有巨大的黑色边框

javascript背景大小和IE问题

php - 根据时间更改div的背景颜色

php - OOP中的静态函数有什么用?

javascript - 关于制作小部件的想法?