CSS 갭 장식 모듈 레벨 1

W3C 워킹 드래프트,

이 문서에 대한 추가 정보
현재 버전:
https://www.w3.org/TR/2026/WD-css-gaps-1-20260227/
최신 공개 버전:
https://www.w3.org/TR/css-gaps-1/
에디터스 드래프트:
https://drafts.csswg.org/css-gaps-1/
이전 버전:
히스토리:
https://www.w3.org/standards/history/css-gaps-1/
피드백:
CSSWG 이슈 저장소
에디터:
Kevin Babbitt (Microsoft)
이 명세서에 편집 제안하기:
GitHub 에디터
테스트 수트:
https://wpt.fyi/results/css/css-gaps/

개요

이 모듈은 그리드 및 플렉스와 같은 컨테이너 레이아웃 유형에 행 및 열 갭 장식을 추가하는 여러 속성을 소개합니다.

CSS는 구조화된 문서 (예: HTML, XML)의 화면, 인쇄물 등에서의 렌더링을 설명하는 언어입니다.

이 문서의 상태

이 섹션은 이 문서가 공개된 시점의 상태를 설명합니다. 현재 W3C 발행물 목록과 이 기술 보고서의 최신 개정본은 W3C 표준 및 초안 색인에서 찾을 수 있습니다.

이 문서는 CSS 워킹 그룹권고 트랙을 이용해 워킹 드래프트로 발행한 것입니다. 워킹 드래프트로의 발행은 W3C 및 구성원의 지지를 의미하지 않습니다.

본 문서는 초안으로, 언제든지 수정, 대체, 혹은 폐기될 수 있습니다. 완성된 작업 외의 용도로 본 문서를 인용하는 것은 부적절합니다.

피드백은 GitHub에서 이슈 등록(권장)에 의해 보내주시고, 스펙 코드 “css-gaps”를 제목에 포함해 주세요. 예시: “[css-gaps] …코멘트 요약…”. 모든 이슈와 코멘트는 아카이브됩니다. 또는 (아카이브됨) 공개 메일링 리스트 www-style@w3.org로도 피드백을 보낼 수 있습니다.

이 문서는 2025년 8월 18일 W3C 프로세스 문서를 따릅니다.

이 문서는 W3C 특허 정책에 따라 운영되는 그룹에 의해 발행되었습니다. W3C는 그룹 산출물과 관련해 공개된 공개 특허 목록을 관리하며; 해당 페이지에는 특허 공개 방법도 포함되어 있습니다. 특정 특허가 필수 청구항을 포함한다고 실제로 아는 개인은 W3C 특허 정책 6항에 따라 정보를 공개해야 합니다.

1. 소개

이 절은 규범적이지 않습니다.

CSS Multicol 1 § 4 Column Gaps and Rules멀티컬럼 컨테이너에서 열 사이에 룰을 그릴 수 있도록 허용합니다. 이 명세는 column-rule-width, column-rule-style, column-rule-color 속성을 확장하여, 행 방향의 동등한 기능을 추가하고, 이를 다른 컨테이너 레이아웃에도 적용하며, 갭 장식이 그려지는 위치와 방식에 대해 고급 제어 기능을 제공합니다.

1.1. 값 정의

이 명세서는 CSS 속성 정의 규칙[CSS2]로부터 따릅니다. 값 정의 구문[CSS-VALUES-3]를 사용합니다. 본 명세에서 정의하지 않은 값 유형들은 CSS Values & Units [CSS-VALUES-3]에서 정의됩니다. 다른 CSS 모듈과의 조합에 따라 이러한 값 유형의 정의가 확장될 수 있습니다.

각 속성 정의에 나열된 속성별 값 외에도, 이 명세에 정의된 모든 속성은 CSS-전역 키워드 역시 속성 값으로 허용합니다. 가독성을 위해 별도로 반복하여 적지는 않았습니다.

2.

CSS의 다양한 레이아웃 — 멀티컬럼 컨테이너, 플렉스 컨테이너, 그리드 컨테이너, 그리드 레인 컨테이너 — 들은 자식 박스들을 (또는 거터)로 불리는 공간을 사이에 두고 인접하게 배치합니다.

이 명세서에서 , 열 갭, 행 갭은 컨테이너 유형에 따라 다음과 같이 정의됩니다:

멀티컬럼 컨테이너
열 방향의 (열 갭)은 각 컬럼 박스들 사이의 거터를 의미합니다. (멀티컬럼 라인 내에서) 자세한 내용은 [CSS-MULTICOL-1]을 참고하십시오. 행 방향의 (행 갭)은 거터를 의미하며, 이는 컬럼 박스의 행들 사이에 위치하며, column-height로 정의됩니다. 자세한 내용은 [CSS-MULTICOL-2] 참고.
플렉스 컨테이너
메인 축 기준 (예: row column-gap이 적용된 플렉스 컨테이너), (열 갭)은 한 플렉스 라인 내 아이템들 사이의 거터입니다.

크로스 축 기준 (예: row row-gap이 적용된 플렉스 컨테이너), (행 갭)은 인접한 플렉스 라인 사이의 거터입니다.

그리드 컨테이너
행 갭열 갭은 각각 거터를 의미하며, 그리드 행그리드 열 사이에 위치합니다. 정확한 정보는 CSS Grid Layout 1 § 10.1 Gutters: the row-gap, column-gap, and gap properties 참고.

참고: CSS Box Alignment 3 § 8.1 Row and Column Gutters: the row-gap and column-gap properties에 명시된 바와 같이, justify-contentalign-content 에 의해 아이템 사이에 추가되는 공간 역시 크기에 포함됩니다.

Column gaps in orange in a multicol container with a spanner element. Note that column gaps break when they encounter the spanner.
Gaps in a multicol container with `column-wrap: wrap`; column gaps in orange and row gaps in blue). Note that column gaps in multicol containers do not overlap row gaps, similar to flex.
Gaps in a grid container; column gaps in orange and row gaps in blue. Note the shaded areas where gaps overlap.
Gaps in a flex container; column gaps in orange and row gaps in blue. Note that, unlike in grid, gaps in flex do not overlap.

3. 갭 장식

에는 갭 장식이 포함될 수 있으며, 이는 인접 박스 사이에 그려지는 구분선(선 등)입니다.

갭 장식은 공간을 차지하지 않습니다. 즉, 갭 장식의 존재나 너비는 다른 항목의 배치에 영향을 주지 않습니다. 갭 장식이 갭보다 두꺼울 경우, 인접 박스들이 장식 위에 겹쳐질 수 있으며, 어떤 경우에는 장식이 컨테이너 박스 바깥까지 뻗칠 수 있습니다.

갭 장식은 컨테이너의 보더 바로 위에 그려집니다. 스크롤 가능한 컨테이너의 경우에는 컨테이너의 보더와 배경은 스크롤되지 않지만, 장식은 컨테이너 안의 아이템과 함께 스크롤되어야 합니다.

3.1. 기하구조

갭 장식 안에 하나 이상의 갭 장식 세그먼트로 그려집니다.

3.1.1. 세그먼트 끝점

세그먼트 끝점의 중심선 위에서 갭 장식 세그먼트가 시작되거나 끝날 수 있는 지점을 의미합니다. 끝점 유형은 두 가지가 있습니다:

G에 대한 세그먼트 끝점 만들기:
  1. 갭의 경계:

    G의 두 경계에서 끝점을 만듭니다:

    갭이 콘텐츠 경계까지 이어질 경우, 해당 끝점은 해당 콘텐츠 에지와 일치합니다.

  2. 갭 내부:

    갭 접합부G에 하나 이상의 이 접하거나 겹치는 영역입니다. 각 갭 접합부마다 세그먼트 끝점이 두 개 생깁니다:

    이 순서(종료 끝점, 시작 끝점)는 갭 접합부가 한 트랙/아이템/컬럼의 끝과, 다른 하나의 시작에 해당함을 의미합니다.

다음 예시들은 세그먼트 끝점의 위치를 보여줍니다. 보라색 +세그먼트 시작 끝점, 초록 +세그먼트 종료 끝점입니다. 갭 접합부는 점선 박스로 표시되어 있습니다.
.grid-with-spans {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  background: rgb(255 255 128);
}
.grid > * {
  border: 1px dashed black;
}
스팬이 있는 그리드에서의 세그먼트 끝점갭 접합부의 위치. 각 갭(컨테이너의 에지와 일치)을 따라 끝점이 생성되고, 행과 열 갭이 겹치는 갭 내부에도 end-start 방식으로 끝점이 생성됩니다.
.flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 500px;
  background: rgb(255 255 128);
}
.flex > * {
  border: 1px dashed black;
}
플렉스 컨테이너에서의 세그먼트 끝점갭 접합부 위치. 열 갭은 경계에서 끝점을 생성하며, 일부 경계는 컨테이너 에지와 일치합니다 (예시: #1과 #2, #2와 #3 사이의 갭 시작이 컨테이너의 위쪽 에지와 일치, #7과 #8 사이 갭 끝이 컨테이너의 아래쪽 에지와 일치). 행 갭(플렉스 라인 사이)은 경계에서 끝점을 생성하며, 이 경계는 컨테이너의 왼쪽/오른쪽 에지와 일치합니다. 열 갭이 행 갭에 접할 때 end-start 방식으로 두 끝점이 생성됩니다.
.multi-column {
  column-count: 3;
  column-width: 100px;
  column-height: 50px;
  column-wrap: wrap;
  gap: 20px;
  background: rgb(255 255 128);
}

.multi-column > * {
  height: 100px;
  border: 1px dashed black;
}	
멀티컬럼 컨테이너의 세그먼트 끝점갭 접합부 위치. 열 갭(컬럼 박스 사이)은 그 경계에서 끝점을 생성하며, 일부 경계는 컨테이너 에지와 일치합니다 (첫 2개 열 갭 시작은 위쪽 에지와, 마지막 2개 열 갭 끝은 아래쪽 에지와 일치). 행 갭(컬럼 박스 행 사이)도 경계에서 끝점을 생성하며, 이 경계는 컨테이너의 좌/우 에지와 일치합니다. 열 갭이 행 갭에 접할 때 end-start 방식으로 두 끝점이 생성됩니다.

3.1.2. 갭 장식 세그먼트

정의

A 갭 장식 세그먼트세그먼트 시작 끝점세그먼트 종료 끝점을 쌍으로 연결하여 형성됩니다. 각 갭 장식 세그먼트들의 집합을 이룹니다.

이 절에서는 갭 장식 세그먼트 ss = [s.start, s.end]로 표기하며, 여기서 s.start는 세그먼트의 세그먼트 시작 끝점이고, s.end는 세그먼트의 세그먼트 종료 끝점입니다.

정의하자 UNION(s1, s2) 를 [s1.start, s2.end]와 같다고 한다.

어떤 갭 장식 세그먼트스팬하는 아이템들에 의해 양측이 둘러싸여 있다고 하는 것은, 그 끝점들 사이의 모든 갭 접합부에 대해, 해당 접합부에 기여하는 수직(혹은 수평) 갭들을 모두 가로지르는 아이템들이 갭의 반대편 양쪽에 존재할 때를 의미합니다.

주어진 의 문맥에서, 두 세그먼트 끝점ab는 선분이 a에서 b로 그려질 때, 그 선분이 과 같은 너비를 가지며 컨테이너의 자식 아이템과 교차하면 비연속적이라고 간주됩니다.

알고리즘
To G에 대한 갭 장식 세그먼트들을 결정하려면:
  1. S를 빈 목록으로 둔다.

  2. endpointsG에 대해 세그먼트 끝점을 생성한 결과로 하며, 그 순서는 G의 중심선 상에서 시작에서 끝까지의 위치에 따라 정렬한다.

    참고: 이 목록은 짝수 개의 요소를 포함하며, 요소들은 엄격하게 세그먼트 시작 끝점세그먼트 종료 끝점 사이를 번갈아 가며 구성되며, 세그먼트 시작 끝점으로 시작함이 보장된다.

  3. 만약 endpoints가 비어있다면, S를 반환한다.

  4. break을 해당 갭에 적용되는 column-rule-break 또는 row-rule-break 중 사용된 값으로 둔다.

  5. 만약 breaknone이면:

    1. firstendpoints의 첫 번째 항목으로 둔다.

    2. lastendpoints의 마지막 항목으로 둔다.

    3. 갭 장식 세그먼트 segment = [first, last]를 생성한다.

    4. 오프셋을 segment에 적용한 뒤, 그것을 S에 추가한다.

    5. S를 반환한다.

  6. 빈 검사: 만약 endpoints가 비어있다면, S를 반환한다.
  7. endpoints의 처음 두 항목으로부터 갭 장식 세그먼트 s를 생성한다. 그리고 그 둘을 목록에서 제거한다.

  8. 만약 s의 끝점들이 비연속적이라면, 빈 검사로 되돌아간다.

  9. 다음의 동안 endpoints가 비어있지 않다면:

    1. endpoints의 처음 두 항목으로부터 갭 장식 세그먼트 next를 생성하되, 그 항목들은 목록에 남겨둔다.

    2. candidateUNION(s, next)로 둔다.

    3. 만약 candidate의 끝점들이 비연속적이라면, 이 반복문을 종료한다.

    4. 만약 breakintersection이고, candidate스팬하는 아이템들에 의해 양측이 둘러싸여 있지 않다면, 이 반복문을 종료한다.

    5. endpoints의 처음 두 항목을 목록에서 제거한다.

    6. sUNION(s, next)로 설정한다.

  10. 오프셋을 s에 적용한 뒤, 그것을 S에 추가한다.

  11. 빈 검사로 되돌아간다.

To 세그먼트 s에 오프셋을 적용하려면 s = [start, end]:
  1. 적용 가능한 rule-inset 속성의 사용된 값으로 start를 오프셋한다.

  2. 적용 가능한 rule-inset 속성의 사용된 값으로 end를 오프셋한다.

  3. 조정된 [start, end]로 s를 업데이트한다.

그리드 컨테이너에서의 갭 장식 세그먼트 (파란색 및 빨간색 사각형) 설명. 세그먼트들은 세그먼트 끝점 쌍 사이에 그려지며, 세그먼트 시작 끝점은 보라색 십자, 세그먼트 종료 끝점은 초록색 십자로 표시되어 있다.
플렉스 컨테이너에서의 갭 장식 세그먼트 (파란색 및 빨간색 사각형) 설명. 세그먼트들은 세그먼트 끝점 쌍 사이에 그려지며, 세그먼트 시작 끝점은 보라색 십자, 세그먼트 종료 끝점은 초록색 십자로 표시되어 있다.
(column-wrap: wrap가 설정된) 멀티컬럼 컨테이너에서의 갭 장식 세그먼트 (파란색 및 빨간색 사각형) 설명. 세그먼트들은 세그먼트 끝점 쌍 사이에 그려지며, 세그먼트 시작 끝점은 보라색 십자, 세그먼트 종료 끝점은 초록색 십자로 표시되어 있다.
플렉스 컨테이너에서의 갭 장식 세그먼트 (파란색 및 빨간색 사각형) 설명. 세그먼트들은 세그먼트 끝점 쌍 사이에 그려지며, 세그먼트 시작 끝점은 보라색 십자, 세그먼트 종료 끝점은 초록색 십자로 표시되어 있다.
플렉스 컨테이너에서의 갭 장식 세그먼트 (파란색 및 빨간색 사각형) 설명. 세그먼트들은 세그먼트 끝점 쌍 사이에 그려지며, 세그먼트 시작 끝점은 보라색 십자, 세그먼트 종료 끝점은 초록색 십자로 표시되어 있다.
Tests

3.2. 교차점에서의 분리 동작: column-rule-break, row-rule-break, rule-break 속성

이름: column-rule-break, row-rule-break
값: none | normal | intersection
초깃값: normal
적용 대상: 그리드 컨테이너, 플렉스 컨테이너, 멀티컬럼 컨테이너, 그리드 레인 컨테이너
상속됨: 아니오
백분율: 해당 없음
계산값: 지정된 값대로
정식 순서: 문법 순서
애니메이션 유형: 비연속형

이 속성들은 컨테이너 내 아이템들에 의해 형성된 눈에 보이는 "T" 또는 "십자" 교차점에서, 데코레이션을 갭 내에서 세그먼트로 분리하는 동작을 설정합니다. 이 값을 적용하는 방법의 정확한 세부사항은 갭 장식 세그먼트 결정 단계에 나와 있습니다.

none
갭 장식이 보이는 "T" 또는 "십자" 교차점에서 시작하거나 끝나지 않습니다. 대신 하나의 연속적인 장식이 갭의 한쪽 끝에서 다른 쪽 끝까지 그려집니다.
normal
동작은 컨테이너 유형에 따라 다릅니다.
그리드 컨테이너
갭 장식은 보이는 "T" 교차점에서 시작하거나 끝나지만, 보이는 "십자" 교차점에서는 연속해 이어집니다.
플렉스 컨테이너
none과 동일하게 동작합니다.
멀티컬럼 컨테이너
column-rule-break에서는 intersection과 동일하게 동작. row-rule-break에서는 none과 동일하게 동작.
intersection
갭 장식은 보이는 "T"와 "십자" 교차점에서 시작 및 끝납니다.
Tests
이름: rule-break
값: <'column-rule-break'>
초깃값: 개별 속성 참고
적용 대상: column-rule-breakrow-rule-break과 동일
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

축약 속성column-rule-breakrow-rule-break에 동일한 값을 설정합니다.

Tests

아래의 예제들은 *-rule-break 속성들의 다양한 설정을 보여줍니다.

.break-normal-grid {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: normal;
}
그리드에서의 갭 장식의 기본 분리 동작. 각 장식은 갭을 가로지르는 아이템을 만나면 중단됩니다.
.break-none-grid {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: none;
}
분리 없음(none) 설정된 그리드 갭 장식. 갭 장식이 그리드에 배치된 아이템 "뒤쪽"으로 확장됨을 주의.
.break-intersection-grid {
  display: grid;
  grid-template: repeat(4, 100px) / repeat(4, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: intersection;
}
갭 장식 세그먼트에서 양쪽이 스팬하는 아이템들로 둘러싸여 있지 않은 경우에 한해, 포함되는 그리드 갭 장식.
.break-normal-multicol {
  column-width: 150px;
  column-height: 300px;
  gap: 1em;
  row-rule: 4px solid red;
  column-rule: 4px solid blue;
  rule-break: normal;
}
멀티컬럼 갭 장식에서 rule-break가 normal로 설정됨. 열 방향에서는 rule-break가 intersection처럼 동작, 행 방향에서는 rule-break가 none처럼 동작.
.break-intersection-multicol {
  column-width: 150px;
  column-height: 300px;
  gap: 1em;
  row-rule: 4px solid red;
  column-rule: 4px solid blue;
  rule-break: intersection;
}
rule-break가 intersection으로 설정된 멀티컬럼 갭 장식.
.break-normal-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: normal;
}
플렉스 컨테이너에서 갭 장식의 기본 분리 동작.
각 플렉스 라인은 아이템들 사이에 고유한 을 가진다는 점에 주의. 이는 두 가지를 의미함:
  1. 인접한 플렉스 라인의 갭 장식은 비록 그 갭이 일치한다고 해도, 서로 분리되어 있음.
  2. nonenormal과 동일한 시각적 효과를 가짐.
.break-intersection-flex {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  width: 500px;
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-break: intersection;
}
갭 장식 세그먼트 내에 포함된 플렉스박스 갭 장식.

3.3. 갭 장식 끝점 조정: rule-inset 속성

이름: column-rule-edge-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-start, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-start, row-rule-interior-inset-end
값: <length-percentage>
초깃값: 0
적용 대상: 그리드 컨테이너, 플렉스 컨테이너, 멀티컬럼 컨테이너, 그리드 레인 컨테이너
상속됨: 아니오
백분율: 교차 갭 너비 기준
계산값: 지정된 그대로
정식 순서: 문법 순서
애니메이션 유형: 계산값 유형에 따라

이 속성들은 갭 장식의 시작 및 끝점을 데코레이션이 시작되거나 끝나는 세그먼트 끝점에 대해 오프셋할 수 있게 해줍니다.

에지 세그먼트 끝점은 컨테이너의 콘텐츠 에지에서 생성된 모든 세그먼트 끝점이다.

내부 세그먼트 끝점갭 접합부에서 생성된 모든 세그먼트 끝점이다.

백분율은 교차 갭 너비를 기준으로 해석하며, 다음과 같이 정의됩니다:

에지 세그먼트 끝점
교차 갭 너비0이다.
내부 세그먼트 끝점
교차 갭 너비갭 접합부의 같은 방향(행 갭일 때는 가로, 열 갭일 때는 세로) 크기입니다. 안에 세그먼트 끝점이 위치할 때 (행 갭의 경우 수평, 열 갭의 경우 수직).

참고: 일반적으로 이는 교차하거나 인접한 갭에 적용되는 column-gap 또는 row-gap 속성의 사용된 값에, justify-content 또는 align-content로 인한 추가 공간을 더한 것이지만, 들이 겹치거나 인접하여 구간이 겹치는 경우에는, 교차 갭 너비는 그런 구간들의 합집합으로 결정됩니다. 그런 예시로는 이 예제 참고.

column-rule-edge-inset-startrow-rule-edge-inset-start 속성은 세그먼트 시작 끝점에지 세그먼트 끝점에 적용됩니다. column-rule-interior-inset-startrow-rule-interior-inset-start 속성은 세그먼트 시작 끝점내부 세그먼트 끝점에 적용됩니다. 이 속성들에서 양수 값은 갭 축을 따라 순방향, 음수는 역방향으로 오프셋합니다.

column-rule-edge-inset-endrow-rule-edge-inset-end 속성은 세그먼트 종료 끝점에지 세그먼트 끝점에 적용됩니다. column-rule-interior-inset-endrow-rule-interior-inset-end 속성은 세그먼트 종료 끝점내부 세그먼트 끝점에 적용됩니다. 이 속성들에서 양수 값은 갭 축을 따라 역방향, 음수는 순방향으로 오프셋합니다.

Tests

3.3.1. -start-end 약어

이 약어들은 작성자가 비대칭 장식을 간결하게 지정할 수 있도록 해줍니다.

.inset-start-8px-end-0px {
  column-rule-inset-start: 8px;
  column-rule-inset-end: 0px;
}
8px의 start inset은 갭 장식의 시작을 안쪽으로 물리고, 0px의 end inset은 갭 장식의 끝을 콘텐츠 에지와 정렬시킵니다.
이름: column-rule-inset-start, column-rule-inset-end, row-rule-inset-start, row-rule-inset-end
값: <length-percentage>
초깃값: 개별 속성 참고
적용 대상: column-rule-edge-inset-start, column-rule-interior-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-interior-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-end
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성은 해당 -edge--interior- 속성에 같은 값을 설정합니다. 예를 들어, column-rule-inset-startcolumn-rule-edge-inset-startcolumn-rule-interior-inset-start에 동일한 값을 설정합니다.

이름: rule-inset-start
값: <'column-rule-inset-start'>
초깃값: 개별 속성 참고
적용 대상: column-rule-inset-startrow-rule-inset-start와 동일
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성column-rule-inset-startrow-rule-inset-start에 동일한 값을 설정합니다.

이름: rule-inset-end
값: <'column-rule-inset-end'>
초깃값: 개별 속성 참고
적용 대상: column-rule-inset-endrow-rule-inset-end와 동일
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성column-rule-inset-endrow-rule-inset-end에 동일한 값을 설정합니다.

3.3.2. -edge--interior- 약어

이 약어들은 작성자가 에지 교차점과 내부 교차점에서 서로 다른 처리를 가능하게 합니다.

.inset-edge-0px-interior-negative-5px {
  column-rule-edge-inset: 0px;
  column-rule-interior-inset: -5px;
  column-rule-break: intersection;
}
-5px의 내부 inset은 내부 갭 장식의 끝점을 인접 아이템의 에지보다 조금 더 늘려줍니다. 0px의 에지 inset은 에지 갭 장식의 끝점을 콘텐츠 에지에 정렬시킵니다.
이름: column-rule-edge-inset, column-rule-interior-inset, row-rule-edge-inset, row-rule-interior-inset
값: <length-percentage> [ <length-percentage> ]?
초깃값: 개별 속성 참고
적용 대상: column-rule-edge-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-start, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-start, 그리고 row-rule-interior-inset-end
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

이 약어들은 해당 -start-end 속성에 값을 설정합니다. 예를 들어, column-rule-edge-insetcolumn-rule-edge-inset-startcolumn-rule-edge-inset-end에 모두 값을 설정합니다. 하나의 값만 지정하면 두 속성 모두 그 값이 설정되고, 두 개의 값을 지정하면 첫 번째 값은 -start, 두 번째는 -end에 각각 설정됩니다.

이름: rule-edge-inset
값: <'column-rule-edge-inset'>
초깃값: 개별 속성 참고
적용 대상: column-rule-edge-insetrow-rule-edge-inset와 동일
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성column-rule-edge-insetrow-rule-edge-inset에 동일한 값을 설정합니다.

이름: rule-interior-inset
값: <'column-rule-interior-inset'>
초깃값: 개별 속성 참고
적용 대상: column-rule-interior-insetrow-rule-interior-inset와 동일
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성column-rule-interior-insetrow-rule-interior-inset에 동일한 값을 설정합니다.

Tests

3.3.3. 범용 약어

이 약어들은 컨테이너 전체에 일관된 처리를 쉽게 지정할 수 있습니다.

.inset-0px {
  column-rule-inset: 0px;
  column-rule-break: intersection;
}
0px inset은 갭 장식의 끝을 인접 아이템과 맞춥니다.
.inset-positive-5px {
  column-rule-inset: 5px;
  column-rule-break: intersection;
}
5px inset은 갭 장식의 끝을 인접 아이템의 에지보다 짧게 만듭니다.
.inset-negative-5px {
  column-rule-inset: -5px;
  column-rule-break: intersection;
}
-5px inset은 갭 장식의 끝을 인접 아이템의 에지보다 약간 더 넘어가게 만듭니다.
.inset-negative-50percent {
  column-rule-inset: -50%;
  column-rule-break: intersection;
}
-50% inset은 갭 장식의 끝을 교차점의 중간까지 확장시킵니다. 이웃 갭 장식들이 "중앙에서 만나는" 효과로 연속된 선을 만듭니다. 컨테이너의 에지에서는 교차 갭 너비0으로 정의되어 있으므로, -50% inset 값은 0이 되어 갭 장식은 컨테이너를 넘어 확장되지 않습니다. (이전 예제에서 px 단위로 지정한 경우와 비교.)
이름: column-rule-inset, row-rule-inset
값: <'column-rule-edge-inset'> [ / <'column-rule-interior-inset'> ]?
초깃값: 개별 속성 참고
적용 대상: column-rule-edge-inset, column-rule-interior-inset, row-rule-edge-inset, 그리고 row-rule-interior-inset와 동일
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

이 약어들은 해당 edge 및 interior 시작/끝 값을 함께 설정합니다. 값의 순서는 다음과 같습니다:

edge-start edge-end? [/ interior-start interior-end?]?

값이 생략되는 경우 다음 순서로 채웁니다:

  1. interior 값이 생략되면 edge 값에서 복사합니다.
  2. end 값이 생략되면 해당 start 값에서 복사합니다.
이름: rule-inset
값: <'column-rule-inset'>
초깃값: 개별 속성 참고
적용 대상: column-rule-insetrow-rule-inset과 동일
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성column-rule-insetrow-rule-inset에 동일한 값을 설정합니다.

Tests

3.4. 갭 장식 표시 여부: rule-visibility-items 속성

이름: column-rule-visibility-items, row-rule-visibility-items
값: all | around | between
초깃값: all
적용 대상: 그리드 컨테이너, 그리고 멀티컬럼 컨테이너
상속됨: 아니오
백분율: 해당 없음
계산값: 지정된 그대로
정식 순서: 문법 순서
애니메이션 유형: 비연속형

이 속성들은 갭 장식 세그먼트가 빈 영역과 인접한 의 부분에 그려질지 여부를 제어합니다.

all
인접한 아이템의 존재와 관계없이 모든 갭 세그먼트에 장식을 그린다.
around
두 인접 영역 중 하나라도 아이템이 차지하면 갭 세그먼트에 장식을 그린다.
between
두 인접 영역 모두 아이템이 차지할 때만 갭 세그먼트에 장식을 그린다.
이름: rule-visibility-items
값: <'column-rule-visibility-items'>
초깃값: 개별 속성 참고
적용 대상: column-rule-visibility-itemsrow-rule-visibility-items와 동일
상속됨: 개별 속성 참고
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성column-rule-visibility-itemsrow-rule-visibility-items에 동일한 값을 설정합니다.

.break-normal-with-all-grid {
  display: grid;
  grid-template: repeat(3, 100px) / repeat(3, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-visibility-items: all;
}
normal 규칙 분리 및 all 표시(기본값)로 설정된 Grid의 갭 장식.
.break-normal-with-around-grid {
  display: grid;
  grid-template: repeat(3, 100px) / repeat(3, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-visibility-items: around;
}
normal 규칙 분리 및 around 표시로 설정된 Grid의 갭 장식.
.break-normal-with-between-grid {
  display: grid;
  grid-template: repeat(3, 100px) / repeat(3, 100px);
  gap: 20px;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
  rule-visibility-items: between;
}
normal 규칙 분리 및 between 표시로 설정된 Grid의 갭 장식.
Tests

3.5. 갭 장식 겹침: rule-overlap 속성

이름: rule-overlap
값: row-over-column | column-over-row
초깃값: row-over-column
적용 대상: grid 컨테이너, flex 컨테이너, 그리고 grid lanes 컨테이너
상속됨: 아니오
백분율: 해당 없음
계산값: 명시된 그대로
정식 순서: 문법 순서
애니메이션 유형: 비연속형

이 속성은 겹치는 갭 장식의 페인트 순서를 설정합니다.

row-over-column
가로(행) 방향 장식이 세로(열) 방향 장식 위에 그려집니다.
column-over-row
세로(열) 방향 장식이 가로(행) 방향 장식 위에 그려집니다.
.row-over-column {
  rule-overlap: row-over-column;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
}
row-over-column 갭 장식 겹침.
.column-over-row {
  rule-overlap: column-over-row;
  row-rule: 6px solid red;
  column-rule: 6px solid blue;
}
column-over-row 갭 장식 겹침.
테스트

3.6. 단편화

CSS Box Alignment 3 § 8.1 Row and Column Gutters: the row-gap and column-gap properties는 갭이 단편화 분기(fragmentation break)와 일치하는 지점에서 사라진다고 명시합니다. 그러한 위치에는 갭이 존재하지 않으므로, 그들 안에는 갭 장식도 그려지지 않습니다.

테스트

4. 색상, 스타일 및 너비

이 절의 속성 정의는 동일한 이름을 가진 속성들의 정의를 [CSS-MULTICOL-1]의 정의보다 우선합니다.

4.1. 갭 장식 색상: column-rule-color, row-rule-color, 및 rule-color 속성

Name: column-rule-color, row-rule-color
값: <line-color-list> | <auto-line-color-list>
초깃값: currentcolor
적용 대상: 그리드 컨테이너, 플렉스 컨테이너, 멀티컬럼 컨테이너, 및 그리드 레인 컨테이너
상속됨: 아니오
백분율: 해당 없음
계산값: 지정된 그대로
정식 순서: 문법 순서
Animation type: 반복 가능한 목록, § 4.7 목록 값의 보간 참조.
<line-color-list>          = <line-color-or-repeat>#

<auto-line-color-list>     = <line-color-or-repeat>#? ,
                             <auto-repeat-line-color> ,
                             <line-color-or-repeat>#?

<line-color-or-repeat>     = [ <color> | <repeat-line-color> ]

<repeat-line-color>        = repeat( [ <integer [1,∞]> ] , [ <color> ]# )

<auto-repeat-line-color>   = repeat( auto , [ <color> ]# )

이들 속성은 갭 장식의 색상을 설정합니다.

Name: rule-color
값: <'column-rule-color'>
초깃값: 개별 속성 참고
적용 대상: column-rule-color 및 row-rule-color와 동일
상속됨: 아니오
백분율: 개별 속성 참고
계산값: 개별 속성 참고
Animation type: 개별 속성 참고
정식 순서: 문법 순서

축약 속성column-rule-colorrow-rule-color에 동일한 값을 설정합니다.

테스트

4.2. 갭 장식 스타일: column-rule-style, row-rule-style, 그리고 rule-style 속성

이름: column-rule-style, row-rule-style
값: <line-style-list> | <auto-line-style-list>
초깃값: none
적용 대상: grid 컨테이너, flex 컨테이너, multicol 컨테이너, 그리고 grid lanes 컨테이너
상속됨: 아니오
백분율: 해당 없음
계산값: 명시된 그대로
정식 순서: 문법 순서
애니메이션 유형: 비연속형
<line-style-list>          = <line-style-or-repeat>#

<auto-line-style-list>     = <line-style-or-repeat>#? ,
                             <auto-repeat-line-style> ,
                             <line-style-or-repeat>#?

<line-style-or-repeat>     = [ <line-style> | <repeat-line-style> ]

<repeat-line-style>        = repeat( [ <integer [1,∞]> ] , [ <line-style> ]# )

<auto-repeat-line-style>   = repeat( auto , [ <line-style> ]# )

이 속성들은 갭 장식의 스타일을 설정합니다. <line-style> 값은 border-style에 대해 적용하는 것과 동일하게 적용됩니다.

이름: rule-style
값: <'column-rule-style'>
초깃값: 개별 속성 참고
적용 대상: column-rule-stylerow-rule-style과 동일
상속됨: 아니오
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성column-rule-stylerow-rule-style에 동일한 값을 설정합니다.

테스트

4.3. 갭 장식 너비: column-rule-width, row-rule-width, 그리고 rule-width 속성

이름: column-rule-width, row-rule-width
값: <line-width-list> | <auto-line-width-list>
초깃값: medium
적용 대상: grid 컨테이너, flex 컨테이너, multicol 컨테이너, 그리고 grid lanes 컨테이너
상속됨: 아니오
백분율: 해당 없음
계산값: 절대 길이의 목록, border-width로 snap됨
정식 순서: 문법 순서
애니메이션 유형: 반복가능 목록, § 4.7 목록 값의 보간 참고.
<line-width-list>          = <line-width-or-repeat>#

<auto-line-width-list>     = <line-width-or-repeat>#? ,
                             <auto-repeat-line-width> ,
                             <line-width-or-repeat>#?

<line-width-or-repeat>     = [ <line-width> | <repeat-line-width> ]

<repeat-line-width>        = repeat( [ <integer [1,∞]> ] , [ <line-width> ]# )

<auto-repeat-line-width>   = repeat( auto , [ <line-width> ]# )

이 속성들은 갭 장식의 너비를 설정합니다. 음수 값은 허용되지 않습니다.

이름: rule-width
값: <'column-rule-width'>
초깃값: 개별 속성 참고
적용 대상: column-rule-widthrow-rule-width와 동일
상속됨: 아니오
백분율: 개별 속성 참고
계산값: 개별 속성 참고
애니메이션 유형: 개별 속성 참고
정식 순서: 문법 순서

약어 속성column-rule-widthrow-rule-width에 동일한 값을 설정합니다.

테스트

4.4. 갭 장식 축약형: column-rule, row-rule, 그리고 rule 속성

이름: column-rule, row-rule
값: <gap-rule-list> | <gap-auto-rule-list>
초깃값: 개별 속성 참조
적용 대상: 개별 속성 참조
상속: 개별 속성 참조
백분율: 개별 속성 참조
계산값: 개별 속성 참조
애니메이션 유형: 개별 속성 참조
정식 순서: 문법 순서에 따름
<gap-rule-list>        = <gap-rule-or-repeat>#

<gap-auto-rule-list>   = <gap-rule-or-repeat>#? ,
                         <gap-auto-repeat-rule> ,
                         <gap-rule-or-repeat>#?

<gap-rule-or-repeat>   = <gap-rule> | <gap-repeat-rule>

<gap-repeat-rule>      = repeat( <integer [1,∞]> , <gap-rule># )

<gap-auto-repeat-rule> = repeat( auto , <gap-rule># )

<gap-rule>             = <line-width> || <line-style> || <color>

축약 속성들column-rule-width, column-rule-style, column-rule-color 속성이나, row-rule-width, row-rule-style, row-rule-color 속성 값들을 각각 설정합니다.

이름: rule
값: <'column-rule'>
초깃값: 개별 속성 참조
적용 대상: column-rulerow-rule과 동일
상속: 아니오
백분율: 개별 속성 참조
계산값: 개별 속성 참조
애니메이션 유형: 개별 속성 참조
정식 순서: 문법 순서에 따름

축약 속성column-rulerow-rule에 동일한 값을 설정합니다.

테스트

4.5. 값 목록과 repeat() 표기법

이 절의 각 속성은 쉼표로 구분된 값 목록을 허용합니다. 이렇게 여러 값을 지정함으로써 특정 컨테이너 안에서 갭 장식을 다양하게 적용할 수 있습니다.

작성자는 다음과 같이 빨간색과 파란색이 번갈아 나오는 column rule을 지정할 수 있습니다:
column-rule-width: 1px;
column-rule-style: solid;
column-rule-color: red, blue;

이런 목록에는 repeat() 표기가 포함될 수 있습니다. CSS Grid Layout 1 § 7.2.3 Repeating Rows and Columns: the repeat() notation과 유사하게, 이 표기는 반복 패턴을 가진 일련의 갭 장식을 더욱 간단하게 작성하도록 해줍니다.

repeat() 구문의 일반 형태는 대략 다음과 같습니다.

repeat( [ <integer [1,∞]> | auto ] , <value># )

repeat()의 첫 번째 인수는 반복 횟수를 지정합니다.

<integer>
정수 반복자를 지정합니다. 정수 반복자는 두 번째 인자의 값 목록을 첫 번째 인수가 지정한 횟수만큼 반복한 것으로 펼쳐집니다.
작성자는 이렇게 쓸 수 있습니다:
column-rule-color: gray, red, blue, red, blue, red, blue, gray;
또는, 아래와 같이 동일한 색 시퀀스를 더 간단히 쓸 수 있습니다:
column-rule-color: gray, repeat(3, red, blue), gray;
auto
auto 반복자를 지정합니다. auto 반복자는 리스트의 다른 부분에서 값을 할당받지 않은 갭에 대해 값을 채우는 데 사용됩니다. 주어진 값 리스트에서 repeat()auto 반복자인 경우는 최대 한 번만 쓸 수 있습니다.
앞의 예를 이어서, 레이아웃의 컬럼 개수를 모르는 경우 다음과 같이 쓸 수 있습니다:
column-rule-color: gray, repeat(auto, red, blue), gray;
그러면 첫 번째와 마지막 컬럼 갭에는 회색이, 중간 갭에는 빨강과 파랑이 반복되어 적용됩니다.

repeat()의 두 번째 인수는 해당 repeat()가 들어가는 속성에서 허용하는 값들의 쉼표 구분 목록이어야 합니다.

4.6. 갭에 갭 장식 값 할당하기

갭 장식은 값 할당 전,거터 축소(gutter collapsing)가 적용된 이후입니다. 주어진 축소된 거터 세트는 정확히 하나의 갭 장식을 소비합니다. 그 다음 갭 장식은 다음 거터(혹은 축소된 거터들의 세트)에 적용되므로, 축소된 거터들은 장식 목적상 하나의 으로 간주됩니다.

갭 장식 값을 할당하기 위해 values 값 리스트를 gaps 갭 리스트에 할당할 때:
  1. values 안의 모든 정수 반복자를 해당 값으로 확장하여 치환합니다.
  2. 리스트에 auto 반복자가 없으면:
    1. values의 첫 아이템, gaps의 첫 아이템부터 시작해, 각각 값과 갭을 1:1로 할당합니다. 값이 갭보다 적으면 values를 처음부터 반복하여 필요 수만큼 할당합니다.
    2. 알고리즘 종료.
  3. valuesauto 반복자가 포함된 경우: leading countauto 반복자 전의 값 개수, trailing countauto 반복자 이후의 값 개수입니다.
  4. gaps를 다음과 같이 구분합니다:
    1. leading gapsgaps의 첫 leading count
    2. trailing gapsleading gaps를 뺀 gaps 마지막 trailing count
    3. auto gaps는 위의 leading gaps, trailing gaps를 제외한 나머지 gaps
  5. leading gaps가 비어있지 않으면 해당 부분에 values 앞에서 leading count개 값을 할당합니다.
  6. trailing gaps가 비어있지 않으면 해당 부분에 values 뒤에서 trailing count개 값을 할당합니다.
  7. auto gaps가 비어있지 않으면, auto 반복자의 두 번째 인자 값 리스트를 auto gaps에 할당합니다.
테스트

4.7. 목록 값의 보간

repeat() 값이나 rule-color 또는 rule-width의 값 목록을 보간할 때, 보간은 다음의 두 단계로 진행됩니다:

  1. 확장: 모든 정수 반복자를 해당하는 값 목록으로 확장합니다.
  2. 목록 보간: 확장된 목록들에 대해 반복 가능한 목록 보간 알고리즘을 적용하여, 각 항목을 대응 항목과 보간합니다.
@keyframes example {
  from { column-rule-width: 10px; }
  to   { column-rule-width: 20px, 40px; }
}

위 값들을 보간하면 "from"과 "to" 값이 확장되어 동일한 길이의 목록들이 생성됩니다:

From:   10px, 10px
At 50%: 15px, 25px
To:     20px, 40px
@keyframes example {
  from { column-rule-width: repeat(2, 5px, 10px); }
  to   { column-rule-width: repeat(2, 15px, 20px); }
}

위 값들을 보간하면 "from"과 "to" 값이 확장되어 동일한 길이의 목록들이 생성됩니다:

From:    5px, 10px,  5px, 10px
At 50%: 10px, 15px, 10px, 15px
To:     15px, 20px, 15px, 20px
@keyframes example {
  from { column-rule-width: repeat(2, 10px, 20px); }
  to   { column-rule-width: 20px; }
}

위 값들을 보간하면 "from"과 "to" 값이 확장되어 동일한 길이의 목록들이 생성됩니다:

From:   10px, 20px, 10px, 20px
At 50%: 15px, 20px, 15px, 20px
To:     20px, 20px, 20px, 20px
@keyframes example {
  from { column-rule-width: repeat(2, 10px, 20px); }
  to   { column-rule-width: 20px, 30px; }
}

위 값들을 보간하면 "from"과 "to" 값이 확장되어 동일한 길이의 목록들이 생성됩니다:

From:   10px, 20px, 10px, 20px
At 50%: 15px, 25px, 15px, 25px
To:     20px, 30px, 20px, 30px

만약 우리가 보간하려는 두 목록(fromto) 중 어느 하나라도 auto 반복자를 포함한다면:

  1. fromto 각각을 세그먼트로 분할합니다. 이는 갭 장식 값을 할당하는 방식과 유사합니다:
    1. leading valuesauto 반복자 전의 값으로 둡니다.
    2. trailing valuesauto 반복자 이후의 값으로 둡니다.
    3. auto valuesauto 반복자 내부의 값으로 둡니다.
  2. fromto 중 오직 하나만 auto 반복자를 포함한다면, 불연속(discrete) 보간으로 처리합니다.
  3. 각 세그먼트의 정수 반복자는 모두 확장합니다.
  4. fromleading values 길이와 toleading values 길이가 일치하지 않으면 불연속 보간으로 처리합니다. fromtrailing values 길이와 totrailing values 길이가 일치하지 않으면 불연속 보간으로 처리합니다.
  5. fromto가 모두 auto 반복자를 갖고, 위에서 설명한 세그먼트의 길이가 일치하면 각 auto values의 값 목록에 repeatable list 보간을 적용합니다.
@keyframes example {
  from { column-rule-width: 10px, repeat(auto, 20px), 30px }
  to   { column-rule-width: 20px, repeat(auto, 40px), 40px }
}

fromto 전반의 leading valuestrailing values 길이가 일치하므로, 우리는 각 세그먼트에 대해 반복 가능한 목록 알고리즘을 적용할 수 있습니다.

From:   10px, repeat(auto, 20px), 30px
At 50%: 15px, repeat(auto, 30px), 35px
To:     20px, repeat(auto, 40px), 40px
@keyframes example {
  from { column-rule-width: 10px, 20px, repeat(auto, 20px), 30px }
  to   { column-rule-width: 20px, 30px, repeat(auto, 40px, 50px), 40px }
}

fromto 전반의 leading valuestrailing values 길이가 일치하므로, 우리는 각 세그먼트에 대해 반복 가능한 목록 알고리즘을 적용할 수 있습니다.

From:   10px, 20px, repeat(auto, 20px, 20px), 30px
At 50%: 15px, 25px, repeat(auto, 30px, 35px), 35px
To:     20px, 30px, repeat(auto, 40px, 50px), 40px
@keyframes example {
  from { column-rule-width: 10px, repeat(auto, 20px) }
  to   { column-rule-width: 20px, 30px, repeat(auto, 40px, 50px) }
}

fromleading values 길이와 toleading values 길이가 일치하지 않으므로, 우리는 불연속 보간으로 되돌아갑니다.

@keyframes example {
  from { column-rule-width: 10px, repeat(auto, 20px), 30px }
  to   { column-rule-width: 20px, repeat(auto, 40px), 40px, 50px }
}

fromtrailing values 길이와 totrailing values 길이가 일치하지 않으므로, 우리는 불연속 보간으로 되돌아갑니다.

@keyframes example {
  from { column-rule-width: 10px, repeat(auto, 20px), 30px }
  to   { column-rule-width: 20px }
}

오직 from만이 auto 반복자를 포함하므로, 우리는 불연속 보간으로 되돌아갑니다.

테스트

4.8. 직렬화

column-rule, row-rule, 및 rule 약어는 구성 요소인 롱핸드 속성들로부터 직렬화되지만, 이는 롱핸드 속성들이 반복자 정렬(repeater aligned)된 경우에만 해당합니다. 롱핸드 속성들이 반복자 정렬되지 않은 경우, 약어는 빈 문자열로 직렬화됩니다.

W, S, C를 각각 너비, 스타일, 색상 롱핸드 속성들의 값이라고 하자. 각 값은 항목들의 목록이며, 항목은 단일 값이거나 repeat() 표기일 수 있습니다. 롱핸드 속성들이 반복자 정렬되었다고 함은 다음 모든 조건이 참일 때에만 성립합니다:

  1. W, SC가 모두 동일한 항목 수를 갖습니다.

  2. 각 항목 인덱스 i에 대해, W[i], S[i] 및 C[i]는 모두 동일한 형태를 가집니다:

    1. 이들은 모두 비반복 값(non-repeat values), 모두 정수 반복자(integer repeaters), 또는 모두 auto 반복자여야 합니다.

    2. 만약 이들이 정수 반복자라면, <integer> 값들이 동일해야 합니다.

    3. repeat() 표기법은 동일한 수의 값을 포함해야 합니다.

이 약어 선언:

column-rule: 1px solid red, 2px dashed green, 3px dotted blue;

는 다음과 같은 롱핸드 값들로 분해됩니다:

column-rule-width: 1px, 2px, 3px;
column-rule-style: solid, dashed, dotted;
column-rule-color: red, green, blue;

롱핸드들이 반복자 정렬되어 있으므로, 이들은 원래의 약어 값으로 동일하게 직렬화됩니다: 세 속성 모두 동일한 항목 수(3)를 가지며, 각 항목은 단일 값입니다(반복자가 아님).

세 롱핸드가 약어에서 파생된 경우가 아니라 직접 지정된 경우에도 동일한 동작이 발생합니다.

이 약어 선언:

column-rule: 1px solid red, repeat(2, 2px dashed green);

는 다음과 같은 롱핸드 값들로 분해됩니다:

column-rule-width: 1px, repeat(2, 2px);
column-rule-style: solid, repeat(2, dashed);
column-rule-color: red, repeat(2, green);

롱핸드들이 반복자 정렬되어 있으므로, 이들은 원래의 약어 값으로 동일하게 직렬화됩니다: 세 속성 모두 동일한 항목 수(2)를 가지며, 각 인덱스에서 항목들의 타입이 일치합니다 (인덱스 0에서 단일 값, 인덱스 1에서 정수 반복자), 정수 반복자들은 동일한 반복 횟수(2)를 가지며, 정수 반복자들이 포함하는 값들의 수(1)도 같습니다.

세 롱핸드가 약어에서 파생된 경우가 아니라 직접 지정된 경우에도 동일한 동작이 발생합니다.

이 약어 선언:

column-rule: repeat(auto, 1px solid red, 2px dashed green);

는 다음과 같은 롱핸드 값들로 분해됩니다:

column-rule-width: repeat(auto, 1px, 2px);
column-rule-style: repeat(auto, solid, dashed);
column-rule-color: repeat(auto, red, green);

롱핸드들이 반복자 정렬되어 있으므로, 이들은 원래의 약어 값으로 동일하게 직렬화됩니다: 세 속성 모두 동일한 항목 수(1)를 가지며, 각 항목은 auto 반복자이고, auto 반복자들이 포함하는 값들의 수(2)도 같습니다.

세 롱핸드가 약어에서 파생된 경우가 아니라 직접 지정된 경우에도 동일한 동작이 발생합니다.

다음 선언들:

column-rule: repeat(auto, 1px solid red, 2px dashed green);
column-rule-width: repeat(auto, 3px, 4px, 5px);

는 다음과 같은 롱핸드 값들로 분해됩니다:

column-rule-width: repeat(auto, 3px, 4px, 5px);
column-rule-style: repeat(auto, solid, dashed);
column-rule-color: repeat(auto, red, green);

column-rule 약어는 롱핸드들이 반복자 정렬되어 있지 않기 때문에 빈 문자열로 직렬화됩니다: auto 반복자들이 포함하는 값들의 수가 서로 다릅니다.

세 롱핸드가 약어에서 파생된 경우가 아니라 직접 지정된 경우에도 동일한 동작이 발생합니다.

다음 선언들:

column-rule: repeat(2, 1px solid red, 2px dashed green);
column-rule-style: dashed, dotted, solid;

는 다음과 같은 롱핸드 값들로 분해됩니다:

column-rule-width: repeat(2, 1px, 2px);
column-rule-style: dashed, dotted, solid;
column-rule-color: repeat(2, red, green);

column-rule 약어는 롱핸드들이 반복자 정렬되어 있지 않기 때문에 빈 문자열로 직렬화됩니다: 인덱스 0의 항목들이 타입이 일치하지 않습니다 (너비와 색상은 정수 반복자, 스타일은 단일 값).

세 롱핸드가 약어에서 파생된 경우가 아니라 직접 지정된 경우에도 동일한 동작이 발생합니다.

다음 선언들:

column-rule: repeat(2, 1px solid red, 2px dashed green);
column-rule-color: repeat(4, red, cyan);

는 다음과 같은 롱핸드 값들로 분해됩니다:

column-rule-width: repeat(2, 1px, 2px);
column-rule-style: repeat(2, solid, dashed);
column-rule-color: repeat(4, red, cyan);

column-rule 약어는 롱핸드들이 반복자 정렬되어 있지 않기 때문에 빈 문자열로 직렬화됩니다: 정수 반복자들의 반복 횟수가 서로 다릅니다.

세 롱핸드가 약어에서 파생된 경우가 아니라 직접 지정된 경우에도 동일한 동작이 발생합니다.

테스트

5. 감사의 글

이 명세서는 다음을 포함한 많은 사람들의 기여와 피드백으로 가능해졌습니다: Ahmad Shadeed, Alison Maher, Benoît Rouleau, Elika Etemad, Ian Kilpatrick, Javier Contreras Tenorio, Josh Tumath, Kurt Catti-Schmidt, Lea Verou, Oliver Williams, Rachel Andrew, Sam Davis Omekara Jr., Sebastian Zartner, Tab Atkins-Bittner, 그리고 CSS 워킹 그룹 회원들. Gap Decorations에 대한 초기 제안을 초안해 주신 Mats Palmgren께 특별한 감사를 전합니다.

6. 개인정보 보호 고려사항

이 명세서에 대해 보고된 새로운 개인정보 보호 고려사항은 없습니다.

7. 보안 고려사항

이 명세서에 대해 보고된 새로운 보안 고려사항은 없습니다.

8. 변경 사항

8.1. 2025-04-17 작업 초안 이후의 변경 사항

적합성

문서 규약

적합성 요구 사항은 설명적 주장과 RFC 2119 용어의 조합으로 표현됩니다. 이 문서의 규범적 부분에서 "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", 및 "OPTIONAL"이라는 핵심 단어들은 RFC 2119에 설명된 대로 해석되어야 합니다. 다만 가독성을 위해 이들 단어는 이 명세서에서 항상 대문자로만 표시되지는 않습니다.

이 명세서의 모든 텍스트는 비규범으로 명시된 절, 예시 및 주석을 제외하고는 규범적입니다. [RFC2119]

이 명세서의 예시는 "for example"이라는 말로 도입되거나 class="example"으로 규범적 텍스트와 구분되어 다음과 같이 제시됩니다:

이것은 정보성 예시의 예입니다.

정보성 주석은 "Note"라는 단어로 시작하며 class="note"로 규범적 텍스트와 구분되어 다음과 같이 제시됩니다:

참고: 이것은 정보성 주석입니다.

권고(advisements)는 특별한 주의를 환기시키기 위해 스타일링된 규범적 절이며 <strong class="advisement">로 규범적 텍스트와 구분되어 다음과 같이 제시됩니다: 사용자 에이전트는 접근 가능한 대안을 제공해야 합니다.

테스트

이 명세서의 내용과 관련된 테스트는 이와 같은 "Tests" 블록으로 문서화될 수 있습니다. 이러한 블록은 모두 비규범적입니다.


적합성 클래스

이 명세서에 대한 적합성은 세 가지 적합성 클래스로 정의됩니다:

스타일 시트
CSS 스타일 시트.
렌더러
사용자 에이전트(UA)로서 스타일 시트의 의미를 해석하고 이를 사용하는 문서를 렌더링하는 것.
저작 도구
사용자 에이전트(UA)로서 스타일 시트를 작성하는 것.

스타일 시트는 이 모듈에 정의된 문법을 사용하는 모든 선언이 일반 CSS 문법과 이 모듈에 정의된 각 기능의 개별 문법에 따라 유효한 경우 이 명세서에 적합한 것으로 간주됩니다.

렌더러는 스타일 시트를 적절한 명세들에 정의된 대로 해석하는 것 외에, 이 명세서에 의해 정의된 모든 기능을 올바르게 파싱하고 문서를 그에 맞게 렌더링함으로써 이 명세서에 적합한 것으로 간주됩니다. 다만 장치의 제약으로 인해 UA가 문서를 올바르게 렌더링하지 못하는 경우에는 그 UA를 비적합으로 보지 않습니다. (예: 단색 모니터에서 색을 렌더링할 의무는 없습니다.)

저작 도구는 이 모듈의 일반 CSS 문법 및 각 기능의 개별 문법에 따라 구문적으로 올바른 스타일 시트를 작성하고, 이 모듈에 설명된 스타일 시트의 다른 모든 적합성 요구 사항을 충족하면 이 명세서에 적합한 것으로 간주됩니다.

부분 구현

저자가 앞으로 호환되는 파싱 규칙을 활용하여 대체값을 지정할 수 있도록, CSS 렌더러는 사용 가능한 수준의 지원이 없는 모든 at-rule, 속성, 속성 값, 키워드 및 기타 구문적 구성요소들을 무효로 취급하고(그리고 적절히 무시)야 합니다. 특히 사용자 에이전트는 지원되지 않는 구성 값들을 선택적으로 무시하고 단일 다중값 속성 선언에서 지원되는 값들만 존중해서는 안 됩니다: 어떤 값이라도 무효로 간주된다면(지원되지 않는 값들이 반드시 그래야 하므로) CSS는 전체 선언을 무시하도록 요구합니다.

불안정 및 독점적 기능의 구현

미래의 안정적 CSS 기능과 충돌을 피하기 위해, CSSWG는 모범 사례를 따를 것을 권고합니다. 이는 불안정한 기능 및 CSS에 대한 독점 확장의 구현에 적용됩니다.

비실험적 구현

명세가 후보 권고(Candidate Recommendation) 단계에 도달하면, 비실험적 구현이 가능해지며 구현자는 명세에 따라 올바르게 구현되었음을 입증할 수 있는 CR 수준의 기능에 대해 접두사 없는 구현을 공개하는 것이 권장됩니다.

CSS 전반의 상호운용성을 확립하고 유지하기 위해, CSS Working Group은 비실험적 CSS 렌더러가 구현 보고서(필요한 경우 해당 구현 보고서에 사용된 테스트케이스도)를 W3C에 제출할 것을 요청합니다. W3C에 제출된 테스트케이스는 CSS Working Group의 검토 및 수정 대상이 됩니다.

테스트케이스 및 구현 보고서를 제출하는 방법에 대한 추가 정보는 CSS Working Group 웹사이트 https://www.w3.org/Style/CSS/Test/에서 확인할 수 있습니다. 질문은 public-css-testsuite@w3.org 메일링 리스트로 보내주시기 바랍니다.

색인

이 명세서에서 정의된 용어

참조로 정의된 용어

참고 문헌

규범적 참고문헌

[CSS-ALIGN-3]
Elika Etemad; Tab Atkins Jr.. CSS Box Alignment Module Level 3. 30 January 2026. WD. URL: https://www.w3.org/TR/css-align-3/
[CSS-BACKGROUNDS-3]
Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3. 11 March 2024. CRD. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-BREAK-4]
Rossen Atanassov; Elika Etemad. CSS Fragmentation Module Level 4. 18 December 2018. FPWD. URL: https://www.w3.org/TR/css-break-4/
[CSS-CASCADE-5]
Elika Etemad; Miriam Suzanne; Tab Atkins Jr.. CSS Cascading and Inheritance Level 5. 13 January 2022. CR. URL: https://www.w3.org/TR/css-cascade-5/
[CSS-COLOR-5]
Chris Lilley; Una Kravets; Lea Verou. CSS Color Module Level 5. 27 February 2026. WD. URL: https://www.w3.org/TR/css-color-5/
[CSS-FLEXBOX-1]
Elika Etemad; Tab Atkins Jr.; Rossen Atanassov. CSS Flexible Box Layout Module Level 1. 14 October 2025. CRD. URL: https://www.w3.org/TR/css-flexbox-1/
[CSS-GRID-1]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 1. 26 March 2025. CRD. URL: https://www.w3.org/TR/css-grid-1/
[CSS-GRID-2]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 2. 26 March 2025. CRD. URL: https://www.w3.org/TR/css-grid-2/
[CSS-GRID-3]
Tab Atkins Jr.; et al. CSS Grid Layout Module Level 3. 21 January 2026. WD. URL: https://www.w3.org/TR/css-grid-3/
[CSS-MULTICOL-1]
Florian Rivoal; Rachel Andrew. CSS Multi-column Layout Module Level 1. 16 May 2024. CR. URL: https://www.w3.org/TR/css-multicol-1/
[CSS-MULTICOL-2]
Florian Rivoal; Rachel Andrew. CSS Multi-column Layout Module Level 2. 19 December 2024. FPWD. URL: https://www.w3.org/TR/css-multicol-2/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 3. 22 March 2024. CRD. URL: https://www.w3.org/TR/css-values-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 4. 12 March 2024. WD. URL: https://www.w3.org/TR/css-values-4/
[CSS2]
Bert Bos; et al. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 7 June 2011. REC. URL: https://www.w3.org/TR/CSS2/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. March 1997. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[WEB-ANIMATIONS-1]
Brian Birtles; et al. Web Animations. 5 June 2023. WD. URL: https://www.w3.org/TR/web-animations-1/

정보성 참고문헌

[CSS-GAPS-1]
Kevin Babbitt. CSS Gap Decorations Module Level 1. 17 April 2025. FPWD. URL: https://www.w3.org/TR/css-gaps-1/

속성 색인

이름 초깃값 적용 대상 상속 % 애니메이션 유형 정식 순서 계산값
column-rule <gap-rule-list> | <gap-auto-rule-list> 개별 속성 참고 개별 속성 참고 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
column-rule-break none | normal | intersection normal grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 해당 없음 비연속형 문법 순서 명시된 그대로
column-rule-color <line-color-list> | <auto-line-color-list> currentcolor grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 해당 없음 반복가능 목록, 참조 . 문법 순서 명시된 그대로
column-rule-edge-inset <length-percentage> [ <length-percentage> ]? 개별 속성 참고 column-rule-edge-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-start, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-start, row-rule-interior-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
column-rule-edge-inset-end <length-percentage> 0 grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 교차 gap 너비 참조 계산값 타입에 따라 문법 순서 명시된 그대로
column-rule-edge-inset-start <length-percentage> 0 grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 교차 gap 너비 참조 계산값 타입에 따라 문법 순서 명시된 그대로
column-rule-inset <'column-rule-edge-inset'> [ / <'column-rule-interior-inset'> ]? 개별 속성 참고 column-rule-edge-inset, column-rule-interior-inset, row-rule-edge-inset, row-rule-interior-inset와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
column-rule-inset-end <length-percentage> 개별 속성 참고 column-rule-edge-inset-start, column-rule-interior-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-interior-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
column-rule-inset-start <length-percentage> 개별 속성 참고 column-rule-edge-inset-start, column-rule-interior-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-interior-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
column-rule-interior-inset <length-percentage> [ <length-percentage> ]? 개별 속성 참고 column-rule-edge-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-start, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-start, row-rule-interior-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
column-rule-interior-inset-end <length-percentage> 0 grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 교차 gap 너비 참조 계산값 타입에 따라 문법 순서 명시된 그대로
column-rule-interior-inset-start <length-percentage> 0 grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 교차 gap 너비 참조 계산값 타입에 따라 문법 순서 명시된 그대로
column-rule-style <line-style-list> | <auto-line-style-list> none grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 해당 없음 비연속형 문법 순서 명시된 그대로
column-rule-visibility-items all | around | between all grid 컨테이너, multicol 컨테이너 아니오 해당 없음 비연속형 문법 순서 명시된 그대로
column-rule-width <line-width-list> | <auto-line-width-list> medium grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 해당 없음 반복가능 목록, 참조 . 문법 순서 절대 길이 목록, 경계선 너비로 snap 처리됨
row-rule <gap-rule-list> | <gap-auto-rule-list> 개별 속성 참고 개별 속성 참고 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
row-rule-break none | normal | intersection normal grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 해당 없음 비연속형 문법 순서 명시된 그대로
row-rule-color <line-color-list> | <auto-line-color-list> currentcolor grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 해당 없음 반복가능 목록, 참조 . 문법 순서 명시된 그대로
row-rule-edge-inset <length-percentage> [ <length-percentage> ]? 개별 속성 참고 column-rule-edge-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-start, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-start, row-rule-interior-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
row-rule-edge-inset-end <length-percentage> 0 grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 교차 gap 너비 참조 계산값 타입에 따라 문법 순서 명시된 그대로
row-rule-edge-inset-start <length-percentage> 0 grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 교차 gap 너비 참조 계산값 타입에 따라 문법 순서 명시된 그대로
row-rule-inset <'column-rule-edge-inset'> [ / <'column-rule-interior-inset'> ]? 개별 속성 참고 column-rule-edge-inset, column-rule-interior-inset, row-rule-edge-inset, row-rule-interior-inset와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
row-rule-inset-end <length-percentage> 개별 속성 참고 column-rule-edge-inset-start, column-rule-interior-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-interior-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
row-rule-inset-start <length-percentage> 개별 속성 참고 column-rule-edge-inset-start, column-rule-interior-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-interior-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
row-rule-interior-inset <length-percentage> [ <length-percentage> ]? 개별 속성 참고 column-rule-edge-inset-start, column-rule-edge-inset-end, column-rule-interior-inset-start, column-rule-interior-inset-end, row-rule-edge-inset-start, row-rule-edge-inset-end, row-rule-interior-inset-start, row-rule-interior-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
row-rule-interior-inset-end <length-percentage> 0 grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 교차 gap 너비 참조 계산값 타입에 따라 문법 순서 명시된 그대로
row-rule-interior-inset-start <length-percentage> 0 grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 교차 gap 너비 참조 계산값 타입에 따라 문법 순서 명시된 그대로
row-rule-style <line-style-list> | <auto-line-style-list> none grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 해당 없음 비연속형 문법 순서 명시된 그대로
row-rule-visibility-items all | around | between all grid 컨테이너, multicol 컨테이너 아니오 해당 없음 비연속형 문법 순서 명시된 그대로
row-rule-width <line-width-list> | <auto-line-width-list> medium grid 컨테이너, flex 컨테이너, multicol 컨테이너, grid lanes 컨테이너 아니오 해당 없음 반복가능 목록, 참조 . 문법 순서 절대 길이 목록, 경계선 너비로 snap 처리됨
rule <'column-rule'> 개별 속성 참고 column-rule 및 row-rule과 동일 아니오 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-break <'column-rule-break'> 개별 속성 참고 column-rule-break 및 row-rule-break와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-color <'column-rule-color'> 개별 속성 참고 column-rule-color 및 row-rule-color와 동일 아니오 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-edge-inset <'column-rule-edge-inset'> 개별 속성 참고 column-rule-edge-inset 및 row-rule-edge-inset과 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-inset <'column-rule-inset'> 개별 속성 참고 column-rule-inset 및 row-rule-inset과 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-inset-end <'column-rule-inset-end'> 개별 속성 참고 column-rule-inset-end 및 row-rule-inset-end와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-inset-start <'column-rule-inset-start'> 개별 속성 참고 column-rule-inset-start 및 row-rule-inset-start와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-interior-inset <'column-rule-interior-inset'> 개별 속성 참고 column-rule-interior-inset 및 row-rule-interior-inset과 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-overlap row-over-column | column-over-row row-over-column grid 컨테이너, flex 컨테이너, grid lanes 컨테이너 아니오 해당 없음 비연속형 문법 순서 명시된 그대로
rule-style <'column-rule-style'> 개별 속성 참고 column-rule-style 및 row-rule-style과 동일 아니오 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-visibility-items <'column-rule-visibility-items'> 개별 속성 참고 column-rule-visibility-items 및 row-rule-visibility-items와 동일 개별 속성 참고 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고
rule-width <'column-rule-width'> 개별 속성 참고 column-rule-width 및 row-rule-width와 동일 아니오 개별 속성 참고 개별 속성 참고 문법 순서 개별 속성 참고