【CSS】borderの使い方を徹底解説!

CSSにおけるborderは、要素の枠線を指定するための重要なプロパティです。この記事では、基本的な使い方から応用的な使い方までを徹底的に解説します。

border-radiusを使った丸め方やborder-colorを使った色の指定方法、border-widthを使った太さの指定方法など、様々な使い方を見ていきましょう。

目次

border-widthについて

数値で太さを指定する方法

border-widthは、borderの枠線の太さを指定するプロパティです。1pxから指定することもできます。書き方は、以下のようになります。

.example {
  border-width: 1px;
}

このように指定することで、.exampleというクラスに適用される要素の枠線の太さが1pxになります。

border-top-width, border-left-widthなどで個別に太さを指定する方法

また、border-top-width、border-right-width、border-bottom-width、border-left-widthといったプロパティを使用することで、特定の方向の枠線のみ太さを指定することもできます。

例えば、次のように書くことで、上下左右の枠線の太さをそれぞれ異なる値に指定することができます。

.example {
  border-top-width: 1px;
  border-right-width: 2px;
  border-bottom-width: 3px;
  border-left-width: 4px;
}

このようにborder-widthを使用することで、枠線の太さを細かく調整することができます。

太さを一括で指定する方法

一括指定するには、「border-width」プロパティを使用します。

例:

div {
  border-width: 1px 2px 3px 4px; /* 上右下左の順に指定 */
}

もしくは

div {
  border-width: 1px 2px 3px; /* 上右下は同じ値に指定 */
}

上記のように、上下左右の順に値を指定することで、上下左右のborder-widthを一括で指定することができます。

また、上下左右で値が同じならば、1つの数値を指定することで全てを指定することができます。

注意点としては、上下左右の指定がない場合は全ての値が同じになります。

例:

div {
  border-width: 1px; /* 上下左右全て1px */
}

emや%で太さを指定する方法

border-widthプロパティにemや%を指定することで、親要素のフォントサイズに対しての相対的な太さを指定することができます。例えば、border-width:2em;とすることで、親要素のフォントサイズの2倍の太さになります。

次のようにCSSの中でemや%でborder-widthを指定することができます。

/* emで指定する場合 */
.example {
  border-width: 0.5em; /* 0.5emの太さ */
}

/* %で指定する場合 */
.example {
  border-width: 10%; /* 10%の太さ */
}

上記の例では、classが”example”の要素に対して、border-widthを0.5emと10%で指定しています。

border-styleについて

solid,dotted,dashedなどのスタイルの指定方法

border-styleについては、HTMLの要素に対して、枠線のスタイルを指定するために使用されます。スタイルには様々なオプションがありますが、一般的に使用されるスタイルにはsolid、dotted、dashedがあります。

solidスタイルは、枠線が実線で表示されるスタイルです。例えば、以下のように指定します。

border-style: solid;

dottedスタイルは、枠線が点線で表示されるスタイルです。例えば、以下のように指定します。

border-style: dotted;

dashedスタイルは、枠線が破線で表示されるスタイルです。例えば、以下のように指定します。

border-style: dashed;

このように、border-styleプロパティを使用することで、枠線のスタイルをsolid、dotted、dashedなど、様々なスタイルに指定することができます。

noneで枠線を消す方法

border-styleプロパティに「none」を指定することで、枠線を消すことができます。

.example {
  border-style: none;
}

このように記述することで、class=”example”に指定された要素の枠線が消えます。

ただし、枠線の太さや色などはそのままになりますので、border-widthやborder-colorも「0」や「transparent」などに指定することで、完全に枠線を消すことができます。

.example {
  border-style: none;
  border-width: 0;
  border-color: transparent;
}

このように記述することで、枠線が完全に消すことができます。

border-top-style, border-left-styleなどで個別にスタイルを指定する方法

border-top-styleやborder-left-styleなどの個別指定方法は、特定のエッジだけ特定のスタイルを適用することができます。

例えば、枠線の上部だけを太くするために、 border-top-widthプロパティを使用して、上部の枠線の太さを指定し、border-top-styleプロパティを使用して上部の枠線のスタイルを指定することができます。

.example {
  border-top-width: 5px;
  border-top-style: solid;
  border-left-style: dotted;
  border-right-style: dashed;
  border-bottom-style: double;
}

上記の例では、.exampleというクラスが適用される要素に対して、上部の枠線は5pxの幅でsolidのスタイル、左部の枠線はdottedのスタイル、右部の枠線はdashedのスタイル、下部の枠線はdoubleのスタイルが適用されます。

このように、個別に枠線のスタイルを指定することで、枠線のデザインをより詳細にカスタマイズすることができます。

スタイルを一括指定する方法

border-styleプロパティは、枠線のスタイルを指定するために使用されます。枠線のスタイルには、solid、dotted、dashedなどのオプションがあります。

一括でborder-styleを指定するには、次のように記述します。

border-style: solid dotted dashed;

これにより、上下左右の枠線のスタイルを一度に指定することができます。順番によっては、上、右、下、左の順に適用されます。

例えば、上下左右の枠線をそれぞれsolid、dotted、dashedに指定する場合は次のように記述します。

border-style: solid dotted dashed;

このように、一括指定をすることで、CSSの記述量を減らすことができます。

ただし、この方法は、上下左右の枠線のスタイルをそれぞれ異なるものに指定することはできませんので、個別に指定する必要がある場合は別途指定が必要です。

border-colorについて

色名、RGB、HEXなどで色を指定する方法

border-colorは、HTMLの要素に枠線の色を指定するためのプロパティです。

色を指定する方法には、色名、RGB、HEXなどがあります。

色名で指定する場合は、色名を直接指定します。例えば、border-color: red;とすることで、枠線の色を赤に指定できます。

RGBで指定する場合は、rgb(R, G, B)と記述します。R、G、Bはそれぞれ赤、緑、青の色の値で、0から255までの数値を指定します。例えば、border-color: rgb(255, 0, 0);とすることで、枠線の色を赤に指定できます。

HEXで指定する場合は、#RRGGBBと記述します。RR、GG、BBはそれぞれ赤、緑、青の色の値を16進数で指定します。例えば、border-color: #ff0000;とすることで、枠線の色を赤に指定できます。

以上のように、border-colorは様々な方法で色を指定することができ、自分のイメージに合わせて指定することができます。

transparentで透明にする方法

transparentを指定することで、透明にすることもできます。これは、枠線が見えないようにします。例えば、次のように記述することで、枠線を透明にすることができます。

border-color: transparent;

ただし、これを使用する際には、border-widthも0に指定しなければならないことに注意してください。

border-color: transparent;
border-width: 0;

border-top-color, border-left-colorなどで個別に色を指定する方法

border-top-colorやborder-left-colorなどの個別指定方法は、border-top, border-leftなどのプロパティに対して、colorを指定することで行うことができます。

例えば、border-top-colorを青色にするには、次のように記述します。

border-top: solid 2px blue;

このように、border-topに対してsolid 2px blueと指定することで、上部の枠線の色を青色にすることができます。

また、border-left-colorを赤色にするには、次のように記述します。

border-left: dashed 3px red;

このように、border-leftに対してdashed 3px redと指定することで、左部の枠線の色を赤色にすることができます。

注意点としては、border-top-colorやborder-left-colorなどの個別指定を行う場合は、それぞれの要素に対して指定を行う必要があります。

また、上記の例では色名で色を指定していますが、RGBやHEXなどでも指定することができます。

border-top: solid 2px #0000ff;

このようにHEXで指定することも可能です。

色を一括指定する方法

border-colorプロパティを使って枠線の色を一括で指定することができます。

.red-border {
  border-color: red;
}

また、RGBやHEXで色を指定することもできます。

.custom-color-border {
  border-color: rgb(255, 0, 0); /* red */
  border-color: #ff0000; /* red */
}

border-colorプロパティを一括指定することもできます。

.all-borders {
  border: 1px solid red;
}

このように、borderプロパティによって、枠線の太さ、スタイル、色を一度に指定することができます。

transparentを指定すると枠線が透明になり、見えなくなります。

.transparent-border {
  border-color: transparent;
}

border-top-color, border-left-colorなどの個別に指定することもできます。

.different-borders {
  border-top-color: red;
  border-right-color: green;
  border-bottom-color: blue;
  border-left-color: yellow;
}

このように、上下左右それぞれに色を指定することができます。

border-radiusについて

border-radiusプロパティは、ボックスの角を丸くするために使用します。

上下左右の半径を指定することができます。

下記のように指定します。

border-top-left-radius: 半径;
border-top-right-radius: 半径;
border-bottom-right-radius: 半径;
border-bottom-left-radius: 半径;

半径はpxで指定します。例えば、上下左右の半径を10pxに指定するには、下記のようになります。

border-top-left-radius: 10px;
border-top-right-radius: 10px;
border-bottom-right-radius: 10px;
border-bottom-left-radius: 10px;

また、上下左右の半径を一括指定することもできます。

border-radius: 上下の半径 左右の半径;

例えば、上下左右の半径を全て5pxに指定するには下記のようになります。

border-radius: 5px;

注意点としては、この値が大きすぎると、不格好になるので、適切な大きさを指定することが重要です。

borderの線を内側・外側にする方法

「CSS」では、「border」プロパティを使用して要素に枠線を設定することができます。しかし、枠線は通常要素の外側に設定されます。「border」プロパティを使用して、要素の内側に枠線を設定することもできます。

方法は二つあります。

1つ目は、「box-sizing」プロパティを使用する方法です。「box-sizing」プロパティに「border-box」を指定することで、枠線を要素の内側に設定することができます。

box-sizing: border-box;

2つ目は、「padding」プロパティを使用する方法です。「padding」プロパティは、要素の内側のスペースを設定するためのプロパティです。「padding」プロパティを使用して、枠線と同じ幅のスペースを設定することで、要素の内側に枠線を設定することができます。

padding: 1px;

どちらの方法でも、要素の内側に枠線を設定することができるので、好みに合わせて使用することができます。

borderの長さを変更する方法

「CSS」では、「border」プロパティを使用して要素に枠線を設定することができます。「border」プロパティによって枠線の長さを変更することはできません。「border」は、要素の周りに囲まれる枠線を定義するためのプロパティです。

代わりに、「padding」プロパティを使用して、要素の内側からの枠線の余白を変更することができます。「padding」プロパティは、要素の内側にある余白を定義します。

例えば、以下のように「padding」プロパティに「20px」を指定することで、要素の内側からの枠線の余白を20ピクセルにすることができます。

padding: 20px;

「padding」プロパティは、「padding-top」「padding-right」「padding-bottom」「padding-left」など、辺ごとに個別に指定することもできます。

このように「padding」プロパティを使用することで、要素の内側からの枠線の余白を変更することができ、要素をよりスマートに見せることができます。

borderの組み合わせについて

border-width, border-style, border-colorを一度に指定する方法

border-width, border-style, border-colorなどを個別に指定することも可能ですが、それらを一度に指定する方法もあります。

一度に指定するには、borderプロパティを使用します。 borderプロパティは、枠線の太さ、スタイル、色を指定するためのショートハンドプロパティです。

指定方法は、「border: 太さ スタイル 色;」のように書きます。 太さはpxで指定します。スタイルにはsolid,dotted,dashedなどがあります。色には、色名、RGB、HEXなどで指定します。

例えば、枠線を1pxの線で、solidスタイル、赤色にしたい場合は以下のように指定します。

border: 1px solid red;

また、上下左右それぞれに異なる設定をすることも可能です。上下左右の個別に指定するには、border-top, border-right, border-bottom, border-leftを使用します。

例えば、上下は1pxの線でsolidスタイル、赤色にし、左右はdottedスタイル、青色にしたい場合は以下のように指定します。

border-top: 1px solid red;
border-right: 1px dotted blue;
border-bottom: 1px solid red;
border-left: 1px dotted blue;

一度に指定することで、スタイルシートをスッキリさせることができます。また、上下左右それぞれに異なる設定をすることで、より詳細なデザインを実現することができます。

borderの上書きについて

borderの上書きについては、CSSではスタイルの上書きが優先順位によって決まります。通常、後に書かれたスタイルが優先されますが、!importantを使用することで、優先順位を上げることができます。

例えば、HTMLにはclass=”first”が付与されたdiv要素があり、CSSではclass=”first”に対してborder-color: red;が指定されていたとします。次に、class=”second”が付与されたdiv要素に対して、border-color: blue;が指定されていた場合、class=”first”のdiv要素のborder-colorは赤色になります。

しかし、class=”second”に対して、border-color: blue !important;とすることで、優先順位を上げて、class=”second”のdiv要素のborder-colorは青色になります。

ただし、!importantを使用することは、一般的には非推奨であり、原則として、記述を簡潔にすることや、適切なCSSの設計によって上書きを避けるようにすることが望ましいです。

border-imageプロパティとの組み合わせについて

border-imageプロパティは、枠線に画像を使用するためのプロパティです。border-imageを使うことで、枠線に独自の画像を使用し、デザイン性の高い枠線を実現することができます。

border-imageとborderプロパティを組み合わせることで、枠線の太さやスタイル、色を指定しながら、画像を使用した枠線を実現することができます。

例えば、以下のように記述します。

.example {
  border-width: 10px;
  border-style: solid;
  border-color: #ff0000;
  border-image: url(border.png) 30 round;
}

上記の例では、border-widthで枠線の太さを10px、border-styleでsolid、border-colorで赤色に指定しています。そして、border-imageで画像を使用し、30px分の画像を枠線に使用し、roundで切り取った部分を丸めるように指定しています。

このように、border-imageとborderプロパティを組み合わせることで、枠線のデザイン性を高めることができます。

borderでグラデーションをつける方法

border-colorプロパティでグラデーションを指定

linear-gradient関数を使用する方法

border-colorプロパティでグラデーションを指定する方法には、linear-gradient関数を使用する方法があります。これは、CSS3から導入された機能で、縦または横にグラデーションをかけることができます。

使用方法は以下の通りです。

border-color: linear-gradient(to right, #ff0000, #00ff00);

この例では、右から左に赤色から緑色にグラデーションした枠線を指定しています。to rightの部分でグラデーションの方向を指定し、最初の値は赤色、最後の値は緑色になります。

また、to top, to bottom, to leftなど、様々な方向を指定することができます。

このようにborder-colorプロパティでグラデーションを指定することで、より視覚的に魅力的なデザインを実現することができます。

radial-gradient関数を使用する方法

border-colorプロパティでグラデーションを指定する方法として、radial-gradient関数を使用する方法があります。これは、円形グラデーションを指定するための関数で、以下のように記述します。

border-color: radial-gradient(shape size at position, start-color, ..., last-color);

shapeは、グラデーションの形状を指定します。circleを指定すると、円形グラデーションになります。sizeは、グラデーションの大きさを指定します。at positionは、グラデーションの中心位置を指定します。start-colorからlast-colorまでは、グラデーションの開始色から終了色を指定します。

例えば、border-colorを下記のように指定すると、円形グラデーションが適用され、赤から青に変化するような枠線を作成することができます。

border-color: radial-gradient(circle, red, blue);

ただし、この機能は一部のブラウザでのみサポートされているため、すべてのブラウザで正しく表示されるわけではありません。対応ブラウザで正しく表示するためには、JavaScriptなどを使用した対応策が必要です。

multiple backgroundを使用する方法

「multiple background」とは、複数の背景画像を1つの要素に対して適用することを指します。これを実現するには、background-imageプロパティを複数回指定します。

以下は、背景に画像A、B、Cを重ねる例です。

div {
  background-image: url(imageA.jpg), url(imageB.jpg), url(imageC.jpg);
}

このように記述することで、画像A、B、Cがそれぞれ重なって表示されます。

また、背景画像ごとに位置を指定することもできます。background-positionプロパティを使用します。

div {
  background-image: url(imageA.jpg), url(imageB.jpg), url(imageC.jpg);
  background-position: top left, center, bottom right;
}

このように記述することで、画像Aは左上、画像Bは中央、画像Cは右下に配置されます。

このように、multiple backgroundを使用することで、複数の背景画像を組み合わせることができ、より豊富な表現が可能になります。

border-imageプロパティとbackground-imageプロパティを組み合わせる方法

border-imageプロパティとbackground-imageプロパティを組み合わせることで、ボーダーに画像を使用することができます。これは、背景画像を使用してボーダーを装飾するための非常に強力な方法です。

以下は、background-imageプロパティとborder-imageプロパティを組み合わせる方法の例です。

.example {
    background-image: url(bg-image.jpg);
    border-image: url(border-image.png) 30 30 round;
}

上記の例では、背景にbg-image.jpg、枠線にborder-image.pngを使用しています。また、border-imageプロパティの30 30は、上下左右それぞれの画像の幅を指定しています。roundは切り取り方法を指定しています。

このようにbackground-imageプロパティとborder-imageプロパティを組み合わせることで、ボーダーに画像を使用することができます。これにより、デザイン性の高いボーダーを作成することができます。

CSS3 animationを使用したグラデーションのアニメーション効果の付与方法

CSS3 animationを使用したグラデーションのアニメーション効果を付与するには、次のような手順を踏むことができます。

@keyframes ルールを使用して、アニメーションの変化を定義します。

@keyframes gradient {
  from { border-color: #f00; }
  to { border-color: #0f0; }
}

border-colorプロパティにアニメーションを適用するための animation プロパティを指定します。

.box {
  border: solid 10px;
  animation: gradient 2s linear;
}

animation-iteration-countプロパティを使用して、アニメーションを繰り返す回数を指定します。

.box {
  animation: gradient 2s linear infinite;
}

これで、border-colorプロパティにグラデーションアニメーションが適用されます。詳細は、@keyframesルールやanimationプロパティなどのCSS3 animationに関するドキュメントを参照することで、より理解を深めることができます。

三角形や角丸の線にグラデーションを与える方法

三角形や角丸の線グラデーションを作るには、CSSのborder-radiusプロパティとborder-imageプロパティを組み合わせることで実現できます。

まずは、三角形の線グラデーションを作る場合を見ていきましょう。HTMLに三角形を描画するための要素を用意し、そこに対してCSSを適用します。

HTML:

<div class="triangle"></div>

CSS:

.triangle {
  width: 0;
  height: 0;
  border-top: 50px solid red;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
}

これで三角形が描画されます。次に、border-imageプロパティを使用してグラデーションをかけます。

CSS:

.triangle {
  width: 0;
  height: 0;
  border-top: 50px solid;
  border-left: 50px solid transparent;
  border-right: 50px solid transparent;
  border-image: linear-gradient(to bottom, red, blue) 1;
}

これで三角形の線にグラデーション効果がかかります。角丸の場合も同様にborder-radiusプロパティを使用し、border-imageプロパティでグラデーションをかけることで実現できます。

しかしながら、以上の方法は一部ブラウザでは非対応なこともあるので、互換性を考慮したデザインにする必要があります。

border-collapseとは?

「border-collapse」は、テーブルのセル間の枠線をどのように表示するかを指定するプロパティです。

「border-collapse」プロパティには、「collapse」と「separate」の2つの値があります。

  • 「collapse」: セル間の枠線を重ね合わせる方式です。これにより、セル間の枠線は1本の線として表示されます。
  • 「separate」: セル間の枠線を個別に表示する方式です。これにより、セル間の枠線は個別に表示されます。

デフォルト値は「separate」です。「collapse」を指定するとセル間の枠線が重なった状態になり、表の印象が変化する可能性があります。

例えば、以下のように「border-collapse」プロパティに「collapse」を指定することで、セル間の枠線を重ね合わせることができます。

table {
    border-collapse: collapse;
}

「border-collapse」プロパティは、table要素で使用する際に有効であり、単独で使用することはできません。

まとめ

本記事ではCSSにおけるborderについて、基本的な使い方から応用的な使い方までを徹底解説しました。

border-radiusを使った丸め方やborder-colorを使った色の指定方法、border-widthを使った太さの指定方法など、様々な使い方を紹介しました。

これらの情報をもとに、自分のスタイルに合わせたborderを使って、より魅力的なサイトを作成していきましょう。