2013-01-09 2 views
5

특정 브라우저에 대해 다른 CSS 파일을로드 할 수 있습니까? (가난한 의사 코드) 같은각 브라우저마다 CSS가 다릅니 까?

: 당신이 원하는

if firefox 
<link rel="stylesheet" type="text/css" href="includes/MyCssFirefox.css" /> 
if chrome 
<link rel="stylesheet" type="text/css" href="includes/MyCssChrome.css" /> 
if Safari 
<link rel="stylesheet" type="text/css" href="includes/MyCssSafari.css" /> 
+1

더블 포스트 ... 각각의 특정 스타일 시트를 제공하기위한 당신이 무슨 이유 http://stackoverflow.com/a/2644080/1100536 – bluejamesbond

+0

을 참조하시기 바랍니다 그 브라우저? – cimmanon

답변

13

이상적인 해결책은 존재하지 않는 : 당신이 그것을 어떻게하려고하는 경우

불행하게도, 크로스 브라우저 솔루션이 존재하지 않습니다 HTML 자체. 그러나 대부분의 IE 버전에서 작동합니다. 그러한처럼 : 그래서 최선의 해결책

<!--[if IE]> 
<link rel="stylesheet" type="text/css" href="includes/myIEGeneralStyle.css" /> 
<![endif]--> 
<!--[if IE 6]> 
<link rel="stylesheet" type="text/css" href="includes/myIE6Style.css" /> 
<![endif]--> 
<!--[if IE 7]> 
<link rel="stylesheet" type="text/css" href="includes/myIE7Style.css" /> 
<![endif]--> 
<!--[if IE 8]> 
<link rel="stylesheet" type="text/css" href="includes/myIE8Style.css" /> 
<![endif]--> 

:

방법 등과 같은 자바 스크립트 솔루션에 대해 : Browser Detection. 더 명확히하기 위해이 클래스에 대해 조금 읽기, 무엇을 해당 파일이 기본적으로하고있는 것은 같은처럼 단순히 개념이다 :

var browser = navigator.userAgent.toLowerCase().indexOf('chrome') > -1 ? 'chrome' : 'other'; 

을 분명히, 그냥 브라우저의 종류를 감지보다 더 많은 작업을 수행합니다. 실제로, 그것은 버전, OS, 그리고 당신이 그 링크에서 읽을 수있는 더 많은 세부 사항을 알고 있습니다. 하지만, 'Chrome'을 'mozilla', 'explorer'등으로 바꾸어 모든 브라우저 유형을 확인합니다 ...

그런 다음 CSS 파일을 추가하려면 다음과 같은 조건문을 따르십시오. :

if (BrowserDetect.browser.indexOf("chrome")>-1) { 
document.write('<'+'link rel="stylesheet" href="../component/chromeCSSStyles.css" />'); 
} else if (BrowserDetect.browser.indexOf("mozilla")>-1) { 
    document.write('<'+'link rel="stylesheet" href="../component/mozillaStyles.css" />'); 
} else if (BrowserDetect.browser.indexOf("explorer")>-1) { 
    document.write('<'+'link rel="stylesheet" href="../component/explorerStyles.css" />'); 
} 

행운과 희망이 도움이됩니다!

+0

조건부 주석은 Internet Explorer에서만 작동하며 (특정 버전까지만 지원됩니다. 마지막으로 지원하는 버전은 8 가지입니다). OP는 비 IE 브라우저에 다른 파일을 제공하려고합니다. – cimmanon

+0

@cimmanon : 그것을 업데이트했습니다. – bluejamesbond

+0

그리고 여전히 가난한 답변입니다. UA 스니핑은 결코 콘텐츠를 제공하지 못했습니다. – cimmanon

-1

서버 측에서이 작업을 수행 할 수 있습니다.

if(Request.UserAgent is chrome){   
    //here output chrome stylesheet 
} 
-5

그래,

<link rel="stylesheet" type="text/css" browser="mozillafirefox" href="includes/firefox.css" /> 
<link rel="stylesheet" type="text/css" browser="googlechrome" href="includes/chrome.css" /> 
<link rel="stylesheet" type="text/css" browser="msinternetexpl" href="includes/ie.css" /> 
+0

어디서'browser' 속성을 읽었습니까? [HTML5 사양] (http://www.w3.org/TR/html5/document-metadata.html#the-link-element)에 따라 또는 [HTML4 사양] (http://www.w3.org/TR/html4/struct/links.html#h-12.3). –

관련 문제