html을 작성하다보면 자주 사용 하는 것 중에 하나가 'float'속성입니다.
그런데 'float'속성의 특징은 다른 레이아웃에 영향을 주지 않는 것이죠.
테스트용 html을 다음과 같이 작성합니다.
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style>
        .Parent
        {
            background-color:aqua;
        }
        .Child1
        {
            background-color:yellow;
            width:300px;
            height:300px;
        }
        
        .Child2
        {
            background-color:red;
            width:200px;
            height:200px;
        }
    </style>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <div style="background-color:gray">
                aaaaaaaaaaaaaaa
            </div>
        </div>
        <div class="Parent">
            <div class="Child1">
                bbbbbbbbbbbbbbb
            </div>
            <div class="Child2">
                ccccccccccccccc
            </div>
        </div>
    </form>
</body>
</html>
이 코드를 실행하면 다음과 같이 나옵니다.
이제 '.Child1'과 '.Child2'에 'float'을 추가해 봅시다.
.Child1
{
    background-color:yellow;
    width:300px;
    height:300px;
    float:left;
}
        
.Child2
{
    background-color:red;
    width:200px;
    height:200px;
    float:left;
}
이제 코드를 실행하면 다음과 같이 나옵니다.
'float'속성을 추가하자 부모의 색인 아쿠아색이 없어진 것을 알 수 있습니다.
이것은 'float'속성이 기본적으로 다른 레이아웃에 영향을 주지 않기 때문에 그렇습니다.
기존 코드의 '<div class="Parent">'의 닫는 태그 밑에 'div'를 추가한후 '.Parent'에 '마진-바텀(margin-bottom)'을 추가해 보면 어떤 문제인지 확실하게 보이죠.
이러다 보니 부모 'div'를 기준으로 무언가 작업을 하게 되면 자식 'div'의 크기가 반영되지 않아 레이아웃이 이상하게 됩니다.
이 문제를 해결하기 위한 간단한 방법은 부모 'div'에 'display:inline-block'를 추가하는 것입니다.
.Parent
{
    background-color:aqua;
    display:inline-block;
}
이렇게 추가만 하면 자식의 크기가 부모한테 반영됩니다.
다시 아쿠아(하늘)색이 보이이기 시작합니다!!
그런데 'display:inline-block'를 추가하면 레이아웃에 문제 생기는 곳이 있던 거 같은데....
잘 기억이 나지 않습니다 ㅋㅋㅋㅋㅋㅋㅋ
아마도 다른 태그랑 섞여서 그랬던 거 같기도 해서 잘 모르겠네요.
어찌 됐건 'float'을 사용할 때는 별일 없으면 'display:inline-block'를 미리 추가해두는게 나중을 위해서 좋긴 합니다.