js 완벽 한 해결 IE6 지원 하지 않 는 position: fixed bug
IE6 position:fixed bug
11111111111111111
상기 코드 는 인터넷 에서 흔히 볼 수 있 습 니 다. html {overflow: hidden} 과 body {height: 100%, overflow: auto} 를 설정 하여 ie6 아래 position: fixed 효 과 를 실현 합 니 다. 그러나 이런 방법 은 결함 이 있 습 니 다. 그것 은 바로 페이지 에 있 는 absolute, relation 을 모두 fixed 의 효과 로 만 들 수 있 습 니 다. 여기 서 저 는 demo 를 하지 않 겠 습 니 다. 의심 이 있 으 면 직접 시험 해 볼 수 있 습 니 다.
그래서 저 는 자 료 를 찾 아 보 았 습 니 다. 인터넷 익스플로러 의 CSS 표현 식 (expression) 을 통 해 ie6 아래 position: fixed 효 과 를 완벽 하 게 실현 할 수 있 음 을 발 견 했 습 니 다. css 코드 는 다음 과 같 습 니 다.
/* IE6 */
.ie6fixedTL{position:fixed;left:0;top:0}
.ie6fixedBR{position:fixed;right:0;bottom:0}
/* IE6 */
* html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft));top:expression(eval(document.documentElement.scrollTop))}
* html .ie6fixedBR{position:absolute;left:expression(eval(document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)-(parseInt(this.currentStyle.marginLeft,10)||0)-(parseInt(this.currentStyle.marginRight,10)||0));top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)))}
위의 코드 는 직접 사용 할 수 있 습 니 다. 만약 에 요소 의 부상 거 리 를 설정 하려 면 각각 두 번 설정 해 야 합 니 다. 예 를 들 어 저 는 특정한 요소 가 상단 10 개의 픽 셀 에서 떨 어 지게 하고 왼쪽 에서 10 개의 픽 셀 까지 떨 어 지게 하려 면 이렇게 써 야 합 니 다.
/* IE6 */
.ie6fixedTL{position:fixed;left:10px;top:10px}
/* IE6 */
* html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft+10));top:expression(eval(document.documentElement.scrollTop+10))}
이렇게 되면 IE6 에서 position: fixed 의 효과 가 해결 되 고 다른 absolute, relation 에 영향 을 주지 않 지만 또 하나의 문 제 는 떠 있 는 요소 가 진동 하 는 것 이다.
IE 는 여러 단계 의 렌 더 링 프로 세 스 가 있 습 니 다.브 라 우 저 크기 를 스크롤 하거나 조정 할 때 모든 내용 을 초기 화하 고 페이지 를 다시 그립 니 다. 이 때 css 표현 식 을 다시 처리 합 니 다.이것 은 추 한 '진동' bug 를 일 으 킬 수 있 습 니 다. 이 곳 에 고정된 위치 에 있 는 요 소 는 당신 의 (페이지 의) 스크롤 을 따라 가 야 하기 때문에 '뛰 기' 를 할 것 입 니 다.이 문 제 를 해결 하 는 방법 은 바로 background - attachment: fixed 를 사용 하여 body 나 html 요소 에 background - image 를 추가 하 는 것 입 니 다.페이지 를 다시 그리 기 전에 CSS 를 먼저 처리 하도록 강제 합 니 다.다시 그리 기 전에 CSS 를 처리 하기 때문에 다시 그리 기 전에 먼저 CSS 표현 식 을 처리 합 니 다.이것 은 당신 으로 하여 금 완벽 하고 매 끄 러 운 고정 위치 요 소 를 실현 하 게 할 것 입 니 다!그리고 나 서 나 는 background - image 가 실제 그림 이 필요 없 이 about: blank 로 설정 하면 된다 는 것 을 알 게 되 었 다.
아래 에 전체 코드 를 동봉 합 니 다.
/* IE6 */
.ie6fixedTL{position:fixed;left:0;top:0}
.ie6fixedBR{position:fixed;right:0;bottom:0}
/* IE6 */
/* IE6 bug */
* html,* html body{background-image:url(about:blank);background-attachment:fixed}
* html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft));top:expression(eval(document.documentElement.scrollTop))}
* html .ie6fixedBR{position:absolute;left:expression(eval(document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)-(parseInt(this.currentStyle.marginLeft,10)||0)-(parseInt(this.currentStyle.marginRight,10)||0));top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)))}
이상 에서 말 한 것 이 바로 본문의 전체 내용 이 니 여러분 들 이 좋아 하 시 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.