为特定浏览器使用不同的CSS样式

为特定浏览器使用不同的CSS样式,css,cross-browser,Css,Cross Browser,IE和其他浏览器使用单独CSS的最佳方式是什么?我正在考虑只针对IE、Firefox和Safari用户。尤其是现在,除了IE之外,大多数浏览器都支持CSS3 我遇到的各种方法有 加载单独的样式表 有条件地使用我会有一个样式表,所有内容都会显示在文档顶部 下面是你的 [!--[if IE]] 条件样式表 在这里,只需覆盖在IE中引起问题的样式即可。特定类的最后一种样式将被采用。我们的团队按照以下三条规则处理CSS: 确保通用/通用CSS文件在所有浏览器中都能正常工作 在单独的文件中处理所有IE“b

IE和其他浏览器使用单独CSS的最佳方式是什么?我正在考虑只针对IE、Firefox和Safari用户。尤其是现在,除了IE之外,大多数浏览器都支持CSS3

我遇到的各种方法有

  • 加载单独的样式表
    有条件地使用
    我会有一个样式表,所有内容都会显示在文档顶部

    下面是你的 [!--[if IE]] 条件样式表


    在这里,只需覆盖在IE中引起问题的样式即可。特定类的最后一种样式将被采用。

    我们的团队按照以下三条规则处理CSS:

  • 确保通用/通用CSS文件在所有浏览器中都能正常工作
  • 在单独的文件中处理所有IE“bug”,控制加载带有IE条件的样式表
  • 除非无法按照前两条规则进行操作,否则不允许进行黑客攻击

  • 我同意将所有核心CSS保存在一个文件中。如果您使用的是ASP.NET,那么您可以使用WebHandler来管理实际发送的CSS。我相信其他语言也有类似的解决方案。这允许您只发送所需内容,并允许对其进行缓存。另一个好处是您可以组合多个css文件(如果您是这样做的话),并且只显示一个。这是减少对web服务器的请求数量的良好做法

    然后你可以写一些东西,比如[if lt IE 8]margin:0px;它不会被发送到IE8或FF等

    如果您只是使用HTML,那么您必须使用上面提到的[!--[If IE]]样式条件

    我们在非常大的项目中使用WebHandler,我不会用任何其他方式

    看。它可用于PHP、C#和C

    祝你好运。

    
    
    <!--[if !IE]><!--><link rel="stylesheet" href="non-ie.css"><!--<![endif]-->
    <!--[if IE]><link rel="stylesheet" href="ie.css"><![endif]-->
    

    这个技巧广泛使用Yandex(又名“俄罗斯谷歌”)来减少HTTP请求。例如,使用这种方法。

    您也可以使用这种方法;有时,条件可能不起作用,我们需要在代码中间写样式。< /P>
    <?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”

    除了解决浏览器bug之外,您是否以特定浏览器为目标?我的目标浏览器是支持CSS3和不支持CSS3的浏览器没有支持所有CSS 3的浏览器,Internet Explorer和Firefox都支持部分CSS 3。(对于CSS 3的大部分定义,你可以给出它的当前状态)这正是我所做的,因为我讨厌弄乱我的符合标准的样式表来修复ie。谢谢。这是为我做的。:)这只有在他使用PHP时才有效