borderプロパティの説明
CSSのborder
プロパティは、要素の外周に表示される境界線の色、種類、太さを一括で指定するショートハンド・プロパティです。境界線は外枠や枠線とも呼ばれ、コンテンツを包含するボックスの縁を取り囲むように表示されます。
border
で指定できる値は、border-color
、border-style
、border-width
です。一括で指定する場合は、省略した値が初期値として扱われます。特に、border-style
の初期値はnone
であるため、省略すると表示されない点に注意して下さい。
既定値では、境界線の太さを変えると要素の外側へ向かって膨張します。これはbox-sizing
の値がcontent-box
になっているためであり、この値をborder-box
に変更することによって、内側へ向かって広がるように変更できます。
境界線に画像やグラデーションを表示させたい場合は、border-image
を使用します。グラデーションは画像扱いになるため、border
では指定できません。
このプロパティによる一括指定は、要素の四辺全てを同じ装飾にしたい場合に有効です。それぞれの辺の外枠を個別に指定する場合は、以下のいずれかのプロパティを使用して下さい。
border-top
:要素の上辺に境界線を引くborder-right
:要素の右辺に境界線を引くborder-bottom
:要素の下辺に境界線を引くborder-left
:要素の左辺に境界線を引く
borderに指定できる値
<color>
- CSSで使用できるデータ型の色の指定値です。キーワード、16進数、RGB値、HSL値などが使えます。初期値は
currentcolor
です。詳細はborder-color
を参照して下さい。 <line-style>
- 境界線をどのようなスタイルで装飾するのか、キーワードで種類を指定します。この値を省略すると、
border-style
の初期値がnone
であるため、境界線は表示されません。 <line-width>
- 境界線の太さを指定します。キーワードやCSSで使用できる単位つきの数値を与えます。初期値は
medium
です。詳細はborder-width
を参照して下さい。
borderの使い方とサンプルコード
border
プロパティの構文は以下の通りです。
/* 種類 */
border: solid;
border: dotted;
border: dashed;
/* 太さ 種類 */
border: 1px solid;
border: 3px inset;
border: 10px ridge;
/* 種類 色 */
border: double gray;
border: groove #09f;
border: solid rgba(0, 0, 0, .5);
/* 太さ 種類 色 */
border: 1px solid #333;
border: medium dashed green;
border: 1rem dotted rgba(153, 5, 35, 25%);
/* グローバル値 */
border: inherit;
border: initial;
border: revert;
border: unset;
borderの実例
それでは実際にborder
プロパティの書き方を見ていきましょう。ここでは、いくつかの要素にborder
を指定し、値を変更したものを並べて比較します。
<section class="samp_box">
<p>border</p>
<div id="border_1">1px solid #666</div>
<div id="border_2">2px dotted #06f</div>
<div id="border_3">.3rem dashed #333</div>
<div id="border_4">10px double rgba(14, 129, 153, 50%)</div>
<div id="border_5">thick ridge Green</div>
</section>
.samp_box {
padding: 0 1rem;
text-align: center;
}
.samp_box > div {
margin: 1rem auto 0 auto;
padding: 2rem 1rem;
}
#border_1 {
border: 1px solid #666;
}
#border_2 {
border: 2px dotted #06f;
}
#border_3 {
border: .3rem dashed #333;
}
#border_4 {
border: 10px double rgba(14, 129, 153, 50%);
}
#border_5 {
border: thick ridge Green;
}