Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何为不同的浏览器使用不同的CSS文件?_Jquery_Html_Css - Fatal编程技术网

Jquery 如何为不同的浏览器使用不同的CSS文件?

Jquery 如何为不同的浏览器使用不同的CSS文件?,jquery,html,css,Jquery,Html,Css,我使用的css文件在某些浏览器中正常工作,而在IE和Safari等其他浏览器中则无法正常工作 是否有任何技术可以使用不同的.css和.js文件来实现不同的浏览器兼容性?当然,也就是说,一般认为这是不好的做法,应该避免。然而,在高度复杂或以设计为导向的站点中,需要大量的遗留支持,如果已知并接受这些警告,那么这通常是不可避免的。总而言之,请不要这样做 绝对如此,也就是说,这通常被认为是不良行为,应该避免。然而,在高度复杂或以设计为导向的站点中,需要大量的遗留支持,如果已知并接受这些警告,那么这通常是

我使用的css文件在某些浏览器中正常工作,而在IE和Safari等其他浏览器中则无法正常工作


是否有任何技术可以使用不同的.css.js文件来实现不同的浏览器兼容性?

当然,也就是说,一般认为这是不好的做法,应该避免。然而,在高度复杂或以设计为导向的站点中,需要大量的遗留支持,如果已知并接受这些警告,那么这通常是不可避免的。总而言之,请不要这样做

绝对如此,也就是说,这通常被认为是不良行为,应该避免。然而,在高度复杂或以设计为导向的站点中,需要大量的遗留支持,如果已知并接受这些警告,那么这通常是不可避免的。总而言之,请不要这样做

对于safari,您不需要任何特殊的css。对于IE来说,常见的用途是创建一个特殊的css来覆盖某些样式:

<link rel="stylesheet" type="text/css" href="style.css" media="all">
<!--[if IE]>
    <link rel="stylesheet" type="text/css" href="styleIE.css" media="all">
<![endif]-->

对于safari,您不需要任何特殊的css。对于IE来说,常见的用途是创建一个特殊的css来覆盖某些样式:

<link rel="stylesheet" type="text/css" href="style.css" media="all">
<!--[if IE]>
    <link rel="stylesheet" type="text/css" href="styleIE.css" media="all">
<![endif]-->

Internet Explorer版本9之前支持,允许您获取一些HTML并向特定版本的IE显示或隐藏。您可以使用它向特定版本的Internet Explorer提供特定的CSS和JavaScript文件。例如:

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

<!--[if lt IE 9]>
<link rel="stylesheet" href="less-than-ie-9.css">
<![endif]-->
<!--[if lt IE 7]><html lang="en" class="lte-ie9 lte-ie8 lte-ie7 lte-ie6"><![endif]-->
<!--[if IE 7]>   <html lang="en" class="lte-ie9 lte-ie8 lte-ie7"><![endif]-->
<!--[if IE 8]>   <html lang="en" class="lte-ie9 lte-ie8"><![endif]-->
<!--[if IE 9]>   <html lang="en" class="lte-ie9"><![endif]-->
<!--[if !IE><!--><html lang="en"><!--<![endif]-->

由于IE(直到第9版)明显存在缺陷,并且比其他浏览器的标准支持要少得多,因此经常使用条件注释来修复它,因此,您可以将特定于IE的CSS与其他CSS保持在相同的样式表中。例如:

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

<!--[if lt IE 9]>
<link rel="stylesheet" href="less-than-ie-9.css">
<![endif]-->
<!--[if lt IE 7]><html lang="en" class="lte-ie9 lte-ie8 lte-ie7 lte-ie6"><![endif]-->
<!--[if IE 7]>   <html lang="en" class="lte-ie9 lte-ie8 lte-ie7"><![endif]-->
<!--[if IE 8]>   <html lang="en" class="lte-ie9 lte-ie8"><![endif]-->
<!--[if IE 9]>   <html lang="en" class="lte-ie9"><![endif]-->
<!--[if !IE><!--><html lang="en"><!--<![endif]-->

(但请注意,您可以理解为什么人们热衷于放弃对旧版本IE的支持。)

其他浏览器不支持类似的机制。正如中的链接所示,浏览器通常都有一些独特的CSS parsin bug,您可以使用这些bug在浏览器中定位代码。然而,一旦你沿着这条路走下去,你就会依赖于马车的行为。据你所知,你不想瞄准的未来浏览器可能会意外地包含相同的bug。一般来说,最好的方法是按照标准编写代码,并解决在特定浏览器中发现的任何错误


还值得记住的是,有些东西(例如表单控件)在不同的浏览器中看起来不一样,这没关系。它通常不会让最终用户感到困惑。

Internet Explorer版本9之前支持,它允许您获取一些HTML并向特定版本的IE显示或隐藏。您可以使用它向特定版本的Internet Explorer提供特定的CSS和JavaScript文件。例如:

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

<!--[if lt IE 9]>
<link rel="stylesheet" href="less-than-ie-9.css">
<![endif]-->
<!--[if lt IE 7]><html lang="en" class="lte-ie9 lte-ie8 lte-ie7 lte-ie6"><![endif]-->
<!--[if IE 7]>   <html lang="en" class="lte-ie9 lte-ie8 lte-ie7"><![endif]-->
<!--[if IE 8]>   <html lang="en" class="lte-ie9 lte-ie8"><![endif]-->
<!--[if IE 9]>   <html lang="en" class="lte-ie9"><![endif]-->
<!--[if !IE><!--><html lang="en"><!--<![endif]-->

由于IE(直到第9版)明显存在缺陷,并且比其他浏览器的标准支持要少得多,因此经常使用条件注释来修复它,因此,您可以将特定于IE的CSS与其他CSS保持在相同的样式表中。例如:

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

<!--[if lt IE 9]>
<link rel="stylesheet" href="less-than-ie-9.css">
<![endif]-->
<!--[if lt IE 7]><html lang="en" class="lte-ie9 lte-ie8 lte-ie7 lte-ie6"><![endif]-->
<!--[if IE 7]>   <html lang="en" class="lte-ie9 lte-ie8 lte-ie7"><![endif]-->
<!--[if IE 8]>   <html lang="en" class="lte-ie9 lte-ie8"><![endif]-->
<!--[if IE 9]>   <html lang="en" class="lte-ie9"><![endif]-->
<!--[if !IE><!--><html lang="en"><!--<![endif]-->

(但请注意,您可以理解为什么人们热衷于放弃对旧版本IE的支持。)

其他浏览器不支持类似的机制。正如中的链接所示,浏览器通常都有一些独特的CSS parsin bug,您可以使用这些bug在浏览器中定位代码。然而,一旦你沿着这条路走下去,你就会依赖于马车的行为。据你所知,你不想瞄准的未来浏览器可能会意外地包含相同的bug。一般来说,最好的方法是按照标准编写代码,并解决在特定浏览器中发现的任何错误


还值得记住的是,有些东西(例如表单控件)在不同的浏览器中看起来不一样,这没关系。它通常不会让最终用户感到困惑。

我发现这个老问题是因为我有同样的问题,所以我搜索了一下。也许这对你来说是个好办法。至少对我来说是这样。下面是如何在不同浏览器中使用不同的style.css的代码

仅javascript:

<script type="text/javascript">
        var cssId = 'myCss';
        var head  = document.getElementsByTagName('head')[0];
        var link  = document.createElement('link');
        link.id   = cssId;
        link.rel  = 'stylesheet';
        link.type = 'text/css';
        link.media = 'all';

        /*----------------------------------------------------------------*/
        var isOpera = !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0;
        var isFirefox = typeof InstallTrigger !== 'undefined';
        var isSafari = Object.prototype.toString.call(window.HTMLElement).indexOf('Constructor') > 0;
        var isChrome = !!window.chrome && !isOpera; 
        var isIE = /*@cc_on!@*/false || !!document.documentMode;

    if (!document.getElementById(cssId)){
        var output = "";
        if(isFirefox){
            output += "Firefox";
                link.href = 'firefox.css';
                head.appendChild(link);
        }
        else if(isChrome){
            output += "Chrome";
                link.href = 'chrome.css';
                head.appendChild(link);
        }
        else if(isSafari){
            output += "Safari";
                link.href = 'safari.css';
                head.appendChild(link);
        }
        else if(isOpera){
            output += "Opera";
                link.href = 'opera.css';
                head.appendChild(link);
        }
        else if(isIE){
            output += "IE";
                link.href = 'ie.css';
                head.appendChild(link);
        }
        document.body.innerHTML = output;
    }
    </script>

var cssId='myCss';
var head=document.getElementsByTagName('head')[0];
var link=document.createElement('link');
link.id=cssId;
link.rel='stylesheet';
link.type='text/css';
link.media='all';
/*----------------------------------------------------------------*/
var isOpera=!!window.opera | | navigator.userAgent.indexOf('OPR/')>=0;
var isFirefox=typeof InstallTrigger!='未定义';
var isSafari=Object.prototype.toString.call(window.HTMLElement.indexOf('Constructor')>0;
var isChrome=!!window.chrome&!等轴虫;
var isIE=/*@cc_on@*/假| |!!document.documentMode;
如果(!document.getElementById(cssId)){
var输出=”;
如果(iFirefox){
输出+=“Firefox”;
link.href='firefox.css';
头.子(链接);
}
else if(变色){
输出+=“铬”;
link.href='chrome.css';
头.子(链接);
}
else if(伊萨法里){
输出+=“Safari”;
link.href='safari.css';
头.子(链接);
}
else if(等参线){
输出+=“歌剧”;
link.href='opera.css';
头.子(链接);
}
否则如果(isIE){
输出+=“IE”;
link.href='ie.css';
头.子(链接);
}
document.body.innerHTML=输出;
}

希望能有所帮助。

我找到了这个老问题,因为我有同样的问题,所以我搜索了一下。也许这对你来说是个好办法。至少对我来说是这样。下面是如何在不同浏览器中使用不同的style.css的代码

仅javascript: