2011-11-10 9 views
1

을 사용하고 있으며 지금까지 Selectivizr을 사용하기 시작한 지금까지는 문제가 없었습니다. 이해가 안되는 어떤 이유로 IE8에서 Javascript 오류가 발생했습니다.HTML5 상용구 + 조건부 댓글

<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]--> 
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]--> 
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class="no-js" lang="en"> <!--<![endif]--> 

로를 :

몇 가지 테스트 후, 나는 html에 클래스를 추가 브라우저에 따라 (상용구가에서) 사용하는 조건부 브라우저 의견 사용을 중단 할 때 오류가 사라졌다 것으로 나타났습니다 위에서 코드를 제거하고 <html>으로 바꾸면 모든 것이 정상적으로 작동한다고 말했습니다. 나는 완전히 조건부 주석을 제거 할 그나마 때문에

은 (그들이 나 브라우저 별 CSS를 작성하는 데 도움), 나는 같은 일을 생각하지만, 대신 html에 적용하는 나는 <body>을 위해 그것을 할 것입니다 :

<!--[if lt IE 7]> <body class="no-js ie6 oldie" lang="en"> <![endif]--> 
<!--[if IE 7]> <body class="no-js ie7 oldie" lang="en"> <![endif]--> 
<!--[if IE 8]> <body class="no-js ie8 oldie" lang="en"> <![endif]--> 
<!--[if gt IE 8]><!--> <body class="no-js" lang="en"> <!--<![endif]--> 

모든 것이 제대로 작동하는 것처럼 보이지만 초보자부터이 해결 방법이 올바른지 확인하고 싶습니다. 아니면 단점이 있습니까?

더 많은 질문 : 사용자가 Firefox 또는 Chrome으로 사이트를 방문하면 어떤 body이 "사용"될까요? 나는 클래스없이 "body"을 사용할 것이라고 생각하십니까?

내 논리는 다른 모든 브라우저에 body을 "사용"하도록하기 위해 다른 조건부 주석을 쓰겠다고 말했지만, 공식적인 상용구 템플릿에는 그런 주석이 존재하지 않으므로 그럴 필요가 없습니다 ... 왜 안 되겠습니까? ?

답변

3

실제로는 원래 <body> 태그에있었습니다. :)

우리는 두 개의 작은 이유를 이동 :

  • 다중 클래스 이름 버그 IE6 자신의 클래스에 대한 신체의 요소를 사용
  • CMS 년대에.

클래스를 큰 문제없이 <body>으로 이동할 수 있습니다. HTML 요소에 lang=en을 남겨두고 정리할 수도 있습니다. 여기

더 많은 살충제 : https://github.com/h5bp/html5-boilerplate/issues/44

또한
+0

당신이 당신의 IE8의 문제에 대한 selectivizr로 티켓을 제출할 수 있다면, 당신은해야한다. :) –

+0

시간을내어 주셔서 감사합니다! 'body' 태그를 사용합니다 + selectivizr로 티켓을 보내고 문제를 해결할 수있는 경우 변경 사항을 취소합니다. – Andrej

관련 문제