2011-12-17 6 views
2

위해이 CSS는 CSS3의 PIE에게ie7 및 8에 대해서만 css3 파이를로드하는 방법은 무엇입니까? 하지만 9

border: 1px solid #696; 
padding: 60px 0; 
text-align: center; width: 200px; 
-webkit-border-radius: 12px; 
-moz-border-radius: 12px; 
border-radius: 12px; 
background: #EEFF99; 
behavior: url(/PIE.htc); 

특히 내 질문이 PIE.htc 모든 브라우저 또는 유일한 IE 7 및 8에 다운로드 할 것입니다

behavior: url(/PIE.htc); 

을 사용하는 것입니다?

저는 IE7과 8에도 둥근 모서리를 보여줄 필요가 있습니다. 그래서 Modernizr을 사용하고 둥근 모서리에 다른 클래스와 이미지를 쓰는 대신, PIE.htc의 테두리와 높이의 색과 두께를 변경할 때마다 IE7과 8에서 동일하게 렌더링되기 때문에 CSS3 PIE이 좋은 해결책이 될 것입니다. . 그러나 Modernizr과 이미지의 경우 우리는 새로운 이미지를 사용하여 새로운 이미지를 변경하고 업로드해야합니다.

그리고이 때문에 Modernizr을 사용하고 있기 때문에 조건부 주석을로드 할 수 없기 때문에 모든 브라우저에서로드 할 필요가 없습니다. 그래서 나는 CSS3 PIE가 유연성에 좋고, IE7과 8에만로드한다면이 특별한 경우에 사용하는 것이 좋을 것이라고 생각했습니다.

+2

이미 질문하지 않았습니까? "상세한 분석"으로 충분하지 않았습니까? http://stackoverflow.com/questions/5609651/will-css3pie-htc-file-load-for-other-browsers-even-they-dont-need – BoltClock

+0

아, 예, 깜빡했습니다. 지금 내가 이것을 삭제해야합니까? . 그러나 michielvoo의 대답은 나에게도 유용하며 나는이 질문에서 Modernizr과 비교하고 있었다. 제목을 바꿔야 할까? –

+0

삭제할 필요는 없습니다. 제목을 바꾸는 것은 괜찮습니다. 또는 이것을 제가 사본으로 닫으려면 그 방법도 가능합니다. – BoltClock

답변

9

behavior은 유효한 CSS 속성이 아니며 Internet Explorer 이외의 브라우저에서는 무시됩니다. 그들은 이 아니며은 PIE.htc 파일을 다운로드합니다.

당신은 당신이 부하가 조건 의견에,하지만 당신은 조건부 주석을 사용할 수 있다면, 당신은 다음과 같은 트릭을 할 수 을 할 수없는 언급 (?) :이 경우

<!doctype html> 
<!--[if IE 7]><html class="ie7"><![endif]--> 
<!--[if IE 8]><html class="ie8"><![endif]--> 
<!--[if gt IE 8]><!--><html><!--<![endif]--> 
<head> 

을 조건부 사용 댓글은 있지만 댓글 내부에는 아무 것도로드하지 않습니다. <html> 요소에 브라우저 전용 클래스를 추가하기 만하면됩니다. 이제 CSS에서이 작업을 수행 할 수 있습니다.

.some-class { 
    border-radius: 12px; 
} 
.ie7 .some-class, .ie8 .some-class { 
    behavior: url(/PIE.htc); 
} 
+0

나는 그것이 작동하지 않기 때문에 나는 조건부로 Modernizr을로드 할 수 없다고 말했다. 당신의 해결책은 좋아 보인다. –

+0

IE9가'behaviour'를 감지 할 수 있습니까? –

+0

예, IE9는 '동작'을 지원합니다. –

관련 문제