Chrome 119 から 123 へのロールアウトでは、CSS 書き込みモード レベル 4 の新しい国際 CSS 機能が導入されます。フォーム コントロール要素の縦書きモードとは、これらの要素を縦書きモードで表示できることを意味します。Chrome 123 では、この機能がすべてのユーザーに対して有効になります。この投稿では、この機能について説明します。
テキストベースのフォーム コントロール要素の縦書きモード
この機能が完全に有効になると、ボタン、選択リスト、進行状況要素などのフォーム コントロール要素に縦書きモードを使用できるようになります。使用するには、CSS プロパティの writing-mode を、ブロックの流れ方向が左から右の場合は vertical-lr
、右から左の場合は vertical-rl
に設定します。
これは、従来、縦書きを使用していた多くの東アジアの言語に役立ちます。たとえば、従来の日本語は縦書きで右から左に書かれることがよくあります。
以下に、縦型フォーム コントロールの国際化の例を示します。
ボタン
<html lang="zh">
<button>请点击</button>
button {
writing-mode: vertical-rl;
}
<select>
要素
<select>
要素ですべてのテキストを縦方向に表示するように指定できます。
select {
writing-mode: vertical-lr;
}
<select multiple>
<option>日本語
<option>中文
<option>English
<option>français
<option>فارسی
</select>
<select>
<option>日本語
<option>中文
<option>English
<option>français
<option>فارسی
</select>
なお、現在の実装では、ポップアップ ウィンドウのオプションは横向きで表示されます。
テキストベースの入力
多くのテキスト入力ベースのフォーム コントロールで、テキスト入力時に縦書きモードを使用できるようになりました。
textarea {
writing-mode: vertical-rl;
width: 5em;
height: 20em;
}
<textarea>
古池や蛙飛び込む水の音
ふるいけやかわずとびこむみずのおと
</textarea>
スライダー
フォーム要素の値を視覚的に表示することも有用です。<meter>
、<progress>
、<input type=range>
などのスライダーは、この機能を実行します。
以前は、非標準の CSS 外観値 slider-vertical
を使用して、<range>
のみを垂直方向にレンダリングできました。これで、CSS writing-mode
プロパティを使用して、3 つすべてを縦方向に表示できるようになりました。
input[type="range"], meter, progress {
writing-mode: vertical-lr;
}
デフォルトでは、CSS の方向は ltr
に設定されています。つまり、値は上から下へレンダリングされます。値の方向を下から上にするには、方向を rtl
に設定します。
input[type="range"], meter, progress {
writing-mode: vertical-lr;
direction: rtl;
}
Chrome 122 では、値の向きを変更する試験運用版があります。フィードバックがございましたらお知らせください。
意見交換とフィードバックの提供
これらの機能に関するフィードバックがある場合は、crbug.com で問題を報告してください。