CSS Nite
『CodeGridから読み解くイマドキのCSS 第二弾』
ruby
, rt
, rp
<ruby> 春<rp>(</rp><rt>はる</rt><rp>)</rp> </ruby>
<ruby> <rb>春</rb><rp>(</rp><rt>はる</rt><rp>)</rp> </ruby>
rb
要素は削除され、非標準となった
ruby
rt
rp
<ruby> <ruby> 春<rp>(</rp><rt>はる</rt><rp>)</rp> </ruby> <rp>(</rp><rt lang="en">spring</rt><rp>)</rp> </ruby>
<ruby> <rb>春</rb> <rp>(</rp><rt>はる</rt><rp>)</rp> <rp>(</rp><rtc lang="en">spring</rtc><rp>)</rp> </ruby>
rp
要素について<ruby> 春<rp>(</rp><rt>はる</rt><rp>)</rp> </ruby> <ruby> 春<rt>はる</rt> </ruby>
ruby-position
プロパティ
ルビ関係のCSSプロパティは
いくつかあるが、まずはこれを
覚えておきたい
.over { -webkit-ruby-position: before; /* Safari */ ruby-position: over; } .under { -webkit-ruby-position: after; /* Safari */ ruby-position: under; }
<ruby class="over"> 春<rp>(</rp><rt>はる</rt><rp>)</rp> </ruby> <ruby class="under"> 春<rp>(</rp><rt>はる</rt><rp>)</rp> </ruby>
<ruby> <ruby> 春<rp>(</rp><rt>はる</rt><rp>)</rp> </ruby> <rp>(</rp><rt lang="en">spring</rt><rp>)</rp> </ruby>
.under { -webkit-ruby-position: after; ruby-position: under; } .under > ruby { -webkit-ruby-position: before; ruby-position: over; }
<ruby class="under"> <ruby> 春<rp>(</rp><rt>はる</rt><rp>)</rp> </ruby> <rp>(</rp><rt lang="en">spring</rt><rp>)</rp> </ruby>
text-emphasis
プロパティ
text-emphasis
はショートハンドプロパティ
text-emphasis-style
text-emphasis-color
em { font-style: normal; /* 初期スタイルをリセット */ -webkit-text-emphasis: dot; /* Chrome */ text-emphasis: dot; }
<p> …<br> 窓越しに<em>ソメイヨシノ</em>を見ながら… </p>
em { font-style: normal; -webkit-text-emphasis: dot open; text-emphasis: dot open; }
em { font-style: normal; -webkit-text-emphasis: "★"; text-emphasis: "★"; }
em { font-style: normal; color: tomato; -webkit-text-emphasis: dot; text-emphasis: dot; }
em { font-style: normal; color: inherit; -webkit-text-emphasis: dot tomato; text-emphasis: dot tomato }
<em> もうすぐ <ruby> 春<rp>(</rp><rt>はる</rt><rp>)</rp> </ruby> ですね </em>
em { font-style: normal; -webkit-text-emphasis: dot; text-emphasis: dot }
hanging-punctuation
プロパティfirst
、last
、allow-end
またはforce-end
force-end
はサポートなし<p>「もうすぐ春ですね」</p> <p>□窓越しにソメイヨシノを見ながら、彼は言葉を紡いだ。</p>
p { margin-inline: auto; width: 8em; background-color: antiquewhite; hanging-punctuation: first last allow-end; }
first
last
end
end
ではぶら下げられない<p> 「もうすぐ春ですね」<br> □窓越しにソメイヨシノを見ながら、彼は言葉を紡いだ。 </p>
first
は1字下げに使える?<p> 「もうすぐ春ですね」<br> 窓越しにソメイヨシノを見ながら、彼は言葉を紡いだ。 </p>
p { margin-inline: auto; width: 9em; background-color: antiquewhite; hanging-punctuation: first last allow-end; text-indent: 1em; }
<p>「もうすぐ春ですね」</p> <p>窓越しにソメイヨシノを見ながら、彼は言葉を紡いだ。</p>
last
とallow-end
は未サポート環境に影響を及ぼさないfirst
は場合によっては影響があるので注意が必要以上を考慮すれば、使ってもよさそう
<p> 「もうすぐ 春ですね」 </p>
区分分断の変形規則
<p> 「もうすぐ 春ですね」 </p>
(中国語などもあるので、正確には日本語に限らない)
日本語HTMLは1行が長くなりがち
区分分断の変形規則により、
これらが解消されると考えられる
text-spacing
プロパティtext-autospace
という名前だったtext-autospace
とtext-trim
の仕様が合体してtext-spacing
へいろいろできます!
日本語で嬉しい機能を紹介
半角英数と日本語の文字との
間に1/4文字の空白を加える
(おおまかな表現。正確にはもっと複雑)
<p> 2021年11月19日のCSS Nite情報 </p>
p { text-spacing: ideograph-alpha ideograph-numeric; }
<p> 2021 年 11 月 19 日の CSS Nite 情報 </p>
text-spacing
利用
行頭の開き括弧類や
行末にある閉じ括弧類の
空白を調整
p { width: 9em; background-color: antiquewhite; }
<p> 「もうすぐ春ですね」 </p>
p { width: 9em; background-color: antiquewhite; text-spacing: trim-start; }
p { width: 9em; background-color: antiquewhite; text-spacing: trim-start trim-end; }
p { width: 18em; background-color: antiquewhite; }
<p> 「もうすぐ春ですね」と彼は言ったが、「それは違う」と私は小声で反論した。 </p>
p { width: 18em; background-color: antiquewhite; text-spacing: trim-start; }
p { width: 18em; background-color: antiquewhite; text-spacing: trim-start space-first; }
連続する開き括弧類や
閉じ括弧類の空白を調整
p { width: 25em; background-color: antiquewhite; }
<p> 「『春はあけぼの』清少納言の言葉だ」彼は言った。<br> 「こうも遺した『夏は夜』」私は続ける。<br> 「『秋は夕暮れ』・『冬はつとめて』」最後は二人で。 </p>
p { width: 25em; background-color: antiquewhite; text-spacing: trim-adjacent; }
CSS組版プロジェクト「Vivliostyle」
text-spacing
のサポートを開始hanging-punctuation
も対象バージョンは 2.12.0 (2021-11-13)
ありがとうございました