为IE和其他浏览器提供单独的CSS的最佳方法是什么?我想的只是针对IE,Firefox和Safari用户。特别是现在大多数浏览器都支持CSS3,但是IE。
我遇到的各种方法是
<!--[if IE]
&gt; 我更喜欢(2)因为(1)是额外的工作,特别是在开发时。但是(2)似乎并不总是有效。什么是最有效的方式?
答案 0 :(得分:3)
我会有一个样式表,所有内容都会在文档的顶部显示。
在这下面做你的 [! - [如果IE]] 条件样式表。在这里只是覆盖导致IE出现问题的样式。 - 拾取的特定类的最后一个样式是将要遵循的样式。
答案 1 :(得分:2)
我们的团队按照以下三条规则处理CSS:
答案 2 :(得分:1)
我同意将所有核心CSS保存在一个文件中。如果您使用的是ASP.NET,那么您可以使用WebHandler来管理实际发送的CSS。我敢肯定其他语言也有类似的解决方案。这允许您只发送您需要的内容并允许它被缓存。另一个好处是你可以组合多个css文件(如果你是这样做的)并且只提供一个。这是一种很好的做法,因为您减少了对Web服务器的请求数量。
然后你可以写[if lt IE 8] margin:0px;它不会被发送到IE8或FF等。
如果您只是使用HTML,那么您必须使用上面提到的[! - [if IE]]样式条件。
我们在一个非常大的项目中使用WebHandler,我不会以任何其他方式进行。
见http://www.conditional-css.com/download。它适用于PHP,C#和C
祝你好运。答案 3 :(得分:1)
<!--[if !IE]><!--><link rel="stylesheet" href="non-ie.css"><!--<![endif]-->
<!--[if IE]><link rel="stylesheet" href="ie.css"><![endif]-->
这个技巧广泛使用Yandex(又名“俄罗斯谷歌”)来减少HTTP请求。例如market.yandex.ru使用此功能。
答案 4 :(得分:1)
您也可以使用这种方式;有时我们需要在代码中间编写样式的条件可能不起作用。
<?php $browser = $_SERVER['HTTP_USER_AGENT']; ?>
<?php if (strstr($browser, "MSIE 6.0")) { ?>
<link rel="stylesheet" href="ie6style.css" type="text/css" media="screen" />
<?php }else{ ?>
<link rel="stylesheet" href="default.css" type="text/css" media="screen" />
<?php } ?>
使用
检查$browser
IE - “MSIE”
Firefox - “Firefox”
Safari - “Safari”
歌剧 - “歌剧”Chrome - “Chrome”