CSS 리드믹 사이징 모듈 레벨 1

W3C 작업 초안,

이 문서에 대한 추가 세부 정보
이 버전:
https://www.w3.org/TR/2026/WD-css-rhythm-1-20260217/
최신 게시 버전:
https://www.w3.org/TR/css-rhythm-1/
편집자 초안:
https://drafts.csswg.org/css-rhythm/
이력:
https://www.w3.org/standards/history/css-rhythm-1/
피드백:
CSSWG 이슈 저장소
사양 내 인라인
편집자:
(Google)
Elika J. Etemad / fantasai (Apple)
이 사양에 대한 편집 제안:
GitHub 편집기
테스트 스위트:
https://wpt.fyi/results/css/css-rhythm/

초록

이 모듈에는 콘텐츠 크기를 단위 크기의 배수에 맞춰 정렬하기 위한 CSS 기능이 포함되어 있습니다.

CSS는 구조화된 문서 (예: HTML 및 XML)의 렌더링을 설명하는 언어로, 화면, 종이 등에서 사용됩니다.

이 문서의 상태

이 절은 발행 시점의 이 문서 상태를 설명합니다. 현재 W3C 발행물 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인에서 확인할 수 있습니다.

이 문서는 CSS 워킹 그룹에 의해 작업 초안으로 발행되었으며, 권고 트랙을 사용합니다. 작업 초안으로의 발행은 W3C 및 그 회원의 보증을 의미하지 않습니다.

이 문서는 초안 문서이며 언제든지 업데이트, 대체되거나 다른 문서에 의해 폐기될 수 있습니다. 진행 중인 작업 이외의 것으로 이 문서를 인용하는 것은 부적절합니다.

피드백은 GitHub에 이슈를 등록하여(권장), 제목에 사양 코드 “css-rhythm”을 포함해 다음과 같이 보내 주세요: “[css-rhythm] …의견 요약…”. 모든 이슈와 코멘트는 보관됩니다. 또는, (보관된) 공개 메일링 리스트 www-style@w3.org로 피드백을 보낼 수도 있습니다.

이 문서는 2025년 8월 18일 W3C 프로세스 문서의 적용을 받습니다.

이 문서는 W3C 특허 정책 하에서 운영되는 그룹에 의해 작성되었습니다. W3C는 해당 그룹의 산출물과 관련하여 공개된 모든 특허 공개에 대한 공개 목록을 유지하며; 해당 페이지에는 특허 공개 방법에 대한 지침도 포함되어 있습니다. 어떤 개인이 자신이 믿기에 필수 청구항(Essential Claim(s))을 포함하는 특허에 대해 실제로 알고 있는 경우, W3C 특허 정책 6절에 따라 그 정보를 공개해야 합니다.

1. 소개

이 사양은 사용 사례에서 원하는 규칙에 따라 CSS 객체의 크기를 제어하기 위한 기능을 제공합니다.

CSS 객체의 크기가 스텝 단위의 배수가 되도록 제어하는 것은 많은 경우에 바람직합니다. 이 사양의 이 레벨은 다음의 경우에 초점을 맞춥니다.

블록을 배수 단위로 쌓음으로써, 작성자는 열, 페이지, 스크롤 스냅된 bocks 또는 절대 배치된 여러 블록에 걸쳐 콘텐츠를 정렬하여 수직 리듬을 유지할 수 있습니다.

또한 라인 박스의 높이를 제어함으로써, 서로 다른 글꼴의 텍스트 줄도 일관된 시각적 결과를 만들어 가독성을 높일 수 있습니다.

다단 문서에서 그림과 서로 다른 크기의 텍스트를 통해 수직 리듬을 유지한 예.

1.1. 동아시아 캐주얼 수직 리듬

동아시아에서는 수직 리듬의 캐주얼 변형이 널리 사용됩니다.

수직 리듬은 일반적으로 전문 타이포그래피에서 사용됩니다. 이는 가독성을 향상시키지만, 그 간격 제약은 공간에 대한 신중하고 면밀한 설계를 요구합니다.

동아시아의 캐주얼 변형은 원래 80년대 전통적인 워드 프로세서의 기술적 제약의 산물이었습니다. 그러나 더 현대적인 기술에서 그 기술적 제약이 해소되자, 표의문자(ideographic) 문자의 정사각형에 가까운 시각적 특성의 도움을 받아, 동아시아 작성자들은 그 특성의 일부를 유지하는 것을 선호했습니다.

이 수직 리듬 변형에서는, 비전문 작성자가 사용하기 쉽도록 요구사항이 완화됩니다. 텍스트는 여전히 리듬 위에 놓이므로, 대부분의 표의문자 문자는 대체로 격자 위에 위치하지만, 작성자가 테두리, 마진 또는 리듬을 깨뜨릴 수 있는 다른 객체를 지정하면, 리듬은 강제되기보다는 이동됩니다. 엄격한 수직 리듬은 이러한 경우 강제 점프로 인해 비전문 작성자를 종종 놀라게 하지만, 이 변형은 텍스트의 리듬과 비전문 작성자를 위한 사용 편의성을 결합합니다.

이 변형은 90년대 중반 이후 동아시아에서 매우 널리 받아들여져, 동아시아에서 사용되는 대부분의 주요 워드 프로세서가 기본적으로 유사한 기능을 제공했습니다.

동아시아 출판 타이포그래피에서 수직 리듬은 중요한 특성 중 하나이지만, 다른 특성과 비교했을 때의 우선순위는 문서 유형에 따라 달라집니다. 단일 열 문서에서는, 다단 문서에 비해 우선순위가 더 약합니다. 텍스트는 수직 리듬 위에 있어야 하지만, 테두리, 마진 또는 다른 특성이 리듬보다 우선하도록 하는 것이 종종 선호됩니다. 이러한 경우 리듬은 캐주얼 변형과 유사하게 이동됩니다.

이 사양에서는, line-height-step 속성이 block-step 속성 또는 line-grid 속성과의 조합 없이 사용될 때, 동아시아 캐주얼 수직 리듬과 유사한 효과를 생성합니다.

이는 또한 동아시아 출판 타이포그래피에도 유용할 수 있으며, 원하는 수직 리듬의 강도에 따라 달라집니다.

다른 수직 리듬의 경우에는, block-step 속성 또는 line-grid 속성을 사용하거나, 또는 line-height-step 속성을 이들과 함께 사용하게 될 것으로 예상됩니다.

1.2. 값 정의

이 사양은 CSS 속성 정의 관례[CSS2]에서 따르며, 값 정의 구문[CSS-VALUES-3]에서 사용합니다. 이 사양에서 정의되지 않은 값 유형은 CSS Values & Units [CSS-VALUES-3]에서 정의됩니다. 다른 CSS 모듈과의 조합은 이러한 값 유형의 정의를 확장할 수 있습니다.

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

2. 블록 수준 박스 높이 조정

가장 흔한 타이포그래피 리듬 문제는 블록 수준의 침범입니다: 연속된 단락 수준 텍스트가 삽화나 제목과 같이 크기가 다른 콘텐츠에 의해 중단되면, 줄-대-줄 리듬이 깨질 수 있습니다. 블록 스텝 속성은 이러한 요소의 높이를 지정된 스텝 크기�� 배수로 제한함으로써 리듬 간격에 맞추어 끼워 넣을 수 있게 합니다. 이를 통해 중단 전후의 콘텐츠가 연속적인 리듬을 유지할 수 있습니다.

제목과 블록 인용의 글꼴 크기와 라인 높이가 서로 달��, 열 전반에서 텍스트가 고르지 않게 됩니다.
블록의 앞뒤에(색상 테두리로 표시) 공간을 삽입하면 수직 리듬이 복원됩니다.

블록 스텝 속성을 일관되게 사용하면 병렬 콘텐츠 흐름에 필요한 엄격한 격자 레이아웃을 만들 수 있지만, 요소별로 스텝 크기를 지정하면 일부 중단 요소는 흐름에서 자연스러운 크기를 유지하고, 이후 수직 리듬을 다시 시작할 수도 있습니다. 이는 단일 열 레이아웃에서 유용할 수 있는데, 시각적 연속성을 위해 수직 리듬을 유지하는 것이 중요하지만 나란히 정렬할 대상이 없기 때문입니다. 이러한 경우에는, 전후 흐름을 시각적으로 단절시키는 큰 중단 요소에 대해 연속 격자에 대한 엄격한 준수보다 항목 주변의 최적 간격을 우선시할 수 있습니다 (초기값인 block-step: none을 지정함으로써).

이 제안은 block-step-size 속성만으로도 단순화할 수 있으며, block-step로 축약된 형태를 통해서만 표현할 수 있습니다. 이 레벨은 많아야 block-step-sizeblock-step-insert만 포함할 가능성이 높으며, block-step-alignblock-step-round은 향후 필요가 생기면 추가될 것입니다. 전체 설계는 현재 논의를 위해서와 향후 참고를 위해 본문에 기술되어 있습니다.

이 제안은 현재 블록 수준 박스에만 적용되도록 정의되어 있습니다. 이 제한은 첫 번째 반복을 단순화하기 위한 것일 뿐이며, 궁극적으로는 지정된 높이를 존중하는 모든 레이아웃 모드로 확장되어야 합니다.

2.1. 스텝 크기 지정: block-step-size 속성

Name: block-step-size
Value: none | <length [0,∞]>
Initial: none
Applies to: 블록 수준 박스
Inherited: 아니오
Percentages: N/A
Computed value: 지정된 키워드 또는 절대 길이
Canonical order: 문법에 따름
Animation type: 계산된 값 유형에 따름
Tests

이 속성은 블록 수준 박스의 블록 크기에 대한 스텝 단위를 정의합니다. 스텝 단위가 양의 <length>로 설정되면, 박스의 바깥쪽 높이는 반올림되어 ( block-step-round 참조) 단위의 가장 가까운 배수로 맞춰집니다. 음수 <length> 값은 유효하지 않습니다.

none 이외의 값은 박스가 독립적인 포매팅 컨텍스트를 설정하게 합니다.

참고: 이는 조상(ancestor)의 플로트가 박스 안으로 돌출되는 것으로 인해 발생하는 복잡성을 피하기 위함입니다: 유효한 상단 마진이나 패딩을 변경하면 어떤 콘텐츠가 플로트의 영향을 받는지와 그 정도가 바뀔 수 있어, 재레이아웃이 필요할 수 있습니다 (그리고 박스의 높이가 내용에 의존하는 경우 잠재적으로 순환을 만들 수 있습니다).

이러한 순환을 끊는 가장 좋은 방법일까요? [Issue #1901]

마진이 겹쳐지는 상황에서는, 바깥쪽 크기를 계산할 때 박스 자체의 마진만 고려됩니다.

박스가 조각(fragment)으로 나뉘는 경우, 스텝 사이징은 각 조각마다 적용됩니다.

이를 text-box-edge/text-box-trim의 상속 및 적용 모델과 정렬해야 할까요? [Issue #1902]

2.2. 간격 유형 지정: block-step-insert 속성

Name: block-step-insert
Value: margin-box | padding-box | content-box
Initial: margin-box
Applies to: block-level boxes
Inherited: no
Percentages: N/A
Computed value: specified keyword
Canonical order: per grammar
Animation type: discrete
Tests

이 속성은 block-step-size 적용으로부터 도출되는 추가 간격이 ( padding처럼) 박스 테두리 안쪽에 추가 공간으로 삽입되는지, 또는 ( margin처럼) 박스 테두리 바깥쪽에 삽입되는지, 혹은 콘텐츠에 사용 가능한 높이를 변경하는지 ( min-height 또는 max-height처럼) 를 지정합니다.

값의 의미는 다음과 같습니다:

margin-box
block-step-size로 인한 조정 결과로 생기는 추가 공간은 박스 테두리 바깥쪽에 추가 마진으로 삽입됩니다.
padding-box
block-step-size로 인한 조정 결과로 생기는 추가 공간은 박스 테두리 안쪽에 추가 패딩으로 삽입됩니다.
content-box
block-step-size로 인한 조정 결과로 생기는 추가 공간은 콘텐츠 영역의 높이를 증가시켜 박스 테두리 안쪽에 삽입됩니다.

2.3. 정렬 지정: block-step-align 속성

Name: block-step-align
Value: auto | center | start | end
Initial: auto
Applies to: block-level boxes
Inherited: no
Percentages: N/A
Computed value: specified keyword
Canonical order: per grammar
Animation type: discrete
Tests

이 속성은 block-step-size 적용으로부터 도출되는 추가 간격이 박스의 앞쪽에 삽입되는지, 뒤쪽에 삽입되는지, 또는 양쪽으로 나뉘어 삽입되는지를 지정합니다.

값의 의미는 다음과 같습니다:

auto
block-step-insertmargin-box인 경우: align-selfstart, end, 또는 center이면, 해당 값으로 취급하고, 그렇지 않으면 center로 취급합니다.
center
block-step-size로 인한 조정 결과로 생기는 추가 공간은 나뉘어, 박스의 양쪽에 절반씩 적용됩니다.
start
block-step-size로 인한 조정 결과로 생기는 추가 공간은 박스의 끝(end) 쪽에 삽입됩니다.
end
block-step-size로 인한 조정 결과로 생기는 추가 공간은 박스의 시작(start) 쪽에 삽입됩니다.

align-content와의 상호작용을 정의하세요. [Issue #11206]

모든 경우에서, 강제되지 않은 조각화 분할에 의해 잘리거나 생략되는 마진에는 추가 간격을 더할 수 없습니다 ( [CSS3-PAGE][CSS-BREAK-3] 참조); 따라서 block-step-insertmargin-box인 경우, block-step-size 적용으로부터 도출되는 모든 추가 공간은 조각의 반대쪽에 삽입되어야 합니다 ( block-step-align와 무관하게).

이 규칙이 올바른가요? 아니면 조각화 경계에서도 block-step-align을 존중해야 할까요? [Issue #1260]

2.4. 반올림 방법: block-step-round 속성

Name: block-step-round
Value: up | down | nearest
Initial: up
Applies to: block-level boxes
Inherited: no
Percentages: N/A
Computed value: specified keyword
Canonical order: per grammar
Animation type: discrete
Tests

이 속성은 block-step-size로 인해 발생하는 조정이 양의 공간을 삽입하는지, 또는 음의 공간을 삽입하는지를 지정합니다.

값의 의미는 다음과 같습니다:

up
박스의 바깥쪽 크기는 증가하며(양의 공간이 삽입됨), block-step-size 제약을 충족합니다.
down
박스의 바깥쪽 크기는 감소하며(음의 공간이 삽입됨), block-step-size 제약을 충족합니다.
nearest
박스의 바깥쪽 크기는 증가( up과 같음)하거나 감소( down과 같음)하며—​어느 쪽이든 절대 변화량이 더 작은 쪽을 선택하여—​ block-step-size 제약을 충족합니다. 두 선택지가 동일한 변화량을 만든다면, 크기는 증가합니다.

2.5. 블록 스텝 조정 단축 표기: block-step 단축 표기

Name: block-step
Value: <'block-step-size'> || <'block-step-insert'> || <'block-step-align'> || <'block-step-round'>
Initial: 개별 속성 참조
Applies to: block-level boxes
Inherited: no
Percentages: N/A
Computed value: 개별 속성 참조
Animation type: 개별 속성 참조
Canonical order: 문법에 따름
Tests

단축 속성block-step-size, block-step-insert, block-step-align, 그리고 block-step-round를 한 선언에서 설정할 수 있게 합니다. 생략된 값은 해당 속성의 초기값으로 설정됩니다.

작성자는 개별 롱핸드가 독립적으로 캐스케이드되어야 하는 특정 필요가 없는 한, 롱핸드 대신 이 단축 표기를 사용할 것을 권장합니다.

3. 라인 박스 높이 조정: line-height-step 속성

Name: line-height-step
Value: <length [0,∞]>
Initial: 0
Applies to: block containers
Inherited: yes
Percentages: N/A
Computed value: absolute length
Canonical order: per grammar
Animation type: by computed value type

이 속성은 라인 박스 높이에 대한 스텝 단위를 정의합니다. 스텝 단위는 수직 리듬의 길이로, 보통 본문 텍스트의 한 기준선(baseline)에서 다음 기준선까지의 거리입니다. 본문 텍스트는 하나의 스텝 단위 안에 들어가야 하며, 제목과 같은 더 높은 줄은 두 개 이상의 스텝 단위 높이를 가져야 합니다. 수직 리듬은 모든 줄의 높이를 스텝 단위의 정수 배로 만들면서 생성됩니다.

스텝 단위가 양의 <length>로 설정되면, 라인 박스 높이는 단위의 가장 가까운 배수로 올림 반올림됩니다. 음수 <length> 값은 유효하지 않습니다.

[CSS2] §10.8 라인 높이 계산은 인라인 수준 콘텐츠로부터 라인 박스의 높이를 계산하는 방법을 정의합니다. 반올림은 계산된 라인 박스 높이에 적용되며, 추가 공간은 라인 박스의 over 쪽과 under 쪽에 동일하게 분배되어, 원래 라인 박스가 스텝 단위 배수의 중앙에 위치한 것처럼 보이게 합니다. 이 조정은 라인 박스 안에 조정된 A'와 D'를 가진 인라인 수준 박스가 있다고 가정함으로써 수행됩니다. 이 인라인 수준 박스는 vertical-align 속성의 정렬 지점에 영향을 주지 않으며, 라인 박스에 대해 상대적으로 정렬하는 값의 경우에만 예외입니다.

계산된 라인 박스 높이를 올림 반올림하는 예.
이는 애니메이션 가능해야 할까요? 사용 사례는 없어 보이지만 일관성을 위해 필요할까요?

다음 예제에서는, 각 단락에서 라인 박스의 높이가 스텝 단위로 올림 반올림됩니다.

:root {
  font-size: 12pt;
  --my-grid: 18pt;
  line-height-step: var(--my-grid);
}
h1 {
  font-size: 20pt;
  margin-top: calc(2 * var(--my-grid));
}
p {
  margin: 0;
}

<h1>의 라인 박스는 하나의 스텝 단위에 들어맞지 않으므로 두 칸을 차지하지만, 여전히 두 개의 스텝 단위 안에서 중앙에 배치됩니다.

작성자는 위 예제처럼 스텝 단위의 배수가 되도록 마진이나 다른 속성을 유지하기 위해 var()calc()를 사용할 수 있습니다.

작성자가 원한다면, Sass 같은 도구를 사용해 이러��� 선언을 더 짧게 만들 수 있습니다.

$gu: 18px;

@function gu($n) {
  @return $n * $gu;
}

h1 {
  font-size: 20pt;
  margin: gu(1.2) auto gu(1.8);
}
일반적으로 line-height스텝 단위보다 낮게 설정하는 것이 권장됩니다. 사용된 라인 높이는 vertical-align의 사용이나 글꼴 폴백과 같은 여러 요인으로 인해 증가할 수 있습니다.

4. 개인정보 고려사항

이 사양은 “올바르게 구현하라”를 넘어서 새로운 개인정보 유출을 도입하지 않습니다.

5. 보안 고려사항

이 사양은 “올바르게 구현하라”를 넘어서 새로운 보안 고려사항을 도입하지 않습니다.

6. 감사의 글

이 사양은 다음 분들의 도움 없이는 가능하지 않았습니다: Masaharu Akutsu, Yoko Aoki, Takao Baba, Chris Eppstein, Ichiro Inaba, Jxck, Noriko Kase, Motoya Kinoshita, Shinyu Murakami, Tsutomu Nanjo, Kiyoshi Narishima, Charlie Neely, Takuya Nishimura, Katsuhiro Osumi, Florian Rivoal, Hiroshi Sakakibara, Alan Stearns, Masataka Yakura, KADOKAWA Corporation, PixelGrid Inc., 그리고 CSS 워킹 그룹 구성원들.

7. 변경사항

최초 공개 작업 초안 이후 변경사항은 다음을 포함합니다:

적합성

문서 관례

적합성 요구사항은 서술적 단언과 RFC 2119 용어를 조합하여 표현합니다. 핵심 단어 “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”, “SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “MAY”, 및 “OPTIONAL”은 이 문서의 규범적 부분에서 RFC 2119에 설명된 대로 해석되어야 합니다. 하지만 가독성을 위해, 이 사양에서는 이러한 단어들이 항상 모두 대문자로 표기되지는 않습니다.

이 사양의 모든 텍스트는 규범적이며, 명시적으로 비규범적이라고 표시된 절, 예제, 그리고 참고(note)만 예외입니다. [RFC2119]

이 사양의 예제는 “예를 들어(for example)” 라는 말로 소개되거나, 다음과 같이 class="example"로 규범적 텍스트와 구분되어 표시됩니다:

이것은 정보성(informative) 예제의 예입니다.

정보성 참고는 “Note”라는 단어로 시작하며, 다음과 같이 class="note"로 규범적 텍스트와 구분되어 표시됩니다:

참고(Note): 이것은 정보성 참고입니다.

권고(advisement)는 특별한 주의를 환기하도록 스타일링된 규범적 절이며, 다음과 같이 <strong class="advisement">로 다른 규범적 텍스트와 구분되어 표시됩니다: UAs MUST 접근 가능한 대안을 제공해야 합니다.

테스트

이 사양의 내용과 관련된 테스트는 이와 같은 “Tests” 블록에 문서화될 수 있습니다. 이러한 블록은 모두 비규범적입니다.


적합성 클래스

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

스타일시트
CSS 스타일시트.
렌더러
스타일시트의 의미를 해석하고, 이를 사용하는 문서를 렌더링하는 UA.
저작 도구
스타일시트를 작성하는 UA.

스타일시트는 이 모듈에서 정의된 구문을 사용하는 모든 선언이 일반 CSS 문법과 이 모듈에서 정의된 각 기능의 개별 문법에 따라 유효하다면, 이 사양에 적합합니다.

렌더러는, 적절한 사양에서 정의된 대로 스타일시트를 해석하는 것에 더해, 이 사양에서 정의된 모든 기능을 올바르게 파싱하고 그에 맞게 문서를 렌더링함으로써 지원한다면, 이 사양에 적합합니다. 하지만 장치의 제약으로 인해 UA가 문서를 올바르게 렌더링할 수 없더라도 UA가 부적합이 되는 것은 아닙니다. (예를 들어, UA는 단색 모니터에서 색상을 렌더링할 의무가 없습니다.)

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

부분 구현

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

불안정 및 독점 기능의 구현

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

비-실험적 구현

사양이 후보 권고(Candidate Recommendation) 단계에 도달하면, 비-실험적 구현이 가능해지며, 구현자는 사양에 따라 올바르게 구현되었음을 입증할 수 있는 CR 수준 기능에 대해 접두사 없는(unprefixed) 구현을 배포해야 합니다.

구현 간 CSS 상호운용성을 확립하고 유지하기 위해, CSS 워킹 그룹은 비-실험적 CSS 렌더러가 접두사 없는 CSS 기능 구현을 배포하기 전에 구현 보고서(그리고 필요한 경우 그 구현 보고서에 사용된 테스트케이스)를 W3C에 제출할 것을 요청합니다. W3C에 제출된 테스트케이스는 CSS 워킹 그룹의 검토 및 수정 대상이 됩니다.

테스트케이스 및 구현 보고서 제출에 대한 추가 정보는 CSS 워킹 그룹 웹사이트 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-BOX-4]
Elika Etemad. CSS Box Model Module Level 4. 4 August 2024. WD. URL: https://www.w3.org/TR/css-box-4/
[CSS-BREAK-3]
Rossen Atanassov; Elika Etemad. CSS Fragmentation Module Level 3. 4 December 2018. CR. URL: https://www.w3.org/TR/css-break-3/
[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-DISPLAY-4]
Elika Etemad; Tab Atkins Jr.. CSS Display Module Level 4. 6 November 2025. WD. URL: https://www.w3.org/TR/css-display-4/
[CSS-INLINE-3]
Elika Etemad. CSS Inline Layout Module Level 3. 18 December 2024. WD. URL: https://www.w3.org/TR/css-inline-3/
[CSS-LINE-GRID-1]
Elika Etemad; Koji Ishii; Alan Stearns. CSS Line Grid Module Level 1. 16 September 2014. WD. URL: https://www.w3.org/TR/css-line-grid-1/
[CSS-SIZING-3]
Tab Atkins Jr.; Elika Etemad. CSS Box Sizing Module Level 3. 17 December 2021. WD. URL: https://www.w3.org/TR/css-sizing-3/
[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/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 4. 30 July 2019. CR. URL: https://www.w3.org/TR/css-writing-modes-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

정보성 참고문헌

[CSS-VARIABLES-1]
Tab Atkins Jr.. CSS Custom Properties for Cascading Variables Module Level 1. 16 June 2022. CR. URL: https://www.w3.org/TR/css-variables-1/
[CSS3-PAGE]
Elika Etemad. CSS Paged Media Module Level 3. 14 September 2023. WD. URL: https://www.w3.org/TR/css-page-3/

속성 색인

이름 초기값 적용 대상 상속 %ages 애니메이션 유형 정규 순서 계산된 값
block-step <'block-step-size'> || <'block-step-insert'> || <'block-step-align'> || <'block-step-round'> 개별 속성 참조 block-level boxes no N/A 개별 속성 참조 문법에 따름 개별 속성 참조
block-step-align auto | center | start | end auto block-level boxes no N/A discrete 문법에 따름 specified keyword
block-step-insert margin-box | padding-box | content-box margin-box block-level boxes no N/A discrete 문법에 따름 specified keyword
block-step-round up | down | nearest up block-level boxes no N/A discrete 문법에 따름 specified keyword
block-step-size none | <length [0,∞]> none block-level boxes no N/A by computed value type 문법에 따름 specified keyword or absolute length
line-height-step <length [0,∞]> 0 block containers yes N/A by computed value type 문법에 따름 absolute length

이슈 색인

이 제안은 block-step-size 속성만으로 단순화할 수 있으며, block-step라는 축약 형태를 통해서만 표현��� 수 있습니다. 이 레벨은 많아야 block-step-sizeblock-step-insert만 포함할 가능성이 높으며, block-step-alignblock-step-round은 향후 필요가 생기면 추가될 것입니다. 전체 설계는 현재 논의를 위해서와 향후 참고를 위해 본문에 기술되어 있습니다.
이 제안은 현재 블록 수준 박스에만 적용되도록 정의되어 있습니다. 이 제한은 첫 번째 반복을 단순화하기 위한 것일 뿐이며, 궁극적으로는 지정된 높이를 존중하는 모든 레이아웃 모드로 확장되어야 합니다.
이러한 순환을 끊는 가장 좋은 방법일까요? [Issue #1901]
이를 text-box-edge/text-box-trim의 상속 및 적용 모델과 정렬해야 할까요? [Issue #1902]
align-content와의 상호작용을 정의하세요. [Issue #11206]
이 규칙이 올바른가요? 아니면 조각화 경계에서도 block-step-align을 존중해야 할까요? [Issue #1260]
이는 애니메이션 가능해야 할까요? 사용 사례는 없어 보이지만 일관성을 위해 필요할까요?