如何在不同的浏览器中以不同的方式显示网页?

时间:2010-04-22 23:35:19

标签: coding-style browser

我想在不同的浏览器中以不同的格式显示网页的内容。 如何实施呢?

编辑:更多信息

这背后的动机是在不同的移动设备中显示内容。 例如:iPhone使用Safari 因此,如果使用Safari浏览器,我将调整内容,使其完全适合iPhone的屏幕,我可以更改字体大小等

如果使用其他浏览器,我会适当更改格式。

4 个答案:

答案 0 :(得分:1)

<?php
    if(strpos($_SERVER['HTTP_USER_AGENT'], 'iPhone')) {
        // is iPhone
    }
?>

答案 1 :(得分:1)

检查随HTTP请求一起发送的User Agent标头的内容。在您告诉我们更多关于您用于显示页面的内容之前,我不能更具体,但您应该将User Agent标头与已知浏览器进行比较,然后根据该测试提供不同的内容。

答案 2 :(得分:0)

除了对不同的user-agent HTTP标头做出反应之外,您还可以使用一些CSS技巧来区分IE和非IE浏览器以及不同的IE版本。当然还有另一种方法:使用一些JavaScript代码来显示/隐藏页面的特定部分,具体取决于从该JavaScript代码中检测到的浏览器。

但是,作为一项规则,我会避免使用任何特定于浏览器的内容,并以最能在最重要的浏览器中呈现的方式编写页面,并且使用较旧的和古老的浏览器可以合理地降级。

我还要注意,如果你决定user-agent切换,请确保你回到合理的默认值。没有什么比需要伪装我的浏览器A作为浏览器B更令人烦恼的只是因为某些网站不知道浏览器A或类似的愚蠢。

答案 3 :(得分:0)

浏览 - 嗅探是很棘手的,因为许多用户代理试图模仿其他人以超越程序员引发的限制。如果您专门尝试制作适合移动设备的样式表,则使用LINK标记的“media”属性是定位特定设备的好方法。即。

<link rel="stylesheet" type="text/css" href="base.css" media="all"/>
<link rel="stylesheet" type="text/css" href="mobile.css" media="handheld"/>

第一个样式表将应用于所有媒体类型,而第二个样式表将仅应用于“移动”设备。

如果您正在寻找仅定位IE的方法,请查看条件评论:http://www.quirksmode.org/css/condcom.html

Aaaand获取有关控制iPhone视口的更多信息,请查看Apple的这篇文章:https://developer.apple.com/library/content/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html