CSS・見た目をもっと自由に

枠線で囲ってみる

borderで枠線の太さ・種類・色をまとめて指定する方法。1辺だけに線をつけるborder-bottomなどの書き方と、ボタンや入力欄の枠線を消したいときのborder: none;まで、よく使う形をまとめました。

「ここからここまでが、ひとかたまり」。それを目で見えるようにしてくれるのが枠線です。注意書きを囲ったり、カードのふちを描いたり。borderひとつで、部品のかたちがはっきりします。

書いてみよう

.box {
  border: 2px solid teal;
}

class="box"をつけた部品に、青緑の枠線がつきます。borderのうしろに並ぶ3つは、それぞれこういう意味です。

  • 2px … 線の太さ(数字+単位)
  • solid … 線の種類(solidはふつうの実線)
  • teal … 線の色(色の名前やコード)

「2ピクセルの、実線の、青緑の枠」と、左から順に読めます。3つをスペースでつなげて一気に書けるのがborderの便利なところです。

線の種類(solid・dashed・dotted)を変えると、枠の表情がこう変わります。

太さ・種類・色の3つを入れかえるだけで、囲み方の印象が変わります。まずはsolidから使ってみましょう。
CSS余白でゆとりをつくる内側の余白づくりを思い出そう。枠線と組み合わせると、ちょうどよく効いてくる

1辺だけに線をつける

borderは4辺ぜんぶに線をつけますが、border-bottom(下だけ)やborder-left(左だけ)のように、方向を指定した名前を使えば1辺だけに線をつけられます。

.header {
  border-bottom: 1px solid #e9e3d9;
}
.quote {
  border-left: 4px solid #e8734e;
}
下だけ・左だけと、1辺に線を引くと、線が「区切り」や「目印」の役目をします。

border-bottomはヘッダーの下端に境界線を引いて「ここまでがヘッダー」を示すときに、border-leftは引用の左に太めの線を添えて「引用ですよ」と目立たせるときによく使われます。-top・-rightもあわせて、4方向すべてに同じ考え方が使えます。

枠線を消したいときは:border: none;

ボタン(<button>)や入力欄(<input>)には、はじめから枠線がついています。デザインを自分でそろえたいときは、border: none;でいったん消してしまうのが定番です。

.btn {
  border: none;
  background-color: teal;
  color: white;
}

「線を足す」だけでなく「初期設定の線を消す」も、borderの大事な役目のひとつです。

このレッスンのまとめ

  1. 枠線はborder
  2. 太さ・種類・色の3つをスペースで区切って並べる
  3. 枠線とpaddingはセットで考えると窮屈にならない
  4. border-bottom/border-leftで1辺だけに線をつけられる

やってみよう:ヘッダーと引用に線を足す

ヘッダーにclass="lp-header"、すきなことばの引用にclass="quote"をつけましょう。

<header class="lp-header">
  ...
</header>
.lp-header {
  border-bottom: 1px solid #e9e3d9;
}
.quote {
  border-left: 4px solid #e8734e;
  padding: 14px 18px;
}

ヘッダーの下端に、うすいグレーの線が1本。引用の左には、オレンジの太い線が1本。同じborderの仲間でも、方向を変えるだけで役割が変わります。

ブラウザ表示。ヘッダーの下にうすい線、じこしょうかいの引用の左にオレンジの太い線が入っている
線が1本入るだけで、「ここまでがヘッダー」「これは引用」と、ひと目で伝わるようになります。

かたちがはっきりしたら、最後は角をまるくして、やわらかい印象に仕上げましょう。

よくある質問

borderをつけると、要素の見た目の大きさが変わるのはなぜ?
borderの太さぶん、要素は外側に大きくなるからです。少し先で習うbox-sizing: border-box;を使うと、指定した大きさのまま線を引けるようになります。
上下だけ、左右だけに線をつけたいときは?
border-top・border-right・border-bottom・border-leftを、必要な辺だけ指定すれば、好きな組み合わせで線をつけられます。
枠線を消したいときは?
border: none;で消せます。ボタンや入力欄には初期設定で枠線がついていることがあるので、デザインを自分でそろえたいときによく使います。