枠線と角丸 — border と border-radius の書き方
枠線は3つの値を並べるだけ。角丸は数字ひとつ。単純なのに、指定する場所を間違えるとレイアウトがずれます。その理由まで含めて確かめます。
枠線と角丸は、見た目を整えるときに最初に使う指定です。書き方は単純ですが、レイアウト崩れの原因にもなりやすいので、仕組みまで押さえておきましょう。
border は3つの値を空白で並べる
.card {
/* 太さ / 種類 / 色 の順に並べる */
border: 1px solid #cbd5e1;
}- 太さ … 1px、2px など
- 種類 … solid(実線)、dashed(破線)、dotted(点線)
- 色 … 省略すると文字色と同じになる
順番はどれが先でも動きますが、太さ・種類・色の順で書くのが一般的です。この形で覚えてしまってください。
一辺だけに引く
上下左右のうち、特定の一辺だけに線を引くこともできます。見出しの下線や、引用の左の縦線でよく使います。
border-left を border-bottom に書き換えると、線の位置が変わります。太さも変えてみてください。
角丸は数字ひとつ
border-radius に数字を書くだけです。大きくするほど丸くなり、高さの半分を超えると完全な円や、カプセル型になります。
border-radius の値を 0、8px、999px と変えてみてください。999px にするとカプセル型になります。
4つの角を別々に指定したいときは、値を4つ並べます。順番は左上から時計回りです。
枠線を足すとレイアウトがずれる理由
border は要素の大きさに加算されます。width: 200px の箱に 2px の枠線を付けると、実際の幅は204pxになります。横並びにしているときは、これで折り返しが起きることがあります。
対策はいつもの1行です。box-sizing: border-box を指定しておくと、枠線や余白を含めた大きさで計算されるようになります。
*, *::before, *::after {
box-sizing: border-box;
}ホバーで枠線の色を変えるときのコツ
「ふだんは枠線なし、ホバーしたら枠線を出す」と書くと、その瞬間に要素が大きくなってガタつきます。最初から透明な枠線を置いておき、色だけを変えるとガタつきません。
マウスを乗せてみてください。透明な枠線を最初から確保しているので、大きさは変わりません。
outline という別の線もある
outline は border とよく似ていますが、要素の大きさに影響しません。そのため、デバッグで全要素に線を引くときや、キーボード操作時のフォーカス表示に使われます。フォーカスの outline は消さないでください。消すと、キーボードだけで操作している人が現在位置を見失います。