아무도 내게 왜이 IE의 해킹 폭 속성의 철자가 잘못 설명 할 수 있습니까?왜이 IE CSS 해킹의 철자가 틀립니까?
* html #container a.slided {
width:91px;
w\idth:93px;
}
BTW, 여기에 내가 그 코드를 본 적이 어디에서 링크는 다음과 같습니다 IE의 http://www.webreference.com/programming/css_gallery/3.html
아무도 내게 왜이 IE의 해킹 폭 속성의 철자가 잘못 설명 할 수 있습니까?왜이 IE CSS 해킹의 철자가 틀립니까?
* html #container a.slided {
width:91px;
w\idth:93px;
}
BTW, 여기에 내가 그 코드를 본 적이 어디에서 링크는 다음과 같습니다 IE의 http://www.webreference.com/programming/css_gallery/3.html
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 (오랫동안 사용되지 않음)를 지원해야하는 경우가 아니면이 해킹은 필요하지 않습니다.
초기 버전 (있는 비 호환) 귀하의 예에 따라서, 백 슬래시와 속성을 이해하지 못했다 것 너비를 91px로 설정하십시오. 호환 브라우저는 두 줄 모두를 이해할 수 있지만 CSS의 계단식 특성은 첫 번째 값이 다음 값에 의해 무시되므로 93px가되도록 너비를 설정했습니다.
이 해킹은 IE에서 요소 크기가 다르게 계산되어 레이아웃 악몽을 초래하는 부서진 상자 모델을 극복하는 방법이었습니다.
기본적으로 IE의 초기 버전은 백 슬래시를 무시하는 방법을 모르기 때문에 작동합니다. 그들은 단지 "나는이 속성을 인식하지 못한다"고 말하고 전체 라인을 무시합니다. 다른 브라우저는 예를 들어 백 슬래시를 무시하는 등 주어진 코드를 이해하는 방법을 찾는 데 조금 더 똑똑합니다.
이렇게하면 IE가 CSS 라인을 무시하게하는 편리함을 제공합니다 (표준에는 맞지 않지만). 모든 브라우저가 첫 번째 행을 읽고 너비를 91px로 설정합니다. 그런 다음 스타일 시트에 "이봐, IE가 아닌 경우 너비를 93px로 설정해야합니다." 이렇게 똑똑한 브라우저는 다른 브라우저의 모든 레이아웃을 방해하지 않으면 서 우리에게 필요한 것을 IE에 알리는 방법을 제공합니다.