[웹 UI 개발] float 해제

2023. 3. 16. 15:01

float을 해제시키는 대표적인 방법 두가지를 알아본다.

 

<!DOCTYPE html>
<html lang="ko">
    <head>
        <meta charset="UTF-8">
        <title>overflow</title>
        <link rel="stylesheet" href="css/float_overflow_css.css">
    </head>
    <body>
        <div class="box_wrap">
            <div class="box_parent">
                <div class="box box1">box1</div>
                <div class="box box2">box2</div>
            </div>
        </div>
    </body>
</html>
.box_wrap {
    width: 400px;
    margin: 0 auto;
}

.box_parent {
    border: 3px dotted blue;
    padding: 10px;
}

.box {
    width: 100px;
    height: 100px;
    color: #fff;
    text-align: center;
}

.box1 {
    float: left;
    background-color: green;
}

.box2 {
    float: right;
    background-color: pink;
}

 

float된 박스

처음으로 알아볼 방법은 overflow를 활용한 방법이다.

float된 요소의 부모 속성에 overflow(visible 제외)를 부여하면 되는 간단한 방법이다.

 

.box_wrap {
    width: 400px;
    margin: 0 auto;
}

.box_parent {
    overflow: hidden;
    border: 3px dotted blue;
    padding: 10px;
}

.box {
    width: 100px;
    height: 100px;
    color: #fff;
    text-align: center;
}

.box1 {
    float: left;
    background-color: green;
}

.box2 {
    float: right;
    background-color: pink;
}

 

overflow: hidden 적용

하지만 이 방법에는 문제가 있는데, 부모 요소 안에서 팝업되는 자식 콘텐츠가 있을 때

그 콘텐츠가 부모 요소 크기를 벗어나게 되면 벗어난 만큼 잘려 보이는 것이다.

 

그렇기 때문에 이 방법을 사용하기 전에 부모 요소 안에 팝업되는 콘텐츠가 있는지 확인한 다음 사용해야 한다.

 

 

두번째 방법으로는 가상요소와 clear 속성을 사용한 해제 방법이다.

.box_wrap {
    width: 400px;
    margin: 0 auto;
}

.box_parent {
    overflow: hidden;
    border: 3px dotted blue;
    padding: 10px;
}

.box {
    width: 100px;
    height: 100px;
    color: #fff;
    text-align: center;
}

.box1 {
    float: left;
    background-color: green;
}

.box2 {
    float: right;
    background-color: pink;
}

.box_parent::after {
    display: block;
    clear: both;
    content: '';
}

 

가상요소에 clear를 적용

float된 요소의 부모에 가상요소를 추가하여 그 가상요소가 clear 속성을 가지게끔 하는 방법이다.

clear 속성은 요소의 display가 block일 때만 동작하므로 'display: block' 속성을 꼭 넣어주고

가상요소 after는 content 속성이 반드시 필요하므로 content 속성으로 빈 내용을 넣어준다.

 

overflow를 활용한 방법과 다르게 이 방법은 부모 요소 내부에서의 팝업도 대응된다.


부스트코스의 강의 내용을 정리한 포스트입니다.

https://www.boostcourse.org/web344

 

웹 UI 개발

부스트코스 무료 강의

www.boostcourse.org

'공부 > 웹 UI 개발' 카테고리의 다른 글

[웹 UI 개발] 레이아웃 -1 / 1단 레이아웃  (0) 2023.03.17
[웹 UI 개발] 레이아웃 - 0  (0) 2023.03.17
[웹 UI 개발] IR 기법  (0) 2023.03.16
[웹 UI 개발] CSS 리셋  (0) 2023.03.16
웹 접근성 진단 도구  (0) 2023.03.15

BELATED ARTICLES

more