FrontEnd/CSS

[CSS] Table tbody에 스크롤 적용하기

범데이 2022. 5. 2. 14:35

1. 개요

 

웹페이지를 개발하다보면 table을 그리면서 스크롤을 구현할 때가 있다. 다음 예제를 보며 따라해보자.

 

See the Pen table-tbody3 by Bumday (@bumdayy) on CodePen.

 

한 테이블이 있고, 행의 수가 5개이다.

가령 이 테이블이 들어갈 공간이 매우 협소하여 150px높이 내에 이 테이블을 그려줘야 한다고 가정해보자.

그렇다면 열머리의 높이는 고정이나, 테이블의 행 수에 따라 tbody는 늘어날 것이기 때문에 높이값을 제한해줘야 한다.

 

 

 

2. 스크롤 적용

 

다음과 같이 tabletbodymax-height값을 지정해 주고, overflow-yscroll로 지정해주어 넘는 높이는 스크롤로 볼수있게 해준다. 

table tbody {
  display: block;
  max-height: 100px;
  overflow-y: scroll;
}

여기서 display: block;을 지정해주는 이유는, table의 기본 display"table"이기 때문에, max-height 설정이 적용되지 않아서 block으로 지정해주는 것이다.

 

 

근데.. 여기까지하면 아래와 같이 tbodydisplay: block이 되면서 컬럼의 너비가 깨지게 된다.

See the Pen table-tbody3 by Bumday (@bumdayy) on CodePen.

 

 

그래서 다음과 같이 tablethead, tbody내에 있는 tr에 다음과 같이 스타일을 적용해 주어야 한다.

table thead, table tbody tr {
  display: table;
  width: 100%;
}

 

 

적용해주고 난 뒤에는 다음과 같이 원하던 대로 tabletbodyscroll이 적용이 잘 적용된 모습을 볼 수 있다.

See the Pen Untitled by Bumday (@bumdayy) on CodePen.

 

반응형