border-collapse
속성의 이해
separate
(분리된 테두리 표) - 테이블의 각 셀이 개별적으로 테두리를 유지하도록 분리해서 표시합니다. (초깃값)collapse
(상쇄된 테두리 표) - 테이블 셀 간의 테두리를 하나로 합쳐 표시합니다.
데모
다음의 CSS 데모로 border-collapse
속성의 사용 방법을 확인해 보세요.
메뉴 | 가격 |
---|---|
라면 | 5,000 |
김밥 | 4,000 |
예제
<table class="separate">
<caption>
<code>border-collapse: separate</code>
</caption>
<tr>
<td>Cell 1.1</td>
<td>Cell 1.2</td>
</tr>
<tr>
<td>Cell 2.1</td>
<td>Cell 2.2</td>
</tr>
<tr>
<td>Cell 3.1</td>
<td>Cell 3.2</td>
</tr>
</table>
<table class="collapse">
<caption>
<code>border-collapse: collapse</code>
</caption>
<tr>
<td>Cell 1.1</td>
<td>Cell 1.2</td>
</tr>
<tr>
<td>Cell 2.1</td>
<td>Cell 2.2</td>
</tr>
<tr>
<td>Cell 3.1</td>
<td>Cell 3.2</td>
</tr>
</table>
.collapse {
border-collapse: collapse;
}
.separate {
border-collapse: separate;
}
table {
display: inline-table;
margin: 1em;
}
td {
border: 3px solid;
border-color: red blue orange green;
padding: 0.5em 2em;
}
Cell 1.1 | Cell 1.2 |
Cell 2.1 | Cell 2.2 |
Cell 3.1 | Cell 3.2 |
Cell 1.1 | Cell 1.2 |
Cell 2.1 | Cell 2.2 |
Cell 3.1 | Cell 3.2 |
형식 구문
/* 적용 요소: <table>
(display 속성이 table 또는, inline-table로 설정되어 있는 요소) */
selector {
border-collapse: seperate | collapse
}
구문
/* 키워드 값 */
border-collapse: separate; /* 초깃값 */
border-collapse: collapse;
/* 전역 값 */
border-collapse: inherit;
border-collapse: initial;
border-collapse: revert;
border-collapse: revert-layer;
border-collapse: unset;
형식 정의
초깃값 | separate |
---|---|
적용 요소 | <table>
( display 속성이 table 또는, inline-table 로 설정되어 있는 요소) |
상속 | 예 |
애니메이션 | 아니오 |
값
separate |
분리된 테두리 표로 설정합니다.
테이블의 각 셀이 개별적으로 테두리를 유지하도록 분리해서 표시합니다. |
---|---|
collapse |
상쇄된 테두리 표로 설정합니다.
테이블 셀 간의 테두리를 하나로 합쳐 표시합니다. |
border-collapse
와 연관된 CSS 속성과 동작
border-collapse
속성은 테이블의 테두리 렌더링 방식을 변경하며, 여러 CSS 속성과 테이블 요소의 동작에 영향을 미칩니다.
border-collapse: separate
에서만 적용되는 CSS 속성
다음의 속성들은 border-collapse: separate
에서만 적용되고, border-collapse: collapse
에서는 무시됩니다.
border-collapse: collapse
에서만 적용되는 요소 경계 테두리(border
) 설정
테이블과 관련된 다음의 요소들은 border-collapse: collapse
에서만 요소의 테두리(border
)와 관련된 속성들이 적용됩니다. border-collapse: separate
에서는 무시됩니다.
테이블의 경계 테두리 상쇄 규칙(border conflict resolution)
테이블에서 border-collapse: collapse
가 사용될 경우,
요소 경계 테두리(border
)는 각 셀(<th>
, <td>
), 행(<tr>
), 행 그룹(<thead>
, <tbody>
, <tfoot>
) , 열(<col>
), 열 그룹(<colgroup>
), 테이블(<table>
) 요소에 설정될 수 있습니다.
이때, 요소 경계 테두리는 두께(border-width
), 스타일(border-style
), 색상(border-color
)에 따라 다르게 설정될 수 있습니다.
규칙
border-collapse: collapse
설정으로 인해 인접한 요소 경계 테두리가 상쇄될 때, 어떤 경계 테두리가 선택될까요?
기본적으로 가장 눈에 띄는(eye-catching) 경계 테두리 스타일이 선택됩니다.
하지만, border-style: hidden
이 포함될 경우, 해당 요소 경계 테두리는 무조건 표시되지 않습니다.
border-collapse: collapse
가 적용될 경우, 인접한 요소 경계 테두리 간 상쇄 시 아래와 같은 규칙에 따라 어떤 테두리가 우선되는지 결정됩니다
border-style: hidden
이 최우선입니다.border-style: hidden
은 해당 위치의 모든 다른 경계를 숨깁니다.border-style: none
은 가장 낮은 우선순위를 가집니다. 모든 요소에서border-style: none
일 경우, 해당 경계는 표시되지 않습니다. [단,none
은border-style
의 기본값(초깃값)입니다.]border-style: hidden
과border-style: none
이 아닌 다른border-style
값이 설정되어 있는 경우,
좁은 경계의 두께(border-width
)는 넓은 경계 두께(border-width
)에 의해 상쇄됩니다.- 여러 스타일(
border-style
)의 경계 두께(border-width
)가 동일하다면, 다음 우선순위대로 결정됩니다.
double
>solid
>dashed
>dotted
>ridge
>outset
>groove
>inset
- 두께(
border-width
), 스타일(border-style
)이 동일하지만 색상(border-color
)만 다른 경우, 다음의 우선순위로 경계가 결정됩니다.
브라우저 호환성
속성과 값 |
데스크탑 Chrome
|
데스크탑데스크탑 Edge
|
데스크탑 Firefox
|
Safari
|
---|---|---|---|---|
border-collapse
|
1 | 12 | 1 | 1.2 |
collapse
|
80 | 80 | 72 | 13.1 |
separate
|
80 | 80 | 72 | 13.1 |
명세서
명세서 사양 | |
---|---|
border-collapse
|
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification #propdef-border-collapse |
Border conflict resolution |
Cascading Style Sheets Level 2 Revision 2 (CSS 2.2) Specification #order-conflict-resolution |
같이 보기
- HTML <table> 태그– 올바른 이해와 사용 방법
- CSS border 속성 – 요소에 네 테두리를 설정하는 단축 속성
- CSS border-width 속성 – 요소 테두리의 두께 지정
- CSS border-style 속성 – 요소 테두리의 여부와 스타일 지정
- CSS border-color 속성 – 요소 테두리의 색상 지정
- CSS caption-side 속성 – 테이블 캡션의 위치를 지정
- CSS border-spacing 속성 – 테이블 셀과 셀 사이 간격 지정
- CSS empty-cells 속성 – 테이블의 빈 셀 테두리 및 배경 여부 설정
- CSS table-layout 속성 – 테이블 너비 레이아웃 구현 방식 선택