2009-02-20 2 views
6

IE 파일을 CSS 파일에 넣으려고했지만 작동하지 않는 것 같습니다. 브라우저가 IE 인 경우이 배경색을 사용하도록 말할 수 있도록 CSS 구조가 있습니까? 나는 또한 그 밖의 조건부 경우에 아무것도 찾을 수 없었습니다. 존재합니까? 누군가가 모범을 보일 수 있습니까?IE 조건문을 CSS 파일이나 HTML 파일에 넣으시겠습니까?

답변

17

조건부 HTML은 HTML을 사용하기 때문에 IE 해킹에 필요한 CSS를 덮어 쓸 추가 CSS 파일을 포함해야합니다.


예 :

<head> 
    <style type="text/css"> 
    @import url(/styles.css); 
    </style> 
    <!--[if lte IE 6]> 
     <link rel="stylesheet" type="text/css" href="ie6.css" /> 
    <![endif]--> 
</head> 
11

jQuery에서 큐를 가져 와서 조건부 서식을 사용하여 컨테이너 요소를 만들었습니다.

<body class="center"> 
<!--[if IE 5]><div id="ie5" class="ie"><![endif]--> 
<!--[if IE 6]><div id="ie6" class="ie"><![endif]--> 
<!--[if IE 7]><div id="ie7" class="ie"><![endif]--> 
<!--[if IE 8]><div id="ie8" class="ie"><![endif]--> 
    <div class="site text-left"> 

    </div> 
<!--[if IE]></div><![endif]--> 
</body> 

는 나는 그런

CSS에서 이러한 조건문 없습니다
.site { width:500px; } 
.ie .site { width:400px; } 
#ie5 .site { width:300px; } 
+0

나는이 트릭을 직접 사용합니다. CSS 파일을 좀 더 섬세하게 만들며 선택자 우선 순위에 대해 걱정할 필요가 없습니다. –

+0

흥미로운 접근 방식으로, 나는 전에 이것을 보지 못했습니다. 저는 개인적으로 제 마크 업을 제 CSS보다 깔끔하게 유지하려고합니다. 그러나 각자 자신에게! –

+0

+1 멋진 간계. – Ishmael

3

같은 CSS에서 조건 정보를 넣을 수 있습니다,하지만 당신은 IE의 다양한 버전의 차이점은 때로 믿을 수있는 경우는 "홀리 해킹"를 사용할 수 있습니다 '의미 T :

div.class { /* whatever */ } 
* html div.class { /* IE-only */ } 
+0

AFAIK, 그들은 IE8에서'* html'을 삭제했습니다. – bendewey

+0

더 좋습니다. 이 트릭은 어쨌든 IE 7 이상에서만 필요합니다. – greyfade

1

내가 bendewey에 의해 제안 된 솔루션과 유사한 것을 사용하지만, 대신 html 태그 주위 조건 수업에 갈 것이 좋습니다. 지금까지 내가이 알고있는 최초의 폴 아일랜드어의 블로그 (http://paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/)

<!--[if lt IE 7 ]> <html class="ie6"> <![endif]--> 
<!--[if IE 7 ]> <html class="ie7"> <![endif]--> 
<!--[if IE 8 ]> <html class="ie8"> <![endif]--> 
<!--[if IE 9 ]> <html class="ie9"> <![endif]--> 
<!--[if (gt IE 9)|!(IE)]><!--> <html class=""> <!--<![endif]--> 

에서 언급 한 후, CSS에서 당신이 사용

.box {background: blue;} 
.ie7 .box {background: green;} 

이 추가를 사용하여 솔루션에 비해 몇 가지 장점이 있습니다 div. 자세한 내용은 위의 게시물을 확인하십시오.