4
나는 전에 결코 본 적이없고 내 머리를 긁적 거리는 IE 조건부 주석을 사용했다. HTML은 다음과 같이 시작합니다.IE에서 조건부 주석의 특유한 사용
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--[if IE 7 ]> <html class="no-js ie7" lang="en"> <![endif]-->
<!--[if IE 8 ]> <html class="no-js ie8" lang="en"> <![endif]-->
...
</html>
나는이 문서를 어떻게 다루는 지 궁금해. 이 문서는 두 개의 html 태그로 끝나고 첫 번째 태그는 닫히지 않은 것으로 보입니다. 분명히 그것은 파싱되지 않습니다. 하지만 그렇습니다. 조사를 결정했습니다. IE9의 IE7 브라우저 모드에서
는 html 태그 포함 된 조건부 주석의 HTML 태그의 속성은 기존의 HTML 태그와 합병되는 것으로 보인다 최대<html class="no-js ie7" lang="en" xmlns="http://www.w3.org/1999/xhtml">
로 끝납니다. 추가로 조작하면 조건부 html 태그의 속성이 기존 태그에 추가되지 않고 첫 번째 html 태그에 추가 된 것처럼 보입니다. 그래서 예를 들면 :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html class="not so fast" xmlns="http://www.w3.org/1999/xhtml">
<!--[if IE 7 ]> <html class="no-js ie7" lang="en"> <![endif]-->
결과 :
여기<html class="not so fast" lang="en" xmlns="http://www.w3.org/1999/xhtml" sizcache="0" sizset="0">
의 조건 무조건 HTML 태그가 이미 class 속성을 정의하기 때문에 HTML 태그의 클래스 속성이 아무런 영향을 미치지 않았다 포함되어 있습니다. sizcache 및 sizset 속성이 나오는 곳은 완전한 수수께끼입니다.
어쨌든,이 관찰 된 동작은 내가 기대했던 것입니다. 조건부 주석에 대한 Microsoft 문서에는 이러한 조건부 주석 사용에 대한 언급이 없으며 인터넷 검색 결과가 건조 해졌습니다. 이 페이지에는 나중에 IE 7과 8이 잘못 렌더링되는 상황에서 표준 스타일을 대체하기 위해 ie7 및 ie8 클래스를 참조하는 선택기가있는 스타일 시트가 포함되어 있습니다.
누군가이 조건부 주석을 사용한 것을 보았거나이 블렌딩 동작이 어디서나 문서화되어 있는지 알고 있다면 궁금합니다.
추가 조사를 통해 제 질문은 조건부 의견과는 아무런 관련이 없음이 분명해졌습니다. 오히려