<ruby> có thể phá vỡ dòng và CSS ruby-align

Mariko Kosaka

Phần tử HTML <ruby> là một công cụ mạnh mẽ giúp cải thiện hiệu quả trình bày văn bản, đặc biệt là đối với các ngôn ngữ ở khu vực Đông Á. Phần tử này cho phép bạn hiển thị chú thích phiên âm hoặc các thông tin bổ sung khác ở trên hoặc bên cạnh văn bản cơ sở. Từ Chrome 128, chú thích màu hồng ngọc sẽ có thể ngắt dòng và bạn có thể tạo kiểu cho văn bản màu hồng ngọc bằng thuộc tính CSS ruby-align.

Phần tử <ruby> bao gồm 2 phần chính: đ cơ ruby là văn bản chính và văn bản hồng ngọc là văn bản chú thích, được đánh dấu bằng phần tử <rt>. Văn bản màu hồng ngọc có thể được hiển thị bên trên hoặc bên dưới đế hồng ngọc, như trong các ví dụ sau.

<ruby>
  絵文字
  <rt>emoji</rt>
</ruby>
Phát âm tiếng Anh dưới dạng chú thích trên văn bản cơ bản tiếng Nhật.
Phát âm tiếng Anh như một chú thích trên văn bản cơ sở tiếng Nhật.

<ruby style="ruby-position: under;">
  강남대로
  <rt>江南大路</rt>
</ruby>
Chú thích tiếng Trung được thêm bên dưới chữ Hangul tiếng Hàn
Chú thích tiếng Trung được thêm vào bên dưới chữ Hangul tiếng Hàn.

Tại sao nó lại gọi là hồng ngọc?

Khi sách được sắp chữ bằng các loại có thể di chuyển, kích thước của các loại có thể di chuyển này được xác định trong tên kích thước điểm như Perl và Diamond. Ruby được sử dụng trong hệ thống của Anh để tham chiếu đến kích thước 5,5 điểm. Các máy in Nhật Bản sử dụng một kích thước tương tự như Ruby (5,5 điểm) cho văn bản chú thích và vì vậy bắt đầu coi văn bản chú thích là Ruby (hoặc Rubi theo phiên âm) trong các bản in. Khi văn bản chú thích được đưa vào HTML, phần tử được xác định là <ruby>. Pica (pc) là một tên kích thước điểm trước đây được sử dụng trong CSS làm đơn vị kích thước phông chữ.

Hồng ngọc có thể ngắt dòng

Trước đây, nếu một chuỗi ruby-base hoặc một văn bản màu hồng ngọc dài hơn toàn bộ một dòng, thì chúng được gói riêng lẻ để tạo ra các thử thách bố cục. Để khắc phục điều này, các nhà phát triển web thường đánh dấu một đoạn văn bản bằng nhiều thẻ ruby. Với màu ruby có thể ngắt dòng, bạn có thể bỏ qua việc tạo mã đánh dấu như vậy.

Trong ví dụ sau, bính âm (chữ Hán được La-tinh hoá) được thêm dưới dạng một tập hợp các chú thích màu hồng ngọc về thơ cổ điển Trung Quốc. Kết quả kết xuất hiện tại sẽ bao bọc trong vùng văn bản chú thích màu hồng ngọc.

Kết quả hiển thị trước Chrome 128 với văn bản chú thích dài màu hồng ngọc.
Kết quả hiển thị trước Chrome 128 với văn bản chú thích dài màu hồng ngọc.

Kết xuất từ Chrome 128 với các vị trí màu hồng ngọc có thể ngắt dòng được bao bọc văn bản chú thích màu hồng ngọc được bao bọc trên văn bản cơ sở được bao bọc để đạt được khả năng hiển thị văn bản lý tưởng.

Kết quả hiển thị trên Chrome 128 với văn bản chú thích dài màu hồng ngọc.
Kết quả hiển thị trên Chrome 128 với văn bản chú thích dài màu hồng ngọc.

Trong một ví dụ khác trong văn học Nhật Bản, dấu ngắt dòng xảy ra trước thành phần màu hồng ngọc dài, tạo ra một khoảng trống trong dòng đầu tiên.

Kết quả hiển thị trước Chrome 128 với văn bản dài màu hồng ngọc.
Kết quả hiển thị trước Chrome 128 với văn bản dài màu hồng ngọc.

Với viên hồng ngọc có thể ngắt dòng, dấu ngắt dòng được đặt ở giữa phần tử hồng ngọc dài đạt được bố cục lý tưởng.

Kết quả hiển thị trên Chrome 128 với văn bản dài màu hồng ngọc.
Kết quả hiển thị trên Chrome 128 với văn bản dài màu hồng ngọc.

Tính năng này sẽ không làm hỏng văn bản màu hồng ngọc ngắn có ít hơn hoặc bằng 4 ký tự cơ sở và ít hơn hoặc bằng 8 ký tự chú thích.

Khi một phần tử <ruby> được lồng vào một phần tử <ruby> khác, phần tử <ruby> bên trong sẽ không bị ngắt dòng.

Do điều này làm thay đổi hành vi của các trang web hiện tại sử dụng văn bản màu hồng ngọc dài, nên nếu bạn cần tắt hành vi ngắt dòng này thì việc áp dụng white-space:nowrap sẽ tắt dấu ngắt dòng bên trong phần tử đích như bình thường.

Thuộc tính CSS ruby-align

Hỗ trợ trình duyệt

  • x
  • x
  • 38

Nguồn

Thuộc tính CSS mới ruby-align cũng có trong Chrome 128. Thuộc tính này chấp nhận một trong các giá trị từ khoáspace-around, space-between, startcenter, đồng thời kiểm soát cách căn chỉnh văn bản cơ sở màu hồng ngọc và văn bản chú thích màu hồng ngọc.

Hình ảnh minh hoạ trường hợp sử dụng thuộc tính ruby-align.
Hình ảnh minh hoạ trường hợp sử dụng tài sản ruby-align.