티스토리 뷰
Float
Float 를 사용하여 레이아웃을 짜게되면 영역이 깨지는 현상이 발생합니다. 그 이유는 Height값이 사라지기 때문인데요. 이를 방지하기 위한 방법들이 있습니다.
깨지는 영역에 똑같이 float : left를 사용
이 방법을 사용하면 모든 박스에 float를 사용해야 합니다. 그렇게되면 구조가 복잡해지고 어디에 float를 주어야 할지 알기가 어려워집니다.
깨지는 영역에 Clear : both 를 사용
깨지는 위치는 잡을 수 있지만 구조가 복잡할 때는 어떤 영역이 문제인지 찾기가 어렵습니다.
Float를 사용한 상위 박스에 Overflow : hidden을 사용
2단 메뉴를 사용 시 사용할 수 없습니다.
부모요소에 Display : inline-block을 사용
박스의 성질이 달라져서 이전에 작성한 태그의 결과물이 달라질 수도 있습니다.
Clearfix를 만들어서 class로 사용하기
Clearfix라는 가상의 영역 속성을 만들어서 사용합니다. 클리어픽스의 사용은 다음과 같습니다.
.clearfix {
zoom: 1;
}
.clearfix::before,
.clearfix::after {
content: '';
display: block;
}
.clearfix::after {
clear: both;
}
요소에 직접적으로 클래스를 부여하지는 않지만 상태에 따라서 클래스를 적용한 것처럼 만들 수 있습니다. a:hover 여기서 :hover 이건 가상 선택자입니다. 그런데 .icon::after 여기서 ::after이건 가상 요소입니다. 가상 요소를 쓸 때 :: 이렇게 쓰는 경우도 있고 : 이렇게 쓰는 경우도 있는데 원칙은 ::(콜론 두개) 입니다.
before은 해당요소의 시작 전에 content 속성을 부여합니다.
atfer 는 해당요소가 끝난 다음 content 속성을 부여합니다.
둘의 공통점은 content="" 를 가지고 있어야 합니다. 콘탠츠의 내용에는 문자열, 이미지등 다양한 타입을 포함할 수 있습니다.
float을 적용한 요소의 부모 요소에 빈 컨텐츠를 넣고 float를 초기화(clear: both)를 해줍니다. 이때 내용이 빈 콘텐츠에 block 속성을 주어야 합니다.
'CSS' 카테고리의 다른 글
CSS - Gradient (0) | 2022.02.09 |
---|---|
CSS 스피드런 (0) | 2022.02.04 |
CSS FLEX (0) | 2022.01.27 |
웹 사이트 이미지 표현 방법 (0) | 2022.01.27 |
CSS 색상 (9) | 2022.01.20 |