overflow 옵션 완전정복

1. overflow 기능

 

overflow는 부모요소와 자식요소 사이 관계에서 부모요소가 자식요소를 어느정도 보이게 만들지 결정하는 기능

 

 

기본값은 overflow: visible;인데 위와 같이 자식요소(좌,우측상단 파란색박스)가 부모요소(상단 검정색 박스)를 넘어가더라도 내용을 전부 보여준다

 

overflow: hidden;을 주면 아래와 같이 자식요소에서 넘어가는 부분을 숨겨준다

 

 

overflow: auto;와 overflow: scroll;은 hidden에서 숨겨진 부분을 보고싶을때 스크롤 기능을 제공한다

 

overflow: auto;는 자식요소가 넘어가지 않는다면 visible처럼 전부 보여주는데, 자식요소가 넘어간다면 hidden처럼 숨기고 스크롤바를 제공한다

 

overflow: scroll;은 자식요소가 넘어가는 부분에 대해서 scroll을 제공하는데, 아래쪽 가로스크롤과 오른쪽 위아래 스크롤을 모두 제공

 

2. 이미지 float 버그

 

원래 float를 안시키면 다음과 같이 정상적으로 부모요소가 굳이 width와 height를 주지 않아도 자식요소를 잘 잡는데

 

 

 

		.title {
      border: 2px solid blue;
      float: left;
      
    
    }

    .detail {
      border: 2px dashed skyblue ;
      float: right;
    }
  </style>
</head>
<body>
  <div class="clearfix">
    <div class="title">HPHK</div>
    <div class="detail">해피해킹을 소개합니다!</div>
  </div>

 

부모요소에 width와 height값을 주지 않고

자식요소의 이미지를 float시키면

 

부모요소가 자식요소의 height를 잃어버리면서, 부모요소의 height가 0으로 되어버리는 버그가 있다.

 

이러한 버그를 해결하는 방법을 clearfix hack이라고 부른다

 

 

2-1) width와 height값을 적절하게 제공

 

 

<style>

    .clearfix {

      border: 2px solid black;
      width:1900px;
      height:25px; 
    
      
    }

 

width와 height값을 적절하게 제공하면 부모요소가 자식요소를 전부 감싸면서 해결가능

 

 

근데 얘는 창 크기를 줄이면 우측이 안보이는 문제가 있다

 

 

 

2-2) overflow: auto;나 overflow: hidden;

 

overflow: auto;나 overflow: hidden; 옵션을 주면 부모요소가 자식요소의 height를 찾기 시작하면서 정상적으로 부모요소가 자신의 height를 찾으면서 모든 자식요소를 적절하게 감싸게 된다..

 

  <style>
	  /* 이곳에 코드를 작성합니다. */

    .clearfix {

      border: 2px solid black;
      overflow: hidden;
    
      
    }

 

 

얘는 창이 줄어도 제대로 보여준다

 

 

 

https://developer.mozilla.org/ko/docs/Web/CSS/overflow

 

overflow - CSS: Cascading Style Sheets | MDN

overflow CSS 단축 속성은 요소의 콘텐츠가 너무 커서 요소의 블록 서식 맥락에 맞출 수 없을 때의 처리법을 지정합니다. overflow-x (en-US), overflow-y (en-US)의 값을 설정합니다.

developer.mozilla.org

 

 

'프로그래밍 > 비전공자를 위한 Web' 카테고리의 다른 글

inline 요소와 block 요소 완전 정복  (0) 2022.08.07
css box model 정복하기  (0) 2022.08.07
css position 정복하기  (0) 2022.08.07
TAGS.

Comments