2009-12-17 83 views
2

嗨我正在编辑一个网站已与Internet Explorer兼容,所以它不能在Firefox中工作。我可以为mozilla firefox样式表添加if语句吗?

有什么办法可以添加firefox或mozilla样式表吗?

感谢您帮助 朱迪

<!--[if FIREFOX]> 
    <link rel="stylesheet" type="text/css" href="/AEBP_Homepage_12887/css/firefox.css" /> 
<![endif]--> 
+0

我认为你不能... – 2009-12-17 10:17:36

+1

如何将与FF不兼容的更改移到IE浏览器样式表中?很有可能,这将有助于提高向前兼容性,因为几乎可以肯定的是,为了使其在IE中工作,必须采取的措施依赖于IE对Web标准的一些片面实施。 – 2009-12-17 10:29:42

回答

2

编号<!--[if IE]><![endif]-->语法是Internet Explorer特定的。它是CSS的一个非标准的微软扩展。

查看conditional comments了解更多详情。

2

没有,有条件的意见是完全一个Internet Explorer的事情AFAIK。

但是,您可以创建一个条件评论说,IE浏览器将不解析,因此仅用于非IE浏览器:

<![if !IE]> 
<link rel="stylesheet" type="text/css" href="/AEBP_Homepage_12887/css/firefox.css" /> 
<![endif]> 

然而,这不是有效的HTML。似乎有变通办法使其有效。查看Wikipedia article中的“Downlevel-Revealed条件注释”段落。

+0

这是无效的标记,但是,对吗? – Joey 2009-12-17 10:19:23

+0

的确,我只是想知道自己(以前从未使用过)。维基百科文章中还有更多,我会添加一个笔记。 – 2009-12-17 10:21:37

3

使用php的一种方法是查看用户代理并查看它是什么浏览器。这是我使用:

例:

if (preg_match('/Firefox|Chrome|Opera|Safari|MSIE 8.0/', $_SERVER['HTTP_USER_AGENT'])) { 

link rel="stylesheet" href="one.css" type="text/css" media="screen" 
} 

else { 
link rel="stylesheet" href="other.css" type="text/css" media="screen" 
} 

另外,在preg_match功能,你应该输入您希望代理。 请记住,如果你不知道PHP,我写的例子需要编辑和正确的格式。

7

你不能做任何事情,优雅为IE保罗爱尔兰的解决方案,但使用您可以创建一个FF组特定的定义:

@-moz-document url-prefix() { CSS BLOCK } 

人开始上窜下跳尖叫“这应该从未如果我们在严格限制的网格上讨论Firefox vs Chrome与IE的字体渲染,并且有很多从左到右的文本理由,那么就会发生这种情况。

你也可以尝试一下CSS浏览器选择:

http://rafael.adm.br/css_browser_selector/

这个简单的JS文件允许你添加的东西像.gecko和.ff3你的CSS。

*追加动态 - 2014年*

我想实际追加这一点,因为,两年后,标准的解决方案是通过modernizr.js而不是浏览器检测到执行特征检测。 “火狐”是一个非常钝的工具,所有的版本挂在网上。这个答案仍然有效,除非你特别需要浏览器,所有版本和其他东西,否则这不是推荐的解决方案。

+0

适合我。我知道FF和webkit是非常合规的,但你不能依靠这个糟糕的第三方css。 – Diana 2013-07-17 17:24:16

+0

对此进行了快速更新,因为它已经两年了。 – Imperative 2014-10-03 18:01:40