본문 바로가기
2222
Developer Camp[Fastcampus NKLCB] 2021.07/2021.07~ FastCampus 네카라쿠배2기

2일차 : CSS float과 clear

by PARK TAE JOON 2021. 7. 13.

Float

float을 이용해서 아래와 같은 형태를 만들 수 있다.

좌측 이미지 부분이 될 박스는 float: left로 띄운 것이고 이미지 아래의 Lorem 부분은 새로 div로 감싸주고 clear:left 속성을 주었다.

float:left를 지워준다는 뜻으로 clear: left를 줘서 위 이미지 박스부분에서 주었던 float: left를 지워준다.

만약, 위 이미지박스에서 float:right를 주었었다면 clear:right로 지워준다.

✅  만약 다음 요소에 clear를 사용해서 float을 해제해주지 않는다면 어떤일이 벌어질까?

아래 이미지처럼 겹쳐져서 나타날 수 있다.

이 현상을 해결하려면 마지막에 추가한 노란색 박스에다가 clear:left를 줘서 float을 해제해준다.

많이 사용하는 방법은 clear:both; 를 해서 양쪽 다 초기화시킬 수 있다.

 

✅  위에서 다음 형제요소에 clear:both;를 해줬는데 이것의 문제점은 다음 형제를 만들 필요도 없을 때 만들어줘야 한다는 것.

두번째 방법은 예전에 많이 사용했었고 가장 좋은 방법은 아래 코드를 참고하자.

한가지 유의해야 할 점은 반드시 clearfix 부모 밑에 있는 자식들은 다 float 속성을 가진 것들이어야 한다

 

<div class="parent clearfix">
    <div class="child"></div>
    <div class="child"></div>
</div>
.clearfix::after {
    content: "";
    clear: both;
    display: block;
}

.child {
    float: left;
}

 

 

Position

relative와 absolute를 많이 사용하게 될 것이다.

특징은 absolute는 부모 요소를 기준으로 배치한다는 것.

(만약 abolute 상위요소들에 다 relative가 없다면 윈도우. 즉, 브라우저를 기준으로 배치된다.)

 

fixed와 sticky의 차이점은 간단하다.

fixed는 브라우저상에서 어떤 위치에 딱 고정이 되서 아무 영향도 받지 않고 항상 그 자리에 있다.

sticky는 특정 위치에 있다가 스크롤을 내리면 해당 글자가 스크롤에 맞춰서 같이 내려오다가 해당 영역을 벗어나면 사라진다.

                                                            스크롤 내릴 시 ▼

 

✅  여기서 한 가지 자주 사용할 것 같은 flex 가운데 정렬에 대해 알아보자.

가운데에 있는 숫자 1, 2, 3이 수직, 수평 가운데 정렬이 되기 위한 코드다.

<style>
    .box {
        width: 100px;
        height: 100px;
        display: flex;
        justify-content: center;
        align-items: center;
        background: tomato;
        margin: 20px;
    }
</style>
</head>
<body>
    <div class="box">1</div>
    <div class="box">2</div>
    <div class="box">3</div>
</body>

 

댓글