float으로 이미지와 텍스트 영역 조절하기 (뉴스기사 UI)

이창호·2022년 5월 25일
0

영역 안에 이미지를 감싸는 텍스트가 있는 UI
영역 안에 이미지를 감싸지 않고 본인의 영역을 차지하는 텍스트가 있는 UI

두가지를 쉽게 대응할 수 있는 방식을 물어봐서 샘플을 만들어 보았다.

  • HTML
<div class="news">
    <div class="thumbBox">
        <img src="https://picsum.photos/100/50?random=1" alt="" class="thumb">
    </div>
    <p class="text">
        Lorem ipsum dolor sit amet consectetur adipisicing elit.
        Quod at veniam, minima, libero exercitationem cupiditate placeat temporibus numquam,
        ipsam id autem dignissimos illum quidem quos enim non eos incidunt rerum?
    </p>
</div>
  • CSS
.thumbBox {
   float:left;
   height:60px;
   border:1px solid gray;
}
.thumbBox:before {
   content:"";
   display:inline-block;
   width:0;
   height:100%;
   vertical-align:middle; // 이미지 세로 사이즈에 상관없이 중앙정렬하기 위해 높이값 100%, vertical을 middle로 고정
}
.thumbBox img {
   vertical-align:middle;
}

float과 overflow를 사용하면 이미지를 감싸고 있는, 감싸지 않는 UI를 구현 할 수 있다.

  • .text에 overflow: hidden을 사용하지 않았을 때
  • .text에 overflow: hidden을 사용했을 때

overflow:hidden 을 사용하지 않았을 때는 float이 부유하는 성질이 있어 텍스트 영역이 이미지 아래로 영역이 잡히지만
글자 자체는 이미지랑 겹칠 수 없기 때문에 글자가 들어갈 수 있는 영역을 차지하는 듯 하고,

overflow:hidden 을 사용했을 때는 overflow:hidden 속성 자체가 본인의 영역을 넘치는 걸 자르는 역할을 하기에
본인 영역을 자르기 위해 인지하면서 이미지와 영역 자체가 분리 되는 것 같다.

명확하게 탁! 꼬집어서 얘기하긴 힘들지만 비유하자면 위와 같고, 해당 이슈는 특정 환경에 따라 float된 요소만 보여주고 숨긴다고 했을 때
float과 함께 있는 요소는 굳이 제어를 하지 않아도, 해당 영역을 항상 알아서 차지 할 것이기 때문에
비슷한 UI를 만들 때 유용하게 잘 사용하고 있다

profile
조금씩 나아지기

0개의 댓글