데이터 양이 증가하면 스크롤 길이가 길어지면서 데이터 구별이 어려워지는데 엑셀에서는 틀 고정을 이용해서 데이터를 쉽게 파악할 수 있다. 그래서 이번에는 CSS의 position: sticky를 사용해 좌우 스크롤을 해도 테이블의 첫 번째 열은 고정되어 있는 테이블을 만들어 보려 한다.
1. position: sticky ?
- 부모 요소 안에서 위치값을 고정시켜준다.
- top, bottom, left, right 중에 하나는 필수적으로 꼭 설정해야 한다.
- IE11이하 버전은 지원하지 않는다.
2. HTML, CSS 소스
[HTML]
<div class="wrap">
<table>
<thead>
<tr>
<th>Header 1</th>
<th>Header 2</th>
<th>Header 3</th>
<th>Header 4</th>
<th>Header 5</th>
<th>Header 6</th>
<th>Header 7</th>
<th>Header 8</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cell01</td>
<td>Cell02</td>
<td>Cell03</td>
<td>Cell04</td>
<td>Cell05</td>
<td>Cell06</td>
<td>Cell07</td>
<td>Cell08</td>
</tr>
<tr>
<td>Cell01</td>
<td>Cell02</td>
<td>Cell03</td>
<td>Cell04</td>
<td>Cell05</td>
<td>Cell06</td>
<td>Cell07</td>
<td>Cell08</td>
</tr>
<tr>
<td>Cell01</td>
<td>Cell02</td>
<td>Cell03</td>
<td>Cell04</td>
<td>Cell05</td>
<td>Cell06</td>
<td>Cell07</td>
<td>Cell08</td>
</tr>
<tr>
<td>Cell01</td>
<td>Cell02</td>
<td>Cell03</td>
<td>Cell04</td>
<td>Cell05</td>
<td>Cell06</td>
<td>Cell07</td>
<td>Cell08</td>
</tr>
<tr>
<td>Cell01</td>
<td>Cell02</td>
<td>Cell03</td>
<td>Cell04</td>
<td>Cell05</td>
<td>Cell06</td>
<td>Cell07</td>
<td>Cell08</td>
</tr>
<tr>
<td>Cell01</td>
<td>Cell02</td>
<td>Cell03</td>
<td>Cell04</td>
<td>Cell05</td>
<td>Cell06</td>
<td>Cell07</td>
<td>Cell08</td>
</tr>
</tbody>
</table>
</div>
[CSS]
<style type="text/css">
*{
box-sizing: border-box
}
.wrap{
width: 600px;
margin: 0 auto;
overflow-x: scroll;
}
table{
border-collapse: separate;
border-spacing: 0;
width: 800px;
}
table th{
background-color: #EB5353;
height: 50px;
color: #fff;
border-right: 1px solid #f6f6f6;
border-bottom: 1px solid #f6f6f6;
}
table th:last-child{
border-right: 0;
}
/*sticky 적용*/
table th:first-child{
position: -webkit-sticky;
position: sticky;
left: 0;
}
table td{
background-color: #FFDEB4;
border-right: 1px solid #f6f6f6;
border-bottom: 1px solid #f6f6f6;
padding: 5px;
text-align: center;
}
/*sticky 적용*/
table td:first-child{
background-color: #FFC54D;
position: -webkit-sticky;
position: sticky;
left: 0;
}
table td:last-child{
border-right: 0;
}
</style>
3. 결과 화면
See the Pen Untitled by H__jung (@honghongbyul) on CodePen.
'개발' 카테고리의 다른 글
제이쿼리로 스르륵 열리는 아코디언 메뉴 만들기 (자주하는 질문, FAQ) (0) | 2022.08.25 |
---|---|
제이쿼리로 탭메뉴, 탭버튼 만들기 (0) | 2022.08.24 |
크롬에서 이미지 흐리게 나올 때 선명하게 만드는 방법 (0) | 2022.08.22 |
input 체크박스 CSS 변경하기 (0) | 2022.08.19 |
z-index 값을 올려도 적용이 안 되는 이유 (0) | 2022.08.19 |
댓글