2011-04-24 2 views

답변

1

Tan hack이라고합니다.

  • * html 부분은 IE 6 이하의 브라우저에서 규칙을 숨 깁니다. IE 6은 분명히 html 요소에 부모가 있다고 생각합니다.

  • section 4.1.3 of the CSS2 standard을 위반하여 역 슬래시 (w\idth)가있는 규칙이 Windows 용 IE 5.0 및 5.5에서 잘못 구문 분석되었습니다.

  • 해당 특수 CSS 구문 분석 버그가없는 IE 6 Windows 및 IE 5 Mac에서는 올바르게 맞춤법이 적용된 width 규칙이 무시됩니다. (나중에 CSS 규칙은 이전의 것들보다 우선합니다.)

따라서, 페이지에 표준 모드에서 W3C 박스 모델에서 폭을 트리거하는 문서 타입을 가진 (IE 6 윈도우와 IE 5 맥) 아래에 간다 w\idth이고 기존 (테두리) 상자 모델 (IE 5 Windows의 경우)의 너비는 width이됩니다.

IE 5 (오랫동안 사용되지 않음)를 지원해야하는 경우가 아니면이 해킹은 필요하지 않습니다.

0

초기 버전 (있는 비 호환) 귀하의 예에 따라서, 백 슬래시와 속성을 이해하지 못했다 것 너비를 91px로 설정하십시오. 호환 브라우저는 두 줄 모두를 이해할 수 있지만 CSS의 계단식 특성은 첫 번째 값이 다음 값에 의해 무시되므로 93px가되도록 너비를 설정했습니다.

이 해킹은 IE에서 요소 크기가 다르게 계산되어 레이아웃 악몽을 초래하는 부서진 상자 모델을 극복하는 방법이었습니다.

0

기본적으로 IE의 초기 버전은 백 슬래시를 무시하는 방법을 모르기 때문에 작동합니다. 그들은 단지 "나는이 속성을 인식하지 못한다"고 말하고 전체 라인을 무시합니다. 다른 브라우저는 예를 들어 백 슬래시를 무시하는 등 주어진 코드를 이해하는 방법을 찾는 데 조금 더 똑똑합니다.

이렇게하면 IE가 CSS 라인을 무시하게하는 편리함을 제공합니다 (표준에는 맞지 않지만). 모든 브라우저가 첫 번째 행을 읽고 너비를 91px로 설정합니다. 그런 다음 스타일 시트에 "이봐, IE가 아닌 경우 너비를 93px로 설정해야합니다." 이렇게 똑똑한 브라우저는 다른 브라우저의 모든 레이아웃을 방해하지 않으면 서 우리에게 필요한 것을 IE에 알리는 방법을 제공합니다.