2012-11-16 3 views
6

IE 9에서 일부 조건부 스타일링을 사용하려고합니다.하지만 두 번째 스타일 시트를 사용하지 않거나 HTML 페이지에서 참조하지 않는 조건을 기본 스타일 시트 안에 넣고 싶습니다. 그래서,CSS 스타일 시트에서 조건부 서식을 사용하려면 어떻게해야합니까?

<!--[if IE 9]> 
<style> 
nav li a:hover { 
    text-decoration: underline; 
    color: black; 
} 
nav .four a:hover{ 
    color:white; 
} 
</style> 
<![endif]--> 

하지만이 CSS 시트에서 이러한 조건을 가지고 싶다 : 지금이 순간, 나는 그것이 기본 스타일 시트에 다른 스타일을 덮어 쓰기 때문에 작동하는 HTML 페이지에이 코드를 걸었습니다 그것의 모두는 1 개의 장소에서 있고 각 페이지에있는 부호를 반복 할 필요 없다. IE 9 용으로 별도의 CSS를 사용하지 않으려합니다. IE 7-8 용으로 이미 가지고 있습니다. 나는 스타일 시트에이 시도 : (IE 9은 텍스트 그림자를 지원하지 않기 때문에 nav bar에 대한 수정)

<!--[if IE 9]> 

nav li a:hover { 
    text-decoration: underline; 
    color: black; 
} 
nav .four a:hover{ 
    color:white; 
} 
<![endif]--> 

위의 코드는 내 nav bar에 대한 IE 9 다릅니다.

CSS 스타일 시트에서이를 수행 할 수있는 방법이 있습니까?

답변

6

조건부 댓글 은 HTML에 대한,하지만 당신은 당신의 CSS에 활용할 수 있습니다. HTML5Boilerplate는 html 요소 (https://github.com/h5bp/html5-boilerplate/blob/master/index.html)

<!DOCTYPE html> 
<!--[if lt IE 7]>  <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 
<!--[if IE 7]>   <html class="no-js lt-ie9 lt-ie8"> <![endif]--> 
<!--[if IE 8]>   <html class="no-js lt-ie9"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> 

이것은 당신에게 당신이 사용할 수있는 후크를 제공에 클래스를 추가하여이 작업을 수행 타겟으로 만하는 IE :

.lt-ie8 .my-style { color: red } 
+0

감사합니다. def는 앞으로의 프로젝트에서 더 자주 상용구를 사용하기 시작할 것입니다! –

0

그건 일반적으로 불가능합니다. IE의 조건 블록은 HTML 웹 페이지에서만 사용할 수 있습니다.

그러나 브라우저 공급 업체는 항상 Microsoft를 포함한 CSS 파서를 사용하여 재미 있습니다. 그래서 우리는 어떤 사람들이 다른 어떤 사람에 의해서 해석되지 않는 어떤 규칙을 갖는 데 사용될 수있는 css hacks이라고 불리는 것들이 있습니다.

스타일 시트가 더 이상 w3c 규격이 아니며 분명히 '깨끗한'솔루션이 아닙니다 (IE6의 어두운 시대 동안의 커먼이었던 더러운 레거시 해결 방법과 같음) 가능한 경우 피해야하는 사항입니다. .

+0

나는 옳은 일과 연결되어 있다고 생각하지 않습니다 ... – Nathan

+0

죄송합니다. 글쎄, 적어도 그것은 [this] (http://www.digipedia.pl/usenet/thread/17198/42524/)와는 다르다! 감사합니다 –

+0

하하, 예. 사실 버그 리포트에서 어색함이 느껴집니다. – Nathan

관련 문제