<p>タグから始める
どこまでアレンジできるか
<p> は HTML のブロック要素で、テキストの段落を表す。普段当たり前に使用しているタグである。<p> はブロック要素であり、並び方は縦に並ぶ。ここでは、文字の塊りに対して style や CSS を施してサイズなどをどこまでコントロールできるかを手始めに弄ってみよう。
Starting
Starting
通常の CSS はこの例のように <p> と <p> の間に余白を施す。
/* CSS */
p.standard {
margin: 10px 0;
padding: 5px;
}
段落要素だけを使うとこうなる
①. <p> を使って普通に文字列を入れてみる。この要素はブロック要素であり、段落ごとに改行されるので、文字に背景を指定すると一行で表示される。
Starting
<p style="background-color: green; color: #fff; padding: 0 8px;">Starting</p>
display: inline-block でサイズ変更
②.「display: inline-block」 を使ってサイズを変更して短く表示したい。「display: inline-block」は「didplay: block」と同じように、高さと幅、上下左右の余白である margin と padding が自由に設定できる。要素の並び方は前後に改行が入らないので横に並び inline と同じようになる。また、inline-blockでは「text-align」や「vertical-align」の指定をすることもできる。
Horizontal
Horizontal
width: fit-content で縦に並べる
③.style に「width: fit-content」 を追加して縦に並べる。width: fit-content と改行の関係は、要素の幅をコンテンツの自然な幅に合わせ、改行に柔軟に対応できる、というものだ。要素の幅を内容に合わせて自動的に調整したい場合に「width: fit-content」が便利だ。
Vertical
Vertical
<p style="width: fit-content; background-color: green; color: #fff; writing-mode: horizontal-tb; padding: 0 8px; border-radius: 12px">Vertical</p>
<p style="width: fit-content; background-color: green; color: #fff; writing-mode: horizontal-tb; padding: 0 8px; margin-top: -0.8rem; padding: 0 8px; border-radius: 12px">Vertical</p>
writing-mode を使う
writing-mode は CSS のプロパティで、テキストの行のレイアウトを横書きにするか縦書きにするか、ブロックのフロー方向を左向きにするか右向きにするかを設定する。
- writing-mode: horizontal-tb;
ltr( Left-To-Right の略で、テキストが左から右に書かれる言語を指す) の言語では、内容物は左から右へ水平に流れる。 - writing-mode: vertical-rl;
ltr の言語では、内容物は上から下へ垂直に流れ、次の垂直の行は、前の行の左に配置される。 - writing-mode: vertical-lr;
ltr の言語では、内容物は上から下へ垂直に流れ、次の垂直の行は、前の行の右に配置される。 - writing-mode: sideways-rl;
ltr の言語では、内容物は下から上へ垂直に流れる。 - writing-mode: sideways-lr;
ltr の言語では、内容物は上から下へ垂直に流れる。
writing-mode: vertical-rl で縦書きへ
③.ここでは上のリストの中から、style に「writing-mode: vertical-rl」 を追加してみる。vertical-rl;の「vertical」は縦書き、
縦書き
「rl」は右から左(Right to Left)を意味しており、右から左へ日本語の自然な縦書きの流れの指定ができる。
縦書きで
表示してみる
縦書きを横に並べたい
④. ③を二つ並べる。
縦書き
縦書き
display: inline-block
⑤. ④に「display: inline-block;」を加えて横にくっ付くように並べる。
縦書き
縦書き
角度を与える
⑥.⑤に「transform:rotate(45deg);」を加えて角度を与える。
縦書き
縦書き
縦書き
縦書き
<p style="display: inline-block; background-color: green; color: #fff; writing-mode: vertical-rl; padding: 8px 0; border-radius: 12px; transform:rotate(45deg);">縦書き</p>