정렬(정열x)의 요정 float

가운데 정렬이든, 양쪽 정렬이든 무언가 나란히 놓아야 했을 때는 무조건 flex를 사용했다. 처음 이해하기는 어려웠지만 한 번 습득하고 나면 다른 세부적인 조정 없이 세로든, 가로든 정렬할 수 있었으니까.

정렬을 손쉽게 해주는 flex. 하지만 그런 flex에도 단점이 있다. flex를 사용할 경우 부모 요소를 기준으로 하여 자식 요소들을 정렬하므로, 정렬할 요소들을 감쌀 “부모 요소”가 꼭 필요하다는 것. 물론 나쁘지만은 않지만, flex를 사용하기 위한 의미없는 div가 늘어나며 마크업이 길어지는 것을 경계해야 한다.

오늘은 float 속성에 대해서 배웠는데, flex의 단점을 커버해주면서도 세밀한 조정 없이 요소들을 정렬할 수 있는 훌륭한 대체재였다.

⛵Float

원래 float 속성은 아래 사진처럼 그림을 따라 흐르는 텍스트 레이아웃을 웹에서 구현하기 위해 탄생한 속성이다. 신문에서도 자주 보이고, 문서편집기 한글의 '어울림'이라는 속성으로 제법 익숙한 레이아웃이다.

HTML에서, 부모 요소 아래에서 이미지와 텍스트를 함께 사용하면 기본적으로 아래의 구조를 가지게 된다.

<img>태그를 이용해 이미지를 삽입하면 인라인 속성을 갖기 때문에, 텍스트와 같은 base line을 공유하고 있는 것을 알 수 있다. 덕분에 사진의 높이만큼 의도치 않은 여백이 커다랗게 생기고 만다.

이 때, float: left; 속성을 부여하면 아래와 같이 된다.