CSS 텍스트 장식 모듈 레벨 3

W3C 후보 권고안 초안,

이 문서에 대한 자세한 정보
이 버전:
https://www.w3.org/TR/2022/CRD-css-text-decor-3-20220505/
최신 공개 버전:
https://www.w3.org/TR/css-text-decor-3/
에디터 초안:
https://drafts.csswg.org/css-text-decor-3/
이전 버전:
히스토리:
https://www.w3.org/standards/history/css-text-decor-3
구현 보고서:
https://wpt.fyi/results/css/css-text-decor
테스트 스위트:
http://test.csswg.org/suites/css-text-decor-3_dev/nightly-unstable/
피드백:
CSSWG 이슈 저장소
명세 내 인라인
에디터:
Elika J. Etemad / fantasai (초대 전문가)
(Google)
이 명세 편집 제안:
GitHub 에디터

요약

이 모듈은 CSS에서 밑줄, 텍스트 그림자, 강조 표시 등 텍스트 장식과 관련된 기능을 포함합니다.

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

이 문서의 상태

이 섹션은 문서가 공개된 시점에서의 상태를 설명합니다. 최신 W3C 출판물 목록과 이 기술 보고서의 최신 개정본은 https://www.w3.org/TR/의 W3C 기술 보고서 색인에서 확인할 수 있습니다.

이 문서는 CSS 작업 그룹에서 후보 권고안 초안으로 권고안 트랙을 사용하여 공개되었습니다. 후보 권고안으로의 공개는 W3C와 그 회원들의 지지 또는 승인을 의미하지 않습니다. 후보 권고안 초안은 이전 후보 권고안에서 작업 그룹이 다음 후보 권고안 스냅샷에 포함하고자 하는 변경사항을 통합합니다.

이 문서는 초안이므로 언제든지 업데이트, 대체 또는 폐기될 수 있습니다. 진행 중인 작업 외에는 인용에 부적절합니다.

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

이 문서는 2021년 11월 2일 W3C 프로세스 문서에 의해 관리됩니다.

이 문서는 W3C 특허 정책에 따라 운영되는 그룹에서 작성되었습니다. W3C는 해당 그룹의 산출물과 관련하여 공개된 모든 특허 공개 공개 목록을 관리합니다. 해당 페이지에는 특허 공개 방법도 포함되어 있습니다. 어떤 개인이 특정 특허가 필수 청구를 포함한다고 판단하는 경우, W3C 특허 정책 6절에 따라 정보를 공개해야 합니다.

다음 기능들은 위험에 처해 있으며, CR 기간 중에 삭제될 수 있습니다:

“위험에 처함”은 W3C 프로세스 용어이며, 해당 기능이 반드시 삭제되거나 지연될 위험이 있다는 뜻은 아닙니다. 이는 WG가 해당 기능의 상호 운용 구현이 신속하게 이루어지기 어려울 수 있다고 판단한 경우에, WG가 제안된 권고안 단계로 전환할 때 필요하다면 해당 기능을 삭제할 수 있도록 허용하며, 기능이 없는 새로운 후보 권고안을 별도로 발행할 필요가 없도록 하기 위한 조치입니다.

1. 소개

이 하위 섹션은 규범적이지 않습니다.

이 모듈은 텍스트 장식, 즉 폰트와 타이포그래피 규칙에 따라 조판된 텍스트의 글리프를 장식하는 기능을 다룹니다. ([CSS-TEXT-3][CSS-FONTS-3] 참조.) 이러한 기능은 전통적으로 단순한 장식적 목적뿐만 아니라, 경우에 따라 강조 표시, 경칭, 삽입·삭제·오탈자 등 편집 변경을 나타내기 위해 사용됩니다.

CSS 1, 2 레벨에서는 줄 장식(밑줄, 윗줄, 취소선)만 매우 기본적으로 정의했으며, 이는 서양 타이포그래피 전통에 적합한 기능입니다. 이 모듈의 3단계에서는 이러한 장식의 색상, 스타일, 위치, 연속성을 변경할 수 있는 기능이 추가되고, 강조 표시(동아시아 타이포그래피에서 전통적으로 사용됨)와 텍스트 그림자(2단계에서 제안되었다가 연기됨)도 도입되었습니다.

1.1. 모듈 상호작용

이 모듈은 [CSS2] 16장에 정의된 텍스트 장식 기능을 대체하고 확장합니다.

1.2. 값 정의

이 명세는 CSS 속성 정의 관례[CSS2]에서 따르며, 값 정의 구문[CSS-VALUES-3]에서 사용합니다. 이 명세에 정의되지 않은 값 타입은 CSS 값 및 단위 [CSS-VALUES-3]에서 정의됩니다. 다른 CSS 모듈과 조합되면 이러한 값 타입의 정의가 확장될 수 있습니다.

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

1.3. 용어

이 명세에서 사용되는 문자(character), 글자(letter), 콘텐츠 언어(content language) 용어는 [CSS-TEXT-3]에서 정의됩니다. 기타 용어와 개념은 [CSS2][CSS-WRITING-MODES-4]에서 정의됩니다.

2. 줄 장식: 밑줄, 윗줄, 취소선

다음 속성들은 요소의 콘텐츠에 추가되는 줄 장식을 설명합니다. 인라인 박스에 지정하거나 전파된 경우, 해당 박스는 해당 장식에 대한 장식 박스가 되어, 장식을 모든 조각에 적용합니다. 장식은 in-flow 블록 레벨 박스로도 추가 전파되어 인라인을 분할합니다 (CSS2.1 9.2.1.1절 참조). 블록 컨테이너에 지정하거나 전파된 경우, 인라인 포맷팅 컨텍스트를 설정하면, 장식은 익명 인라인 박스로 전파되어 해당 in-flow 인라인 레벨 자식을 모두 감쌉니다. 루비 컨테이너에 지정하거나 전파된 경우, 장식은 루비 베이스에만 적용됩니다. 기타 박스 타입에서는 장식이 모든 in-flow 자식에게 전파됩니다.

텍스트 장식은 out-of-flow 자손이나 인라인 블록, 인라인 테이블과 같은 원자적 인라인 레벨 자손의 내용에는 전파되지 않습니다. 또한 인라인 박스의 인라인 자식에게도 전파되지 않습니다. 하지만 장식은 해당 박스에 적용됩니다.

밑줄, 윗줄, 취소선은 non-replaced 인라인 박스에만 그려지며, 모든 텍스트(공백, 자간, 단어 간격 포함)에서 줄의 처음과 끝의 간격(공백, 자간, 단어 간격)을 제외하고는 모두 그려집니다. 원자적 인라인(예: 이미지, 인라인 블록)은 장식되지 않습니다. 장식 박스의 마진, 테두리, 패딩은 항상 건너뛰지만, 자손 인라인 박스의 마진, 테두리, 패딩은 건너뛰지 않습니다.

CSS 2.1에서는 항상 마진, 테두리, 패딩을 건너뛰도록 요구했습니다. 이 단계에서는 기본적으로 장식 박스의 마진, 테두리, 패딩만 건너뜁니다. 앞으로 CSS2.1도 이 새로운 기본값에 맞게 업데이트될 수 있습니다. 또한, 선행/후행 공백 장식 제어는 4단계에서 제공될 예정이며, 기본적으로 HTML insdel 요소에 적용됩니다.

UA는 밑줄 또는 윗줄이 글리프 잉크를 가로지르는 경우와 글리프 윤곽선 양쪽으로 일정 거리에서 밑줄/윗줄을 중단할 수 있습니다; 이 동작은 이 단계에서는 제어할 수 없지만, 4단계에서 더 정의될 예정입니다. 취소선(line-through)은 반드시 연속적으로 유지되어야 합니다.

미얀마 문자에 알파벳 밑줄을 그릴 때, 알파벳 기준선 아래로 내려가는 결합 문자와 내림부를 피해 밑줄을 그립니다.

글리프 잉크 건너뛰기

UA가 밑줄이나 윗줄을 글리프 경계에서 중단하는 경우, 그 경계에서 선의 형태는 글리프의 형태를 따라야 합니다.

참고: 이 명세는 글리프의 “형태를 따르는” 구체적 방법을 일부러 강제하지 않습니다. UA가 미적·성능상의 고려를 위해 적절한 방식을 취할 수 있도록 하기 위함입니다. 예를 들어, UA는 성능상의 이유로 특정 크기 이하에서는 선 끝을 네모로 처리할 수 있고, 더 얇은 선 장식에서는 곡선을 근사하기 위해 사다리꼴 끝을 사용할 수 있습니다. 미적인 측면에서는, 글리프 경계가 선 두께의 일부만 교차할 때나 거의 수평에 가까운 경사일 때, 곡선을 정확하게 따를 경우 타이포그래피적으로 어색한 밑줄 잔여(wisp)가 생길 수 있습니다. 글리프 내부에 둘러싸인 영역에서 선을 보여줄지 여부도 또 다른 고려 사항입니다.
예를 들어, 'goal'이라는 단어에서 밑줄이 'g'의 하단 루프를 통과하는 경우를 생각해봅시다.
			            밑줄의 위치와 두께에 따라 밑줄 전체 두께가 'g'의 중심에 드러나거나 일부만 보일 수 있습니다.
			            이 예제는 두 위치에서 마스킹된 밑줄을 보여줍니다.
			            왼쪽 쌍에서는 밑줄이 'g'의 볼의 중앙을 지나가며, 전체 두께가 중심을 채웁니다.
			            오른쪽 쌍에서는 밑줄이 약간 더 아래에 위치해, 'g' 내부에서는 밑줄 두께 중 일부만 보입니다.

글리프 내부에 밑줄 일부를 숨기면 글자가 더 깔끔하게 보이며, 글자 외곽을 따라 이어지는 곡선형 밑줄 끝은 그 글자를 통과하는 밑줄의 연속성을 암시합니다.

자손을 상대적으로 위치시키면 적용된 모든 텍스트 장식이 자손의 텍스트와 함께 이동하지만, 장식의 초기 위치 계산에는 영향을 주지 않습니다. visibility 속성, text-shadow, 필터, 기타 그래픽 변환도 마찬가지로 해당 박스에 적용된 모든 텍스트 장식에 영향을 주지만, 장식의 초기 위치나 두께 계산에는 영향을 주지 않습니다. (원자적 인라인이나 non-replaced 인라인 박스의 마진/테두리/패딩 위에 그려지는 줄 장식에서는, 해당 원자적 인라인/비치환 인라인 박스에 선이 연관되어, 장식 박스와 연관되지 않습니다.)

다음 스타일시트와 문서 조각을 예로 들면:
blockquote { text-decoration: underline; color: blue; }
em { display: block; }
cite { color: fuchsia; }
<blockquote>
 <p>
  <span>
   Help, help!
   <em> I am under a hat! </em>

   <cite> —GwieF </cite>
  </span>
 </p>
</blockquote>

...blockquote 요소의 밑줄이 span 요소를 감싸는 익명 인라인 박스로 전파되어, "Help, help!" 텍스트는 파란색이며, 익명 인라인의 파란색 밑줄도 함께 그려집니다(색상은 blockquote에서 가져옴). <em>텍스트</em>도 인플로우 블록 내에 있으므로 밑줄이 전파됩니다. 마지막 줄의 텍스트는 자홍색이지만, 그 밑의 밑줄은 익명 인라인 요소의 파란색 밑줄입니다. 위의 밑줄 예제의 샘플 렌더링 이 다이어그램은 위 예제에 연관된 박스들을 보여줍니다. 둥근 아쿠아색 선은 p 요소의 인라인 콘텐츠를 감싸는 익명 인라인 요소, 둥근 파란색 선은 span 요소, 오렌지색 선은 블록을 나타냅니다.

참고: 줄 장식은 상속이 아닌 박스 트리를 통해 전파되므로, display: contents가 지정된 요소에 대해선 자손에 아무런 영향을 주지 않습니다.

2.1. 텍스트 장식선: text-decoration-line 속성

이름: text-decoration-line
값: none | [ underline || overline || line-through || blink ]
초기값: none
적용 대상: 모든 요소
상속됨: 아니오 (위의 본문 참조)
백분율: 해당 없음
계산된 값: 지정된 키워드
정규 순서: 문법에 따름
애니메이션 유형: 불연속

요소에 어떤 줄 장식이 추가되는지 지정합니다. 값의 의미는 다음과 같습니다:

none
텍스트 장식이 생성되거나 억제되지 않습니다.
underline
각 텍스트 줄에 밑줄이 그려집니다.
overline
각 텍스트 줄 위에 선이 그려집니다 (즉, 밑줄과 반대쪽).
line-through
각 텍스트 줄 가운데에 선이 그려집니다.
blink
텍스트가 깜빡입니다(보임과 숨김이 번갈아 나타남). 적합한 사용자 에이전트는 텍스트를 깜빡이지 않을 수도 있습니다. 텍스트를 깜빡이지 않는 것은 WAI-UAAG 체크포인트 3.3를 만족하는 한 가지 방법입니다. 이 값은 더 이상 권장되지 않으며 Animations [CSS-ANIMATIONS-1]을 사용하는 것이 좋습니다.

참고: 세로쓰기 모드에서는 text-underline-position으로 인해 밑줄과 윗줄의 위치가 바뀔 수 있습니다. 이를 통해 밑줄 위치가 언어별 선호에 자동으로 맞춰질 수 있습니다.

2.2. 텍스트 장식 스타일: text-decoration-style 속성

이름: text-decoration-style
값: solid | double | dotted | dashed | wavy
초기값: solid
적용 대상: 모든 요소
상속됨: 아니오
백분율: 해당 없음
계산된 값: 지정된 키워드
정규 순서: 문법에 따름
애니메이션 유형: 불연속

이 속성은 요소에 지정된 텍스트 장식선의 스타일을 지정합니다. 값의 의미는 border-style 속성 [CSS-BACKGROUNDS-3]과 동일합니다. wavy는 물결 모양의 선을 나타냅니다.

텍스트 장식의 스타일은 해당 요소에서 시작된 모든 장식에 동일하게 적용되어야 하며, 자식 박스에 다른 스타일이 지정되어 있더라도 변경되지 않습니다.

2.3. 텍스트 장식 색상: text-decoration-color 속성

이름: text-decoration-color
값: <color>
초기값: currentcolor
적용 대상: 모든 요소
상속됨: 아니오
백분율: 해당 없음
계산된 값: 계산된 색상
정규 순서: 문법에 따름
애니메이션 유형: 계산된 값 유형에 따름

이 속성은 text-decoration-line으로 설정된 요소의 텍스트 장식(밑줄, 윗줄, 취소선)의 색상을 지정합니다.

텍스트 장식의 색상은 해당 요소에서 시작된 모든 장식에 동일하게 적용되어야 하며, 자식 박스에 다른 색상이 지정되어 있더라도 변경되지 않습니다.

2.4. 텍스트 장식 단축 속성: text-decoration 속성

이름: text-decoration
값: <'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'>
초기값: 개별 속성 참조
적용 대상: 개별 속성 참조
상속됨: 개별 속성 참조
백분율: 개별 속성 참조
계산된 값: 개별 속성 참조
애니메이션 유형: 개별 속성 참조
정규 순서: 문법에 따름

이 속성은 text-decoration-line, text-decoration-color, 그리고 text-decoration-style을 한 번에 설정하는 단축 속성입니다. 생략된 값은 초기값으로 설정됩니다.

참고: text-decoration 선언에서 text-decoration-colortext-decoration-style 값을 모두 생략하면 CSS 1, 2 레벨과의 하위 호환성을 유지합니다.

아래 예제는 방문하지 않은 링크에 CSS1, CSS2 UA에서는 파란색 실선 밑줄을, CSS3 UA에서는 네이비색 점선 밑줄을 그립니다.
:link {
  color: blue;
  text-decoration: underline;
  text-decoration: navy dotted underline; /* CSS1/CSS2 UA에서 무시됨 */
}

참고: 이 단축 속성은 text-underline-position 속성을 일부러 포함하지 않습니다. 이 속성은 언어/문자 체계에 따라 콘텐츠에 맞춰지는 설정이기 때문에, text-decoration 단축 속성의 (상속되지 않는) 스타일 설정과 독립적으로 캐스케이드 및 상속될 수 있도록 하기 위함입니다.

2.5. 텍스트 밑줄 위치: text-underline-position 속성

이름: text-underline-position
값: auto | [ under || [ left | right ] ]
초기값: auto
적용 대상: 모든 요소
상속됨:
백분율: 해당 없음
계산된 값: 지정된 키워드
정규 순서: 문법에 따름
애니메이션 유형: 불연속

이 속성은 요소에 지정된 밑줄의 위치를 설정합니다. (조상 요소에 의해 지정된 밑줄에는 영향을 주지 않습니다.) left 또는 right가 단독으로 지정되면, auto도 포함된 것으로 간주합니다.

다음 예제는 현대 중국어, 일본어, 한국어 텍스트에서 수평 및 수직 텍스트 모두에 대해 적절한 밑줄 위치를 스타일링합니다:
:root:lang(ja), [lang|=ja], :root:lang(ko), [lang|=ko] { text-underline-position: under right; }
:root:lang(zh), [lang|=zh] { text-underline-position: under left; }

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

auto
사용자 에이전트는 밑줄 위치를 결정하기 위한 어떤 알고리즘도 사용할 수 있습니다; 하지만 반드시 알파벳 기준선 또는 그 아래에 위치해야 합니다.

참고: 기본 밑줄 위치는 알파벳 기준선 가까이에 배치하는 것이 좋지만, 아래 첨자(또는 그 밖의 낮아진 텍스트)를 가로지르거나 한자, 티베트어 등 아시아 문자 글리프 위에 밑줄이 너무 높게 그려지는 경우에는, 밑줄을 더 낮추거나 under에서 설명한 em 박스 경계에 맞추는 것이 더 적절할 수 있습니다.

일반적인 라틴 폰트에서 밑줄은 알파벳 기준선 바로 아래에 위치하며,
				         대부분의 라틴 글자 아래와 밑줄 사이에는 간격이 있지만
				         'p'의 막대처럼 내림부를 관통합니다.

전형적인 “알파벳” 밑줄은 알파벳 기준선 바로 아래에 위치합니다

under
밑줄은 요소의 텍스트 콘텐츠 아래에 배치됩니다. 이 경우 밑줄은 일반적으로 내림부를 관통하지 않습니다. (이 방식은 종종 “회계 밑줄(accounting underline)”이라고 불립니다.) 이 값은 수직 타이포그래피 모드에서 특정 측면을 선호하는 경우 left 또는 right와 함께 사용할 수 있습니다.
text-underline-position은 상속되며, text-decoration 단축 속성으로 재설정되지 않으므로, 다음 예제처럼 문서 전체에 under 밑줄을 적용할 수 있습니다. 이는 내림부가 길고 복잡한 문자 체계에 더 적합할 수 있습니다. 수식이나 화학식 등 첨자가 많은 텍스트에도 유용합니다.
:root { text-underline-position: under; }

참고: under 값은 밑줄이 글리프와 충돌하지 않을 것을 보장하지 않습니다. 일부 폰트는 폰트의 하강선(descent) 메트릭을 넘는 내림부나 발음 기호를 가질 수 있기 때문입니다.

left
수직 타이포그래피 모드에서 밑줄은 under와 같이 정렬되지만, 항상 텍스트 왼쪽에 정렬됩니다. 이로 인해 밑줄이 텍스트의 "over" 쪽에 그려지는 경우, 윗줄(overline)도 반대쪽으로 이동하여 "under" 쪽에 그려집니다.
right
수직 타이포그래피 모드에서 밑줄은 under와 같이 정렬되지만, 항상 텍스트 오른쪽에 정렬됩니다. 이로 인해 밑줄이 텍스트의 "over" 쪽에 그려지는 경우, 윗줄(overline)도 반대쪽으로 이동하여 "under" 쪽에 그려집니다.
혼합된 일본어-라틴어 수직 텍스트에서 'text-underline-position: left'는 밑줄을 텍스트 왼쪽에 배치합니다. 혼합된 일본어-라틴어 수직 텍스트에서 'text-underline-position: right'는 밑줄을 텍스트 오른쪽에 배치합니다.
left right

수직 타이포그래피 모드에서 text-underline-positionleftright 값으로 밑줄을 텍스트 양쪽에 배치할 수 있습니다. (수평 타이포그래피 모드에선 두 값 모두 auto로 처리됩니다.)

선 장식의 정확한 위치와 두께는 이 단계에서 UA에 의해 정의됩니다. 하지만 밑줄과 윗줄의 경우 UA는 한 줄에서 단일 장식 박스에서 파생된 장식에 대해 한 번의 두께와 위치만을 사용해야 합니다.

서로 다른 글꼴 크기와 수직 위치에 밑줄을 그릴 때 반드시 하나의 선만 사용해야 합니다. vs. 장식된 텍스트에 맞도록 여러 조각의 선을 각각 위치와 두께를 달리 그리는 것은 잘못된 방식입니다.

<u>A<sup>B</sup><big>C</big>D</u> 의 올바른/잘못된 밑줄 렌더링

참고: 선 장식은 다양한 글꼴 크기와 수직 정렬이 혼합된 요소를 가로지를 수 있으므로, 선 장식의 최적 위치가 장식 박스의 이상적인 위치와 일치하지 않을 수 있습니다. 예를 들어, 작은 글꼴에 맞춘 윗줄은 큰 글꼴 크기의 텍스트가 포함된 요소에서는 사실상 취소선이 될 수 있습니다. 밑줄의 경우에도, 텍스트가 알파벳 기준선에 정렬되어 있지 않으면 (예를 들어 수직 조판에서는 텍스트가 기본적으로 중앙 기준선에 정렬됨 [CSS-WRITING-MODES-4]) 밑줄이 더 큰 글꼴 크기의 자손 텍스트를 관통할 수 있습니다. UA가 자손 콘텐츠를 고려하면 더 나은 타이포그래피 결과를 얻을 수 있습니다.

수직 텍스트의 중앙 기준선 정렬 때문에, 작은 수직 텍스트에 왼쪽 밑줄을 그리면 더 큰 글꼴 크기의 자식 텍스트를 관통할 수 있습니다. 밑줄이 분리되는 것은 허용되지 않으며, 밑줄 위치를 더 왼쪽으로 조정하면 모든 밑줄 텍스트를 제대로 감쌀 수 있습니다.

UA는 반드시 장식 박스vertical-align 값이 baseline [CSS2]가 아니거나 font-variant-position을 통해 아래첨자/위첨자로 이동된 경우 선 위치를 조정해야 하지만, 장식 박스의 자손이 그렇게 스타일링된 경우에는 선 위치나 두께를 조정해서는 안 됩니다. 이를 통해 아래첨자/위첨자에 밑줄, 취소선 등을 올바르게 적용할 수 있지만, 자손의 위치가 조상 장식의 위치에 영향을 주거나 왜곡하지 않습니다.

1st에서 위첨자 'st'만 밑줄을 적용하면 바로 아래에 그려지고,
		             전체 텍스트에 밑줄을 적용하면 전체 크기에 맞는 위치에 그려집니다.

위첨자 텍스트에 적용된 밑줄 vs. 위첨자를 포함한 텍스트에 적용된 밑줄 예시

일부 폰트 포맷(OpenType 등)은 선 장식의 적절한 위치 정보를 제공합니다. UA는 적절한 경우 폰트에서 제공하는 정보(밑줄 두께, 알파벳 밑줄 위치 등)를 사용해야 합니다.

참고: 일반적으로 OpenType 폰트 메트릭은 alphabetic 밑줄 위치를 제공합니다. CJK 폰트의 경우 under left 위치를 제공하는 경우도 있습니다. (이 경우 폰트의 밑줄 메트릭은 em 박스의 하단에 닿는 경우가 많습니다.) UA는 잘못된 폰트 메트릭을 교정해도 되지만 반드시 그럴 필요는 없습니다.

3. 강조 표시

동아시아 문서에서는 전통적으로 텍스트 강조를 위해 각 글리프 옆에 작은 기호를 사용합니다. 예시:

일본어에서 텍스트 위에 강조 표시가 나타나는 예

일본어 텍스트에 적용된 악센트 강조(파란색으로 표시된 부분은 명확함을 위해 강조됨)

text-emphasis 단축 속성과 text-emphasis-style, text-emphasis-color 속성을 사용하여 텍스트에 강조 표시를 적용할 수 있습니다. text-emphasis-position 속성(별도로 상속됨)으로 강조 표시의 텍스트 내 위치를 설정할 수 있습니다.

3.1. 강조 표시 스타일: text-emphasis-style 속성

이름: text-emphasis-style
값: none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string>
초기값: none
적용 대상: 텍스트
상속됨:
백분율: 해당 없음
계산된 값: 키워드 none, 모양과 채우기를 나타내는 두 개의 키워드, 또는 문자열
정규 순서: 문법에 따름
애니메이션 유형: 불연속

이 속성은 요소의 텍스트에 강조 표시 기호를 적용합니다. 값의 의미는 다음과 같습니다:

none
강조 표시 없음.
filled
모양이 단색으로 채워집니다.
open
모양이 비어 있습니다.
dot
작은 원을 표시합니다. 채워진 점은 U+2022 '•', 열린 점은 U+25E6 '◦'입니다.
circle
큰 원을 표시합니다. 채워진 원은 U+25CF '●', 열린 원은 U+25CB '○'입니다.
double-circle
이중 원을 표시합니다. 채워진 이중 원은 U+25C9 '◉', 열린 이중 원은 U+25CE '◎'입니다.
triangle
삼각형을 표시합니다. 채워진 삼각형은 U+25B2 '▲', 열린 삼각형은 U+25B3 '△'입니다.
sesame
깨 모양을 표시합니다. 채워진 깨는 U+FE45 '﹅', 열린 깨는 U+FE46 '﹆'입니다.
<string>
지정한 문자열을 강조 기호로 표시합니다. 작성자는 <string>에 하나의 문자만 지정해야 합니다. UA는 하나 이상의 그래프 클러스터로 이루어진 문자열을 잘라내거나 무시할 수 있습니다.

모양 키워드가 지정되었으나 filled 또는 open이 지정되지 않은 경우, filled가 기본값입니다. filled 또는 open만 지정한 경우, 모양 키워드는 수평 타이포그래피 모드에서는 circle로 계산되고, 수직 타이포그래피 모드에서는 sesame로 계산됩니다.

기호는 요소의 글꼴 설정을 사용하여 그려지며, ruby 기능을 추가하고, 크기를 50%로 축소합니다. 하지만 모든 글꼴이 모든 글리프를 갖고 있지 않으며, 일부 글꼴은 해당 코드 포인트의 강조 기호 크기가 부적절하기 때문에, UA는 강조 기호에 적합한 글꼴을 사용할 수 있고, 아니면 UA가 직접 기호를 합성할 수도 있습니다. 기호는 수직 타이포그래피 모드에서 반드시 똑바로 세워진 상태로 유지되어야 합니다: CJK 문자와 마찬가지로, 쓰기 모드에 따라 회전하지 않습니다. 수직 쓰기 모드의 수평 타이포그래피 모드에서의 기호 방향은 이 단계에서는 정의되지 않습니다 (명확한 사용 사례가 생기면 이후 단계에서 정의될 수 있음).

참고: 강조 표시 기호에 적합한 글꼴의 예로 Adobe의 오픈소스 Kenten Generic OpenType Font를 들 수 있으며, 특별히 강조 표시 기호를 위해 설계되었습니다.

강조 기호는 타이포그래피 문자 단위마다 한 번씩 그려집니다. 단, 강조 표시 기호는 아래의 경우 그려지지 않습니다:

참고: 어떤 문자가 강조 표시되는지 제어하는 기능은 4단계에 추가될 예정입니다. (구두점 목록도 이후 비CJK 구두점에 대해 더 다듬어질 수 있습니다.)

3.2. 강조 표시 색상: text-emphasis-color 속성

이름: text-emphasis-color
값: <color>
초기값: currentcolor
적용 대상: 텍스트
상속됨:
백분율: 해당 없음
계산된 값: 계산된 색상
정규 순서: 문법에 따름
애니메이션 유형: 계산된 값 유형에 따름

이 속성은 강조 표시 기호의 전경색을 지정합니다.

참고: currentcolor 키워드는 자기 자신으로 계산되고, 상속이 수행된 후 color 값으로 해석됩니다. 즉, text-emphasis-color는 기본적으로 텍스트 color와 동일하게 적용되며, color 값이 요소마다 변경되어도 따라갑니다.

3.3. 강조 표시 단축 속성: text-emphasis 속성

이름: text-emphasis
값: <'text-emphasis-style'> || <'text-emphasis-color'>
초기값: 개별 속성 참조
적용 대상: 개별 속성 참조
상속됨: 개별 속성 참조
백분율: 개별 속성 참조
계산된 값: 개별 속성 참조
애니메이션 유형: 개별 속성 참조
정규 순서: 문법에 따름

이 속성은 text-emphasis-styletext-emphasis-color를 한 번에 설정할 수 있는 단축 속성입니다. 생략된 값은 초기값으로 설정됩니다.

참고: text-emphasis-position은 이 단축 속성에서 재설정되지 않습니다. 일반적으로 모양과 색상은 달라지지만, 위치는 문서 내 특정 언어에 대해 일관되게 유지되므로 위치 속성은 독립적으로 상속되어야 합니다.

3.4. 강조 표시 위치: text-emphasis-position 속성

이름: text-emphasis-position
값: [ over | under ] && [ right | left ]?
초기값: over right
적용 대상: 텍스트
상속됨:
백분율: 해당 없음
계산된 값: 지정된 키워드
정규 순서: 문법에 따름
애니메이션 유형: 불연속

이 속성은 강조 표시 기호가 어디에 그려지는지 설명합니다. [ right | left ]가 생략되면 기본값은 right입니다. 값의 의미는 다음과 같습니다:

over
수평 타이포그래피 모드에서 텍스트 위에 기호를 그립니다.
under
수평 타이포그래피 모드에서 텍스트 아래에 기호를 그립니다.
right
수직 타이포그래피 모드에서 텍스트 오른쪽에 기호를 그립니다.
left
수직 타이포그래피 모드에서 텍스트 왼쪽에 기호를 그립니다.

강조 기호는 각 문자가 해당 ruby 주석 텍스트를 갖는 것처럼, text-emphasis-position에 따라 ruby 위치를 지정하고 ruby 정렬은 가운데로 하여 정확히 그려집니다. 이 위치가 밑줄 또는 윗줄 장식과 충돌할 경우 조정될 수 있습니다.

강조 기호가 줄 높이에 미치는 영향은 ruby 텍스트와 동일합니다.

참고: 강조 표시 기호의 선호 위치는 언어에 따라 다릅니다. 예를 들어 일본어는 over right가 선호되고, 중국어는 under right가 선호됩니다. 아래 표는 중국어와 일본어의 선호 강조 표시 및 ruby 위치를 요약합니다:
선호 강조 표시 및 ruby 위치
언어 선호 위치 예시
수평 수직
일본어 over right 수평 일본어 텍스트에서 강조 표시가 각 강조 문자 위에 나타납니다. 수직 일본어 텍스트에서 강조 표시가 각 강조 문자 오른쪽에 나타납니다.
한국어
몽골어
중국어 under right 수평 중국어(간체) 텍스트에서 강조 표시가 각 강조 문자 아래에 나타납니다.

강조 표시가 ruby와 같은 위치에 그려지는 문자에 적용된 경우, 강조 표시 기호는 ruby 외부에 배치됩니다. 이는 자동 숨김 및 비어 있는 ruby 주석에도 적용됩니다.

이 예제에서 강조 기호는 4개 문자에 적용되었고, 그 중 2개에는 ruby가 있습니다.
		       점은 ruby가 없는 문자는 해당 문자 위에, 주석이 있는 문자는 ruby 텍스트 위에 배치됩니다.

ruby가 있는 2개와 없는 2개 문자에 강조 표시가 적용된 예시

일부 편집기는 ruby와 강조 표시가 충돌할 때 강조 표시를 숨기는 것을 선호합니다. HTML에서는 다음 스타일 규칙으로 구현할 수 있습니다:
ruby { text-emphasis: none; }

다른 일부 편집기는 강조 표시와 충돌할 때 ruby를 숨기는 것을 선호합니다. HTML에서는 아래와 같이 구현할 수 있습니다:

em { text-emphasis: dot; } /* <em> 요소에 text-emphasis 설정 */
em rt { display: none; }   /* <em> 요소 내부 ruby 숨기기 */

4. 텍스트 그림자: text-shadow 속성

이름: text-shadow
값: none | [ <color>? && <length>{2,3} ]#
초기값: none
적용 대상: 텍스트
상속됨:
백분율: 해당 없음
계산된 값: 키워드 none 또는 각 항목이 세 개의 절대 길이와 계산된 색상으로 구성된 리스트
정규 순서: 문법에 따름
애니메이션 유형: 그림자 리스트로

이 속성은 요소 텍스트에 적용할 쉐도우 효과의 쉼표로 구분된 목록을 허용합니다. 값은 box-shadow [CSS-BACKGROUNDS-3]와 동일하게 해석됩니다. (단, spread 값과 inset 키워드는 허용되지 않습니다.) 각 레이어는 요소의 텍스트와 모든 텍스트 장식(합성된 상태)을 그림자 처리합니다.

그림자 효과는 앞에서 뒤로 적용됩니다: 첫 번째 그림자가 맨 위에 옵니다. 그림자는 서로 겹칠 수 있지만, 텍스트 자체를 덮는 일은 없습니다. 그림자는 반드시 요소의 테두리/배경(있다면)과 요소 텍스트 및 텍스트 장식 사이의 스택 레벨에 그려져야 합니다. UA는 인접한 동일 스택 레벨 및 스태킹 컨텍스트에 속한 요소의 텍스트 위에 그림자를 그리는 것을 피해야 합니다. (이는 그림자의 정확한 스택 레벨이 요소에 테두리나 배경이 있는지에 따라 달라질 수 있음을 의미하며, 텍스트 그림자의 정확한 스태킹 동작은 UA 정의입니다.) 그림자 레이어가 각 글리프/장식을 독립적으로 그림자 처리하는지, 또는 텍스트/장식을 평면화한 후 그림자 처리하는지는 정의되지 않습니다.

box-shadow와 달리, 텍스트 그림자는 그림자 모양에 클리핑되지 않으며, 텍스트가 반투명한 경우 그림자가 비칠 수 있습니다. box-shadow와 같이, 텍스트 그림자는 레이아웃에 영향을 주지 않고, 스크롤을 유발하거나 스크롤 가능 오버플로 영역 크기를 증가시키지 않습니다.

참고: 여기 정의된 그림자 페인팅 순서는 1998년 CSS2 권고안과 반대입니다.

text-shadow 속성은 ::first-line::first-letter 의사 요소 모두에 적용됩니다.

5. 텍스트 장식 그리기

5.1. 텍스트 장식 그리기 순서

[CSS2]와 같이, 텍스트 장식은 장식되는 텍스트 바로 위/아래에 다음 순서(아래에서 위로)로 그려집니다:

줄 장식이 박스 장식이나 원자적 인라인을 가로지를 때, 비포지셔닝 콘텐츠 위에, 그리고 포지셔닝된 자손 바로 아래에 그려집니다 (CSS2.1 부록 E의 #8 바로 아래).

5.2. 텍스트 장식 오버플로우

텍스트 장식이 박스 밖으로 새어나갈 경우 잉크 오버플로우로 간주하며, 스크롤 가능 오버플로 영역을 확장하지 않습니다. [css-overflow-3]

부록 A: 감사의 글

이 명세는 다음 분들의 도움 없이는 불가능했을 것입니다: Ayman Aldahleh, Bert Bos, Tantek Çelik, Stephen Deach, John Daggett, Martin Dürst, Laurie Anna Edlund, Ben Errez, Yaniv Feinberg, Arye Gittelman, Ian Hickson, Martin Heijdra, Richard Ishida, Masayasu Ishikawa, Michael Jochimsen, Eric LeVine, Ambrose Li, Håkon Wium Lie, Chris Lilley, Ken Lunde, Nat McCully, Shinyu Murakami, Paul Nelson, Chris Pratley, Marcin Sawicki, Arnold Schrijver, Rahul Sonnad, Michel Suignard, Takao Suzuki, Frank Tang, Chris Thrasher, Etan Wexler, Chris Wilson, Masafumi Yabe 그리고 Steve Zilles.

부록 B: 기본 UA 스타일시트

이 부록은 참고용이며, UA 개발자가 기본 스타일시트 구현에 참고할 수 있으나, UA 개발자는 자유롭게 무시하거나 변경할 수 있습니다.

/* HTML의 일반적인 스타일링 */
blink {
  text-decoration-line: blink;
}
s, strike, del {
  text-decoration: line-through;
}
u, ins, :link, :visited {
  text-decoration: underline;
}
abbr[title], acronym[title] {
  text-decoration: dotted underline;
}

/* ruby 텍스트에 text-emphasis marks 상속 비활성화:
   강조 표시는 base 텍스트에만 적용 */
rt { text-emphasis: none; }

/* 언어별 기본 강조 표시 위치 지정 */
:root:lang(zh), [lang|=zh] { text-emphasis-position: under right; }
[lang|=ja], [lang|=ko]     { text-emphasis-position: over right; }

/* 언어별 기본 밑줄 위치 지정 */
:root:lang(ja), [lang|=ja],
:root:lang(mn), [lang|=mn],
:root:lang(ko), [lang|=ko] { text-underline-position: right; }
:root:lang(zh), [lang|=zh] { text-underline-position: left;  }
/* auto는 콘텐츠 호환성 때문에 위에서 under 대신 선택(암시)됨 */

이 명세에 문제가 있거나, 추가할 제안, 수정이 있다면, www-style@w3.org로 제목에 [css-text-decor]를 포함하여 보내주세요.

text-decoration-line: blink 속성은 다른 기존 속성으로 완전히 재현할 수 없지만, 다음 CSS를 사용하여 매우 유사한 효과를 얻을 수 있습니다:
@keyframes blink {
  0% {
    visibility: hidden;
    animation-timing-function: step-end;
  }
  25%, 100% {
    visibility: visible;
  }
}
blink {
  animation: blink 1s infinite;
}

부록 C: 변경사항

2019년 8월 후보 권고안 이후 변경사항 (August 2019 Candidate Recommendation)

변경 사항:

2018년 7월 후보 권고안 이후 변경사항 (July 2018 Candidate Recommendation)

변경 사항:

댓글 처리 결과도 제공됩니다.

2013년 8월 후보 권고안 이후 주요 변경사항 (August 2013 Candidate Recommendation)

주요 변경 사항:

적합성

문서 관례

적합성 요구사항은 설명적 단언과 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"로 규범적 텍스트와 구분됩니다:

참고, 이것은 참고용 노트입니다.

권고문은 규범적 섹션 중 특별한 주의를 환기시키도록 스타일링되며, <strong class="advisement">로 구분됩니다. 예시: UA는 반드시 접근 가능한 대체 방안을 제공해야 합니다.

적합성 클래스

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

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

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

렌더러는 스타일시트를 적절한 명세에 따라 해석하는 것 외에도, 이 명세에서 정의된 모든 기능을 올바르게 파싱하고 문서를 적절히 렌더링할 수 있다면 적합합니다. 단, UA가 디바이스의 한계로 인해 문서를 올바르게 렌더링하지 못한다고 하여 적합하지 않은 것은 아닙니다. (예: UA가 흑백 모니터에서 색상을 렌더링할 필요는 없습니다.)

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

부분 구현

작성자가 향후 호환성 파싱 규칙을 활용해 폴백 값을 지정할 수 있도록, CSS 렌더러는 지원할 수 없는 at-rule, 속성, 속성값, 키워드, 기타 구문을 반드시 무효로 간주하고 (적절히 무시) 처리해야 합니다. 특히 UA는 지원하지 않는 구성 값만 선택적으로 무시하고, 지원하는 값만 적용하는 방식(복합값 속성 선언에서) 허용되지 않습니다: 어떤 값이라도 무효(지원하지 않는 값)로 간주되면 해당 선언 전체를 무시해야 한다는 것이 CSS의 요구입니다.

불안정 및 독점 기능의 구현

향후 안정적인 CSS 기능과 충돌을 피하기 위해, CSSWG는 불안정 기능독점 확장 구현 시 모범 사례를 따를 것을 권장합니다.

비실험적 구현

명세가 후보 권고안 단계에 도달하면, 비실험적 구현이 가능하며, 구현자는 명세에 맞게 올바르게 구현된 CR 수준 기능에 대해 접두어 없는(unprefixed) 구현을 배포해야 합니다.

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

테스트케이스 및 구현 보고서 제출에 관한 추가 정보는 CSS 작업 그룹 웹사이트 https://www.w3.org/Style/CSS/Test/에서 확인할 수 있습니다. 문의는 public-css-testsuite@w3.org 메일링 리스트로 보내세요.

후보 권고안(CR) 종료 기준

이 명세가 제안된 권고안(Proposed Recommendation) 단계로 진전되기 위해서는, 각 기능마다 최소 두 개의 독립적이고 상호운용적인 구현이 있어야 합니다. 각 기능은 서로 다른 제품에서 구현할 수 있으며, 모든 기능을 단일 제품에서 구현할 필요는 없습니다. 이 기준의 용어 정의는 다음과 같습니다:

독립적(Independent)
각 구현은 서로 다른 당사자가 개발해야 하며, 다른 적합 구현의 코드를 공유, 재사용, 파생할 수 없습니다. 이 명세 구현에 영향을 미치지 않는 코드 부분은 예외입니다.
상호운용적(Interoperable)
공식 CSS 테스트 스위트의 해당 테스트 케이스를 통과하거나, 웹 브라우저가 아니면 이에 상응하는 테스트를 통과하는 것. 모든 관련 테스트에 대해 상응하는 테스트가 만들어져야 하고, 해당 UA에서 상호운용성을 주장하려면 동일한 방식으로 통과할 수 있는 추가 UA가 있어야 합니다. 상응 테스트는 동료 검토(peer review)를 위해 공개되어야 합니다.
구현(Implementation)
다음을 만족하는 UA:
  1. 명세를 구현함.
  2. 일반 대중에게 공개됨. 구현은 출시 제품이나 공개 버전(베타, 프리뷰, "nightly build" 등)일 수 있음. 출시되지 않은 제품도 최소 한 달간 해당 기능을 구현해 안정성을 입증해야 함.
  3. 실험적이지 않음(테스트를 통과하기 위해 특별히 설계된 버전이 아니고, 앞으로 정상적으로 사용될 예정이어야 함).

이 명세는 최소 6개월간 후보 권고안(Candidate Recommendation) 상태로 유지됩니다.

색인

이 명세에서 정의된 용어

참조로 정의된 용어

참고 문헌

규범적 참고 문헌

[CSS-BACKGROUNDS-3]
Bert Bos; Elika Etemad; Brad Kemper. CSS Backgrounds and Borders Module Level 3. 2021년 7월 26일. CR. URL: https://www.w3.org/TR/css-backgrounds-3/
[CSS-BREAK-3]
Rossen Atanassov; Elika Etemad. CSS Fragmentation Module Level 3. 2018년 12월 4일. CR. URL: https://www.w3.org/TR/css-break-3/
[CSS-COLOR-4]
Tab Atkins Jr.; Chris Lilley; Lea Verou. CSS Color Module Level 4. 2021년 12월 15일. WD. URL: https://www.w3.org/TR/css-color-4/
[CSS-DISPLAY-3]
Tab Atkins Jr.; Elika Etemad. CSS Display Module Level 3. 2021년 9월 3일. CR. URL: https://www.w3.org/TR/css-display-3/
[CSS-FONTS-3]
John Daggett; Myles Maxfield; Chris Lilley. CSS Fonts Module Level 3. 2018년 9월 20일. REC. URL: https://www.w3.org/TR/css-fonts-3/
[CSS-FONTS-4]
John Daggett; Myles Maxfield; Chris Lilley. CSS Fonts Module Level 4. 2021년 12월 21일. WD. URL: https://www.w3.org/TR/css-fonts-4/
[CSS-INLINE-3]
Dave Cramer; Elika Etemad; Steve Zilles. CSS Inline Layout Module Level 3. 2020년 8월 27일. WD. URL: https://www.w3.org/TR/css-inline-3/
[CSS-OVERFLOW-3]
David Baron; Elika Etemad; Florian Rivoal. CSS Overflow Module Level 3. 2021년 12월 23일. WD. URL: https://www.w3.org/TR/css-overflow-3/
[CSS-RUBY-1]
Elika Etemad; 외 다수. CSS Ruby Annotation Layout Module Level 1. 2021년 12월 2일. WD. URL: https://www.w3.org/TR/css-ruby-1/
[CSS-TEXT-3]
Elika Etemad; Koji Ishii; Florian Rivoal. CSS Text Module Level 3. 2021년 4월 22일. CR. URL: https://www.w3.org/TR/css-text-3/
[CSS-TEXT-DECOR-4]
Elika Etemad; Koji Ishii. CSS Text Decoration Module Level 4. 2020년 5월 6일. WD. URL: https://www.w3.org/TR/css-text-decor-4/
[CSS-VALUES-3]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 3. 2019년 6월 6일. CR. URL: https://www.w3.org/TR/css-values-3/
[CSS-VALUES-4]
Tab Atkins Jr.; Elika Etemad. CSS Values and Units Module Level 4. 2021년 12월 16일. WD. URL: https://www.w3.org/TR/css-values-4/
[CSS-WRITING-MODES-4]
Elika Etemad; Koji Ishii. CSS Writing Modes Level 4. 2019년 7월 30일. CR. URL: https://www.w3.org/TR/css-writing-modes-4/
[CSS2]
Bert Bos; 외 다수. Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification. 2011년 6월 7일. REC. URL: https://www.w3.org/TR/CSS21/
[RFC2119]
S. Bradner. Key words for use in RFCs to Indicate Requirement Levels. 1997년 3월. Best Current Practice. URL: https://datatracker.ietf.org/doc/html/rfc2119
[UAX15]
Ken Whistler. Unicode Normalization Forms. 2021년 8월 27일. Unicode Standard Annex #15. URL: https://www.unicode.org/reports/tr15/tr15-51.html

설명적 참고 문헌

[CSS-ANIMATIONS-1]
Dean Jackson; 외 다수. CSS Animations Level 1. 2018년 10월 11일. WD. URL: https://www.w3.org/TR/css-animations-1/
[CSS-COLOR-3]
Tantek Çelik; Chris Lilley; David Baron. CSS Color Module Level 3. 2022년 1월 18일. REC. URL: https://www.w3.org/TR/css-color-3/
[HTML]
Anne van Kesteren; 외 다수. HTML 표준. Living Standard. URL: https://html.spec.whatwg.org/multipage/

속성 색인

이름 초기값 적용 대상 상속 % 비율 애니메이션 유형 정규 순서 계산된 값
text-decoration <'text-decoration-line'> || <'text-decoration-style'> || <'text-decoration-color'> 개별 속성 참조 개별 속성 참조 개별 속성 참조 개별 속성 참조 개별 속성 참조 문법에 따름 개별 속성 참조
text-decoration-color <color> currentcolor 모든 요소 아니오 해당 없음 계산된 값 유형에 따름 문법에 따름 계산된 색상
text-decoration-line none | [ underline || overline || line-through || blink ] none 모든 요소 아니오 (위 본문 참조) 해당 없음 불연속 문법에 따름 지정된 키워드
text-decoration-style solid | double | dotted | dashed | wavy solid 모든 요소 아니오 해당 없음 불연속 문법에 따름 지정된 키워드
text-emphasis <'text-emphasis-style'> || <'text-emphasis-color'> 개별 속성 참조 개별 속성 참조 개별 속성 참조 개별 속성 참조 개별 속성 참조 문법에 따름 개별 속성 참조
text-emphasis-color <color> currentcolor 텍스트 해당 없음 계산된 값 유형에 따름 문법에 따름 계산된 색상
text-emphasis-position [ over | under ] && [ right | left ]? over right 텍스트 해당 없음 불연속 문법에 따름 지정된 키워드
text-emphasis-style none | [ [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] ] | <string> none 텍스트 해당 없음 불연속 문법에 따름 none 키워드, 모양/채움 키워드 쌍, 또는 문자열
text-shadow none | [ <color>? && <length>{2,3} ]# none 텍스트 해당 없음 그림자 리스트로 문법에 따름 none 또는 각 항목이 세 개의 절대 길이와 계산된 색상으로 구성된 리스트
text-underline-position auto | [ under || [ left | right ] ] auto 모든 요소 해당 없음 불연속 문법에 따름 지정된 키워드

이슈 색인

문제가 있거나, 추가 제안이나 수정 사항이 있다면, www-style@w3.org로 제목에 [css-text-decor]를 포함해 정보를 보내주세요.