2013-03-06 3 views
0

좋은 하루, 그들이 한 경우HTML : 사용 조건부 주석

내가 IE8에서 일부 글꼴 렌더링 문제 (가짜 굵은 글씨)를 해결하기 위해 두 개의 서로 다른 CSS 코드를 적용 할

이, 후자는 모든 글꼴 - 가족을 인식 할 수 없습니다

<!--[if lte IE 8]> 
    <link href="IE8fonts.css" rel="stylesheet" type="text/css"> 
<![endif]--> 
:

첫 번째 코드 (IE8 포함) IE의 이전 버전입니다 : 대신은 첫 번째 글꼴 - 가족을 인식, 그래서 내가 그 문제를 해결하기 위해 조건부 주석을 사용하려고 시도하고있어, 같은 이름을 가지고

두 번째 것은 IE9, IE10 및 모든 비 IE 브라우저 (Chrome, Firefox

<!--[if IE 9 | !IE]><!--> 
    <link href="fonts.css" rel="stylesheet" type="text/css"> 
<!--<![endif]--> 

내가 첫 번째 코드가 올바른지 (또는 아마 알고 :, 오페라, 사파리 ...), 그들 중 누구도이 대담한 문제 가짜 없다) 페이지를, 그래서 두 번째는 맞다면 내가 알고 싶은 나는 IE에서 호환성 모드를 변경할 때 기대하는 바를 얻지 못하기 때문에 역시, 조건에 뭔가 잘못되었다 [IE 9 | ! IE] 나는 또한 올바른 순서 (만약 있다면 하나)를 알고 싶다. 제발 좀 도와주세요. 왜냐하면 저는 호환성과 관련이있는 초보자이기 때문입니다./

+0

원본 문제를 해결하는 것이 더 좋지 않습니까? 나는 IE 8이 적절하게 굵게 표시된 서체에 문제가 있다고 생각하지 않습니다. 원래 문제가 무엇이든간에 다른 브라우저에서도 발생할 수 있으므로 IE 버전 스니핑을 사용하는 것이 올바른 방법이 아닙니다. –

답변

1

보다 작거나 IE8과 같습니다. 이렇게하면 복잡하고 불필요한 조건부 주석을 피할 수 있습니다.

<link href="fonts.css" rel="stylesheet" type="text/css"> 
<!--[if lte IE 8]> 
    <link href="IE8fonts.css" rel="stylesheet" type="text/css"> 
<![endif]--> 

희망이 있습니다.

+0

정말 감사합니다. D –

0

조건부 설명은 IE 관련 기능입니다. 다른 브라우저는 정상적인 코멘트로 취급합니다. HTML 주석은 <!--으로 시작하고 -->으로 끝납니다. 따라서 <!--[anything]>이고, 일반적인 주석은입니다. IE가 아닌 사용자 에이전트는 다음에 나타나는 것일 때까지는 아무 것도 무시하지 않습니다. -->. 반면에 <!--[anything]><!-->은 완전한 코멘트이며 IE가 아닌 브라우저는 그 이후의 내용을 처리합니다.

그래서 난 당신이 사용하는 것이 좋습니다 : 일반 HTML 파서 (비 IE)의 관점에서

<!--[if gte IE 9]><!--> 
    <link href="fonts.css" rel="stylesheet" type="text/css"> 
<!--<![endif]--> 

,이 링크 요소를 둘러싸는 두 개의 일반적인 의견이다.

먼저 IE9 +와 다른 브라우저를위한 CSS를 적용하고 IE8 이하를위한 조건부 주석을 적용, 그래서 브라우저 인 경우 fonts.css에서 font-family에 대한 규칙이 IE8fonts.css의 규칙에 의해 무시 될 수
관련 문제