Php 链接不同浏览器的单独/有条件/唯一样式表
将gecko、opera、msie、webkit等指向它们自己的附加样式表的当前最佳实践是什么 浏览器嗅探失败了?我在网上找到的大部分都是2008年的旧帖子,或者是关于是非的理论争论,或者是如何使用等等Php 链接不同浏览器的单独/有条件/唯一样式表,php,jquery,css,Php,Jquery,Css,将gecko、opera、msie、webkit等指向它们自己的附加样式表的当前最佳实践是什么 浏览器嗅探失败了?我在网上找到的大部分都是2008年的旧帖子,或者是关于是非的理论争论,或者是如何使用等等 一定有更复杂的东西我们可以用。jquery或php上写着(伪代码),“IF moz,@import url(moz.css)”之类的东西。从useragent检测浏览器,并为该浏览器包含适当的css $browser = get_browser($_SERVER['HTTP_USER_AGENT
一定有更复杂的东西我们可以用。jquery或php上写着(伪代码),“IF moz,@import url(moz.css)”之类的东西。从useragent检测浏览器,并为该浏览器包含适当的css
$browser = get_browser($_SERVER['HTTP_USER_AGENT'], true);
switch ($browser['browser']) {
case "IE": //load ie specific css
break;
case "Firefox":
case "Mozilla": //load gecko specific css
break;
case "Safari": //load safari css
break;
case "Opera": //load opera css
break;
default:
echo '<link href="default.css" rel="stylesheet" type="text/css" />';
}
$browser=get\u browser($\u SERVER['HTTP\u USER\u AGENT',true);
开关($browser['browser'])){
案例“IE”://加载特定于IE的css
打破
案例“Firefox”:
案例“Mozilla”://加载特定于壁虎的css
打破
案例“Safari”://加载Safari css
打破
案例“Opera”://加载Opera css
打破
违约:
回声';
}
下面是一个on get_browser()函数 检测特定的浏览器是个坏主意,因为不同的版本可能有不同的功能,而您可能不知道这些功能。一个更好的解决方案是使用类似的方法来检测特征,并相应地设置样式 如果出于任何原因必须检测不同的渲染引擎,那么在PHP中,使用以下方法相对简单:
...
这看起来正是我需要的,但你能更具体一点吗?我对代码一窍不通。检测opera和gecko的确切代码片段是什么,并将它们指向它们自己的相关样式表?您必须使用类似get_browser的browser_info()函数($_SERVER['HTTP_USER_AGENT',true);您将了解它是什么类型的浏览器,但要使用此功能,您需要在脚本中做一些更改。据我所知,“switch”一词使我感到厌烦。这段代码将切换样式,但我只需要为某些浏览器添加一个附加样式表。@user1691389我更新了示例,以使其更加清晰<代码>开关
语句是许多编程语言中的常见功能–请查看更基本的解释!两个例子中的第一行都给出了错误。谢谢你们的帮助,伙计们,但我知道什么时候该辞职。我将只使用一个巨大的样式表,它不是世界末日。@user1691389它给出了什么错误?您需要设置php.ini设置,如手册所述:“为了使其正常工作,php.ini中的配置设置必须指向系统上browscap.ini文件的正确位置。”@user1691389我猜您使用的是共享主机或其他无法编辑php.ini文件的环境。如果是这样,您可以使用该项目来复制该功能。然后,将示例中的get_browser
区域替换为$bc=newbrowscap('path/to/cache')$browser=$bc->getBrowser();开关($browser['browser']){…
<head>
...
<!-- Stylesheets for all browsers -->
<link rel="stylesheet" href="style.css" />
<?php
$browser = get_browser(null, true);
switch($browser['browser']){
case 'Firefox':
// User is using Firefox
$style = 'firefox.css';
break;
case 'Safari':
// User is using Safari
$style = 'safari.css';
break;
}
if(isset($style)){
// Specific browser stylesheet set - add to page
?>
<link rel="stylesheet" href="<?php echo $style;?>" />
<?php } ?>
</head>