Webページを作っていて、枠線(border)の太さを変えたい場面はよくありますよね。
例えばボタンを目立たせたいときや、カードデザインでちょっと太い線を引きたいときなど。
CSSではborder-width
を使えば簡単に太さを調整できますが、上下左右で個別に変えたり、レスポンシブ対応するにはコツがいります。
この記事では、CSSのborderの太さを自在にコントロールする基本から応用まで、わかりやすく解説します。
CSSでborderの太さを指定する基本

border-widthの基本的な使い方
CSSでborderの太さを指定するにはborder-width
プロパティを使います。
一番よく使われる書き方は、borderプロパティで一度にまとめて指定する方法です:
.box {
border: 2px solid #333;
}
この記述の意味は以下の通りです:
2px
→ 太さsolid
→ 線のスタイル(実線)#333
→ 線の色
border-widthの単位について
太さの指定には、以下の単位がよく使われます:
px(ピクセル)
.box {
border-width: 1px; /* 細い線 */
border-width: 3px; /* 普通の線 */
border-width: 5px; /* 太い線 */
}
em(文字サイズ基準)
.box {
border-width: 0.1em; /* 文字サイズの10%の太さ */
}
rem(ルート要素基準)
.box {
border-width: 0.2rem; /* より安定した太さ */
}
実際の使用例
ボタンデザインでの活用例を見てみましょう:
/* 通常のボタン */
.button {
border: 2px solid #007BFF;
padding: 10px 20px;
background-color: white;
}
/* 強調したいボタン */
.button-primary {
border: 4px solid #007BFF;
padding: 10px 20px;
background-color: #007BFF;
color: white;
}
太さを変えるだけで、ボタンの印象がガラッと変わりますね。
次は、上下左右でそれぞれ違う太さを指定する方法を紹介します。
上下左右でborderの太さを個別に変える
border-widthの複数値指定
CSSではborder-width
に複数の値を指定することで、各方向の太さを個別に設定できます。
4つの値で指定(上 右 下 左)
.box {
border-style: solid;
border-color: #333;
border-width: 4px 2px 6px 1px; /* 上 右 下 左 */
}
その他のパターン
2つの値(上下 左右)
.box {
border-width: 3px 1px; /* 上下3px、左右1px */
}
3つの値(上 左右 下)
.box {
border-width: 5px 2px 1px; /* 上5px、左右2px、下1px */
}
1つの値(全方向同じ)
.box {
border-width: 2px; /* 全方向2px */
}
方向別プロパティで個別指定
より分かりやすく書きたい場合は、方向別のプロパティを使うこともできます:
.box {
border-top-width: 5px;
border-right-width: 2px;
border-bottom-width: 3px;
border-left-width: 1px;
}
実際のデザイン例
カード風デザイン(下だけ太い線)
.card {
border: 1px solid #ddd;
border-bottom: 4px solid #007BFF;
padding: 20px;
background-color: white;
}
アクセント線(左だけ太い線)
.highlight-box {
border-left: 5px solid #FF6B6B;
border-top: 1px solid #eee;
border-right: 1px solid #eee;
border-bottom: 1px solid #eee;
padding: 15px;
}
これで細かいデザイン調整も思いのままです。次はレスポンシブ対応のポイントを見てみましょう。
レスポンシブでborderの太さを調整する

メディアクエリを使った太さの変更
スマートフォンとパソコンで、borderの太さを変えたい場合があります。
例えば、スマホでは指で触りやすいように太めの線、PCでは繊細な細い線といった使い分けです。
.box {
border: 2px solid #333; /* PC用の基本設定 */
}
@media (max-width: 768px) {
.box {
border-width: 4px; /* スマホでは太く */
}
}
モバイルファーストでの記述
モバイルファーストで考える場合は、以下のように書きます:
/* スマホ用(基本設定) */
.box {
border: 3px solid #333;
}
/* タブレット以上 */
@media (min-width: 768px) {
.box {
border-width: 2px;
}
}
/* PC以上 */
@media (min-width: 1024px) {
.box {
border-width: 1px;
}
}
実際の活用例
ナビゲーションメニューの調整
.nav-item {
border-bottom: 1px solid #ddd;
}
@media (max-width: 600px) {
.nav-item {
border-bottom-width: 2px; /* スマホでは見やすく */
}
}
ボタンのタッチ対応
.button {
border: 2px solid #007BFF;
padding: 8px 16px;
}
@media (max-width: 768px) {
.button {
border-width: 3px; /* タッチしやすく */
padding: 12px 20px;
}
}
メディアクエリを使うと、見た目の統一感を保ちながらデバイスごとに微調整できます。
borderの太さに関するよくある質問と解決法

Q. borderが表示されない場合の対処法
A. border-styleが設定されているか確認
/* NG:スタイルがないと表示されない */
.box {
border-width: 3px;
border-color: red;
}
/* OK:スタイルを指定 */
.box {
border: 3px solid red;
}
Q. 太すぎる線を細くしたい場合
A. 小数点も使える
.thin-border {
border: 0.5px solid #ccc; /* より細い線 */
}
ただし、古いブラウザでは0.5pxが正しく表示されない場合があります。
Q. borderで要素のサイズが変わってしまう
A. box-sizingを使って解決
.box {
box-sizing: border-box; /* borderを含めたサイズ指定 */
width: 200px;
border: 5px solid #333;
}
Q. 角だけborderを付けたい場合
A. 疑似要素を活用
.corner-border {
position: relative;
}
.corner-border::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 20px;
height: 20px;
border-top: 3px solid #333;
border-left: 3px solid #333;
}
応用テクニック:borderを使ったデザインパターン
グラデーション風の太さ変化
.gradient-border {
border-top: 1px solid #333;
border-right: 2px solid #333;
border-bottom: 3px solid #333;
border-left: 2px solid #333;
}
アニメーションでborderの太さを変える
.animated-border {
border: 2px solid #007BFF;
transition: border-width 0.3s ease;
}
.animated-border:hover {
border-width: 5px;
}
border-imageとの組み合わせ
.fancy-border {
border: 10px solid;
border-image: linear-gradient(45deg, #FF6B6B, #4ECDC4) 1;
}
まとめ
CSSのborder
の太さ調整について、基本から応用まで解説しました。
この記事のポイント
- 基本は
border: 太さ スタイル 色
で一括指定 border-width
で上下左右を個別に調整可能- メディアクエリでレスポンシブ対応
- box-sizingでサイズ問題を解決
- アニメーションで動的な変化も可能
コメント