이번에는 2018년 최신 프론트엔드 면접 질문을 가져왔습니다. 면접은 프론트엔드 업무에 있어서 빼놓을 수 없는 부분이라는 것을 알고 있습니다. 자주 묻는 프론트엔드 면접 질문을 분류하고 요약한 목적은 여러분의 극복을 돕기 위한 것입니다. 프론트 엔드 인터뷰의 주요 어려움. 살펴보겠습니다.
[관련 추천 : 프론트엔드 면접 질문 (2020)]
1. Z-index와 오버레이 컨텍스트가 어떻게 형성되는지 설명하세요.
먼저 CSS에서 오버레이 컨텍스트가 형성되는 이유를 살펴보겠습니다.
1. 음수 여백 여백이 음수 값인 경우 요소는 참조선을 따라 바깥쪽으로 오프셋됩니다. margin-left/margin-top의 기준선은 왼쪽 요소/위 요소(형제 요소가 없는 경우 상위 요소의 왼쪽 내부/위 내부 요소), margin-right 및 margin-bottom 선은 요소 자체의 테두리 오른쪽/테두리 아래쪽입니다. 일반적으로 레이아웃에는 음수 여백을 사용할 수 있지만 제대로 계산되지 않으면 요소가 겹칠 수 있습니다. 스택 순서는 문서의 요소 위치에 따라 결정되며 요소는 나중에 맨 위에 표시됩니다.
2. 위치의 상대/절대/고정 위치 지정 요소에 대해 위치 값을 상대/절대/고정으로 설정하면 요소의 오프셋이 겹칠 수 있으며 Z-index 속성이 활성화됩니다. z-index 값은 디스플레이 화면에 수직인 방향(Z축)으로 배치된 요소의 스택 순서를 제어할 수 있습니다. 큰 값을 가진 요소가 겹쳐지면 작은 값을 가진 요소 위에 오게 됩니다.
z-index 속성 z-index는 위치 속성 값이 상대, 절대 또는 고정인 요소에만 유효할 수 있습니다.
기본 원리: Z-인덱스 값은 디스플레이 화면에 수직인 방향(Z축)으로 배치된 요소의 스택 순서를 제어할 수 있습니다. 값이 큰 요소가 겹칠 경우 값이 작은 요소 위에 오게 됩니다. .
상대성 사용: Z-색인 값은 동일한 상위 요소에 있는 형제 하위 요소의 스택 순서만 결정합니다. 상위 요소의 z-index 값(있는 경우)은 하위 요소의 스택 순서("Pin Dad" 스택의 CSS 버전)를 정의합니다.
위로 추적할 때 z-index 값을 포함하는 상위 요소를 찾을 수 없으면 자유 z-index 요소로 간주할 수 있으며 상위 요소의 형제 위치 요소나 다른 자유 위치 요소와 비교할 수 있습니다. -index의 스택 순서를 결정합니다. 형제 요소의 z-index 값이 동일한 경우 문서 내 요소의 위치에 따라 쌓이는 순서가 결정되며 나중에 나타나는 요소가 맨 위에 표시됩니다. 따라서 큰 z-index 값을 가진 요소가 더 작은 값을 가진 요소에 의해 가려지는 경우 먼저 해당 요소 사이의 dom 노드 간의 관계를 확인하십시오. 대부분의 경우 해당 부모 노드에 활성화 및 z가 있기 때문입니다. -색인 집합. 값의 위치는 요소의 위치를 지정합니다.
2. BFC(Block Formatting Context)와 작동 방식을 설명하세요.
BFC(Block Formatting Context)는 말 그대로 "블록 수준 서식 범위"로 번역됩니다.
3. 다양한 플로트 제거 기술을 나열하고 적용 가능한 사용 시나리오를 지적하세요.
먼저 왜 float를 제거해야 하는지 설명하겠습니다. 컨테이너의 모든 요소가 플로팅되면 플로팅이 요소를 일반 문서 흐름에서 분리하므로 외부 컨테이너에 대해 열어두는 콘텐츠가 없으며 배경 설정을 표시할 수 없으며 여백 설정을 표시할 수 없습니다. . 부동 소수점을 지우는 방법:
1. 새 요소를 추가하고 명확하게 적용합니다. 둘 다
例如: <div class="outer"> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> <div class="clear"></div> </div> .clear{clear:both; height: 0; line-height: 0; font-size: 0}
장점: 간단하고 코드가 적으며 브라우저 지원이 우수하며 이상한 문제가 발생하지 않는다는 단점이 있습니다. , 그러나 이는 수레를 제거하는 데 더 일반적으로 사용되는 방법입니다.
2. 상위 div는 오버플로를 정의합니다: auto 또는 hide 3d858467c007003fbb089751739b6be5
//这里添加了一个class <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> </div> .over-flow{ overflow: auto; zoom: 1; //zoom: 1; 是在处理兼容性问题 }
원칙: 너비 또는 확대/축소: 1을 정의해야 하며 높이는 정의할 수 없습니다. 플로트 지우기 한 가지 주목해야 할 점은 오버플로 속성에 숨김, 자동, 표시라는 세 가지 속성 값이 있다는 것입니다. 숨겨진 값과 자동 값을 사용하여 부동 소수점을 지울 수 있지만 표시되는 값을 사용하지 않는 것을 기억하세요. 이 값을 사용하면 부동 소수점 지우기 효과를 얻을 수 없습니다.
장점: 간단하고 코드가 적으며 브라우저 지원이 좋음 단점: 자동을 사용할 때 내부 너비와 높이가 상위 div를 초과하면 스크롤 막대가 나타나고, 숨김을 사용할 때는 숨겨집니다
3. 원리 after 메소드: after 및 :before를 사용하여 요소 내부에 두 개의 요소 블록 을 삽입하여 부동 소수점을 지우는 효과를 얻습니다. 구현 원리는 Clear:both 메소드와 유사합니다. 단,:clear는 HTML에 div.clear 태그를 삽입하는 반면, 이 메소드는 의사 클래스clear:after를 사용하여 요소 내부에 div.clear와 유사한 효과를 추가합니다.
구체적인 사용법을 살펴보겠습니다.
<div class="outer"> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> </div> .outer {zoom:1;} /==for IE6/7 Maxthon2==/ .outer :after {clear:both;content:’.’;display:block;width: 0;height: 0;visibility:hidden;}
여기서clear:both;는 모든 부동 소수점을 지우는 것을 의미합니다. content: '.';는 FF/chrome/opera/IE8에 필수적이며 content() 값을 사용하거나 비어 있을 수 있습니다. visible:hidden의 기능은 브라우저가 렌더링할 수는 있지만 표시하지 않도록 허용하여 부동 항목을 지울 수 있도록 하는 것입니다. 따라서 일반적으로 pseudo-class 방법을 사용하는 것이 좋습니다.
이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
관련 읽기:
위 내용은 2018년 최신 프론트엔드 면접 질문 11의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!