왜 부동을 제거해야 하는지 설명해 주시겠어요?부동을 제거하는 방식, 원리(14)
3591 단어 면접 직통 버스
왜 부동을 제거해야 하는지 설명해 주시겠어요?부동 제거 방법
부동을 제거하는 것은 부동 요소를 사용하는 데 미치는 영향을 제거하기 위해서입니다.부동 요소는 높이가 내려앉고 높이가 내려앉기 때문에 페이지 뒤의 배치가 정상적으로 보이지 않습니다.
1. 부급div 정의height;2. 부급div도 함께 부동한다.3. 일반적으로class를 사용한다. .clearfix::before, .clearfix::after {
content: " ";
display: table;
}
.clearfix::after {
clear: both;
}
.clearfix {
*zoom: 1;
}
4. SASS가 컴파일할 때 부동 요소의 부모div가 위조 클래스를 정의한다:after &::after,&::before{
content: " ";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
해석 원리:
.clearfix::before, .clearfix::after {
content: " ";
display: table;
}
.clearfix::after {
clear: both;
}
.clearfix {
*zoom: 1;
}
&::after,&::before{
content: " ";
visibility: hidden;
display: block;
height: 0;
clear: both;
}
분석을 통해clear:both가 부동을 닫는 것을 제외하고 다른 코드는 모두 콘텐츠가 생성한 내용을 숨기기 위한 것이다. 이것이 바로 다른 버전의 부동이 왜 font-size:0,line-height:0이 있는지 알 수 있다.
zoom:1의 부동 원리 제거?
경위는 대략 다음과 같다.
zoom의 값을 설정한 후에 설정된 원소는 확대되거나 축소되고 고도의 폭은 다시 계산된다. 여기서 zoom의 값을 바꾸면 사실상 다시 과장된다. 이 원리를 활용하면 i 하위 원소가 부동할 때 부원소가 자동으로 확대되지 않는 문제를 해결할 수 있다.
Zoom 속성은 IE 브라우저의 전용 속성으로, 화호와 구버전의 웹키 핵심 브라우저는 모두 이 속성을 지원하지 않습니다.그러나 zoom은 현재 점차적으로 표준화되어 CSS 3.0규범 초안에 나타난다.현재 i가 아닌 것은 이 속성을 지원하지 않기 때문에, 그것들은 또 어떤 속성을 통해 원소의 축소를 실현합니까?css3의 애니메이션 속성 scale을 통해 축소할 수 있습니다.