CSS - 테이블
웹 개발자 지망생 여러분 환영합니다! 오늘 우리는 CSS 테이블의 세계로 뛰어들어 보겠습니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 이 여정을 안내해 드리게 되어 기쁩니다. 테이블은 오래된 방식처럼 보일 수 있지만, 믿으세요, 현대 웹 디자인에서 여전히 매우 유용합니다. 그럼 손을 비벼서 시작해 보겠습니다!
CSS 테이블 - 테두리 모두 통합
자신의 정원에 울타리를 세우고 싶을 때, 울타리 기둥이 서로 닿기를 원하지 않나요? 그게 exactamente border-collapse
가 테이블 테두리에 하는 일입니다. 셀 테두리가 분리되는지 통합되는지 결정합니다.
table {
border-collapse: collapse;
}
이 코드는 여러분의 테이블 테두리가 서로 닿게 만들어 깨끗하고 통합된 모습을 만듭니다. 테이블에 멋진 머리칼을 자르는 것과 같습니다!
CSS 테이블 - 테두리 간격
셀 사이에 공간을 두고 싶다면 border-spacing
이 유용합니다. 테이블 셀의 사회적 거리두기라고 할 수 있습니다!
table {
border-spacing: 5px;
}
이렇게 하면 셀 사이에 5픽셀의 간격을 추가합니다. 수평과 수직 간격을 다르게 설정할 수도 있습니다:
table {
border-spacing: 5px 10px;
}
여기서는 수평 간격이 5픽셀, 수직 간격이 10픽셀입니다. 테이블 셀에 개인 공간을 주는 것과 같습니다!
CSS 테이블 - 제목 위치
테이블에는 제목이 있을 수 있으며, caption-side
를 사용하여 제목의 위치를 제어할 수 있습니다. 책 표지에 제목을 상단에 두는지 하단에 두는지 결정하는 것과 같습니다.
caption {
caption-side: bottom;
}
이렇게 하면 테이블 제목을 하단에 배치합니다. 상단에 배치하고 싶다면 top
을 사용할 수 있습니다.
CSS 테이블 - 공백 셀
테이블의 공백 셀에 대해 궁금했나요? empty-cells
속성을 사용하여 보이거나 숨길 수 있습니다.
table {
empty-cells: hide;
}
이렇게 하면 공백 셀이 보이지 않게 됩니다. 테이블 셀과 hide-and-seek을 하는 것과 같습니다!
CSS 테이블 - 테이블 레이아웃
table-layout
속성은 테이블의 셀, 행, 열이 어떻게 배치되는지 결정합니다. 엄격한 좌석배치와 자유롭게 자리 잡는 식사 파티 사이의 선택과 같습니다.
table {
table-layout: fixed;
}
이렇게 하면 고정된 테이블 레이아웃을 설정하여 대형 테이블의 렌더링 속도를 향상시킬 수 있습니다.
CSS 테이블 - 고정 레이아웃
고정 레이아웃을 사용하면 테이블의 너비는 첫 번째 행이나 지정된 너비에 의해 결정됩니다. 결혼식 식사에서 할당된 좌석과 같습니다.
table {
table-layout: fixed;
width: 100%;
}
th, td {
width: 25%;
}
이렇게 하면 네 개의 동일한 너비를 가진 테이블을 생성합니다.
CSS 테이블 - 자동 레이아웃
자동 레이아웃은 열 너비를 콘텐츠에 따라 조정합니다. 비공식적인 식사 파티에서 손님들이 자신의 자리를 선택하는 것과 같습니다.
table {
table-layout: auto;
width: 100%;
}
이 경우 브라우저가 열 너비를 콘텐츠에 따라 조정합니다.
CSS 테이블 - 높이와 너비
테이블과 그 셀의 크기를 height
와 width
속성을 사용하여 제어할 수 있습니다. 식사 테이블이 얼마나 크게 만들어야 하는지 결정하는 것과 같습니다.
table {
width: 100%;
}
td {
height: 50px;
}
이렇게 하면 테이블 너비를 컨테이너의 100%로 설정하고 각 셀 높이를 50픽셀로 설정합니다.
CSS 테이블 - 텍스트 정렬
테이블 셀 내 텍스트 정렬은 가독성에 매우 중요합니다. 식사 테이블에 음식을 어떻게 배치하는지와 같은 Presentation이 중요합니다!
td {
text-align: center;
vertical-align: middle;
}
이렇게 하면 각 셀 내 텍스트를 수평과 수직으로 중앙에 정렬합니다.
CSS 테이블 - 테두리
테두리는 테이블을 시각적으로 더 매력적이고 가독성을 높이는 데 도움이 됩니다. 정보를 정리하기 위해 종이에 선을 그리는 것과 같습니다.
table, th, td {
border: 1px solid black;
}
이렇게 하면 테이블과 모든 셀에 1픽셀 두께의 실선 테두리를 추가합니다.
CSS 테이블 - 배경 색상
배경 색상을 추가하면 테이블을 시각적으로 더 매력적이고 테이블의 다른 부분을 구분하는 데 도움이 됩니다. 집의 방을 다른 색상으로 칠하는 것과 같습니다.
table {
background-color: #f2f2f2;
}
th {
background-color: #4CAF50;
color: white;
}
이렇게 하면 테이블에 연회색 배경을 설정하고 헤더 셀에 녹색 배경과 白色 텍스트를 설정합니다.
CSS 테이블 - 폰트 스타일
테이블 내 텍스트 스타일을 변경하면 가독성을 크게 향상시킬 수 있습니다. 책에 적절한 폰트를 선택하는 것과 같은 차이를 만들 수 있습니다.
table {
font-family: Arial, sans-serif;
}
th {
font-weight: bold;
}
td {
font-size: 14px;
}
이렇게 하면 전체 테이블에 Arial 폰트를 설정하고 헤더 텍스트를 볼드체로 하고 셀 텍스트 크기를 14픽셀로 설정합니다.
CSS 테이블 - 기타 스타일
테이블에 적용할 수 있는 다양한 스타일이 있습니다. 다음은 빠른 개요입니다:
속성 | 설명 | 예제 |
---|---|---|
padding |
셀 내 공간 | td { padding: 10px; } |
border-radius |
둥근 모서리 | table { border-radius: 5px; } |
box-shadow |
그림자 효과 | table { box-shadow: 2px 2px 5px grey; } |
opacity |
투명도 | table { opacity: 0.8; } |
CSS 테이블 - 여백
여백은 테이블이 페이지의 다른 요소들로부터 공간을 확보하는 데 도움이 됩니다. 벽에 걸린 그림 틀 주변에 공간을 남기는 것과 같습니다.
table {
margin: 20px auto;
}
이렇게 하면 테이블 상단과 하단에 20픽셀의 여백을 추가하고 수평 중앙에 배치합니다.
CSS 테이블 - 수직/수평 분리선
테이블에 분리선을 추가하여 열이나 행을 구분할 수 있습니다. 노트북에 직선을 그리는 것과 같습니다.
td, th {
border-right: 1px solid black;
}
tr {
border-bottom: 1px solid black;
}
이렇게 하면 열 사이에 수직선과 행 사이에 수평선을 추가합니다.
CSS 테이블 - 줄무늬 테이블
줄무늬 테이블은 데이터 행을 읽기 쉽게 만들 수 있습니다. 책에서 번갈아 가면서 줄을 강조하는 것과 같습니다.
tr:nth-child(even) {
background-color: #f2f2f2;
}
이렇게 하면 테이블에 번갈아 가면서 하얀색과 연회색 행을 생성합니다.
CSS 테이블 - 반응형 테이블
테이블을 반응형으로 만들면 모든 기기에서 잘 보일 수 있습니다. 식사 테이블이 손님 수에 따라 확장하거나 수축하는 것과 같습니다.
@media screen and (max-width: 600px) {
table, thead, tbody, th, td, tr {
display: block;
}
thead tr {
position: absolute;
top: -9999px;
left: -9999px;
}
tr { border: 1px solid #ccc; }
td {
border: none;
position: relative;
padding-left: 50%;
}
td:before {
position: absolute;
top: 6px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
content: attr(data-label);
}
}
이 코드는 작은 화면에서 테이블을 목록 형식으로 변환하여 모바일 기기에서 더 쉽게 읽을 수 있게 합니다.
CSS 테이블 - 관련 속성
테이블을 작업할 때 유용할 수 있는 관련 CSS 속성 목록입니다:
속성 | 설명 |
---|---|
border-collapse |
셀 테두리가 분리되는지 통합되는지 결정 |
border-spacing |
셀 테두리 간격 설정 |
caption-side |
테이블 제목의 위치 지정 |
empty-cells |
공백 셀 테두리 표시 여부 설정 |
table-layout |
테이블 셀, 행, 열 배치 알고리즘 설정 |
vertical-align |
셀 내 텍스트 수직 정렬 설정 |
text-align |
셀 내 텍스트 수평 정렬 설정 |
이제 CSS로 테이블을 만들고 스타일링하는 방법을 잘 알고 계신 것입니다. 연습이 완벽을 만드는 법을 기억하시고, 이 속성들을 실험해 보세요. 즐거운 코딩을!
Credits: Image by storyset