blog
CSS table-layout: fixed의 특징
Front-end / CSS#CSS#table#table-layout
table-layout의 기본값 auto는 모든 셀의 내용을 확인한 뒤 열 너비를 정한다. 반면 fixed는 내용을 보지 않고 미리 정해진 너비로 열을 나눈다.
table {
table-layout: fixed;
width: 100%; /* fixed가 동작하려면 테이블 너비가 지정되어 있어야 함 */
}
특징
- 열 너비는
<col>또는 첫 번째 행의 셀 너비로 결정된다. 너비를 지정하지 않은 열은 남은 공간을 똑같이 나눠 갖는다. 이후 행의 내용이 길어도 열 너비는 바뀌지 않는다. - 렌더링이 빠르다. 첫 행만 보고 레이아웃을 확정할 수 있어, 행이 많은 테이블에서 전체 내용을 다 읽기 전에 그리기 시작할 수 있다.
- 넘치는 내용은 직접 처리해야 한다. 셀이 내용에 맞춰 늘어나지 않으므로 긴 텍스트는 셀 밖으로 넘친다.
td {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap; /* 한 줄 말줄임 */
}
/* 또는 줄바꿈 */
td {
overflow-wrap: anywhere;
}
언제 쓰나
- 열 너비가 데이터에 따라 들쭉날쭉 바뀌면 안 되는 표(관리자 목록, 정렬·페이지 이동이 잦은 표)
- 행이 많아 레이아웃 계산 비용을 줄이고 싶을 때
- 말줄임(
text-overflow: ellipsis)을 셀에 적용하고 싶을 때.auto레이아웃에서는 셀이 내용만큼 늘어나 말줄임이 잘 동작하지 않는다.