줄바꿈 가능 <ruby> CSS 루비 정렬 속성을 사용하여

Mariko Kosaka

HTML <ruby> 요소는 특히 동아시아 언어에서 텍스트 표시를 향상할 수 있는 강력한 도구입니다. 이 요소를 사용하면 기본 텍스트 위나 옆에 소리나는 대로 주석 또는 기타 추가 정보를 표시할 수 있습니다. Chrome 128부터 ruby 주석은 줄바꿈이 가능하며 ruby-align CSS 속성으로 루비 텍스트의 스타일을 지정할 수 있습니다.

<ruby> 요소는 두 가지 기본 부분으로 구성됩니다. 루비 기본은 기본 텍스트이고 루비 텍스트<rt> 요소로 마크업된 주석 텍스트입니다. 다음 예와 같이 Ruby 텍스트를 루비 기반 위나 아래에 표시할 수 있습니다.

<ruby>
  絵文字
  <rt>emoji</rt>
</ruby>
영어 발음을 일본어 기본 텍스트 위에 주석으로 표시
영어 발음을 일본어 기본 텍스트 위에 주석 표시

<ruby style="ruby-position: under;">
  강남대로
  <rt>江南大路</rt>
</ruby>
중국어 주석이 한국어 한글 아래에 추가되었습니다.
한국어 한글 아래에 중국어 주석이 추가되었습니다.

왜 루비라고 부르나요?

이동식 유형을 사용하여 책 조판을 할 때 이러한 이동 가능한 유형의 크기는 Perl 및 다이아몬드와 같은 포인트 크기 이름으로 정의되었습니다. 루비는 영국 시스템에서 5.5포인트 크기를 가리킬 때 사용되었습니다. 일본 프린터는 주석 텍스트에 Ruby (5.5포인트)와 비슷한 크기를 사용했으므로, 인쇄물에서 주석 텍스트 자체를 Ruby (또는 Rubi)라고 부르기 시작했습니다. 주석 텍스트가 HTML에 포함되었을 때 요소는 <ruby>로 정의되었습니다. Pica (pc)는 CSS에서 글꼴 크기 단위로 사용되는 또 다른 과거 포인트 크기 이름입니다.

줄바꿈 가능한 루비

이전에는 루비 기반 또는 루비 텍스트가 전체 줄보다 길면 개별적으로 래핑되어 레이아웃 문제가 발생했습니다. 웹 개발자는 이 문제를 해결하기 위해 종종 여러 루비 태그를 사용하여 텍스트를 마크업합니다. 줄바꿈 가능한 루비를 사용하면 이러한 마크업 생성을 건너뛸 수 있습니다.

다음 예에서는 병음 (중국어 로마자)이 중국어 고전 시의 루비 주석 집합 하나로 추가됩니다. 현재 렌더링 결과는 ruby 주석 텍스트 영역 내에 래핑됩니다.

긴 루비 주석 텍스트가 있는 Chrome 128 이전의 결과를 렌더링합니다.
긴 루비 주석 텍스트로 Chrome 128 이전 결과 렌더링

Chrome 128에서 렌더링하면 줄바꿈 가능한 Ruby가 래핑된 기본 텍스트 위에 래핑된 Ruby 주석 텍스트를 배치하여 이상적인 텍스트 렌더링을 달성할 수 있습니다.

긴 루비 주석 텍스트가 있는 Chrome 128의 렌더링 결과
긴 루비 주석 텍스트가 있는 Chrome 128의 렌더링 결과

일본 문학의 또 다른 예에서는 긴 루비 요소 앞에 줄바꿈이 발생하여 첫 번째 줄에 공백이 생성됩니다.

긴 루비 텍스트가 포함된 Chrome 128 이전의 결과를 렌더링합니다.
긴 루비 텍스트로 Chrome 128 이전 결과 렌더링

줄바꿈 가능한 루비를 사용하면 줄바꿈이 긴 루비 요소의 중앙에 배치되어 이상적인 레이아웃을 얻을 수 있습니다.

긴 루비 텍스트가 포함된 Chrome 128의 렌더링 결과
긴 루비 텍스트로 Chrome 128의 결과를 렌더링합니다.

이 기능은 기본 문자가 4개 이하이고 주석 문자가 8자 이하인 짧은 루비 텍스트를 손상시키지 않습니다.

<ruby> 요소가 다른 <ruby> 요소 내에 중첩되어 있어도 내부 <ruby> 요소는 줄바꿈되지 않습니다.

이렇게 하면 긴 루비 텍스트를 사용하는 현재 웹페이지의 동작이 변경되므로 이 줄바꿈 동작을 사용 중지해야 하는 경우 white-space:nowrap를 적용하면 평소처럼 타겟 요소 내에서 줄바꿈이 사용 중지됩니다.

ruby-align CSS 속성

브라우저 지원

  • x
  • x
  • 38

소스

새로운 CSS 속성 ruby-align은 Chrome 128부터 사용할 수 있습니다. 이 속성은 키워드 값 space-around, space-between, start, center 중 하나를 허용하며 ruby 기본 텍스트와 ruby 주석 텍스트의 정렬을 제어합니다.

ruby-align 속성의 사용 사례를 보여주는 이미지
ruby-align 속성의 사용 사례를 보여주는 이미지