WEB Tips デザイン・コーディング

CSSだけでできるボーターデザイン例、複数ボーダーを重ねたりグラデーションを表現する

2015-05-19

本記事にはプロモーションが含まれています。

CSSだけでできるボーターデザイン例、複数ボーダーを重ねたりグラデーションを表現する

Webデザインでのボーダーは必ず使われるといってもいい重要な要素です。見出しやボタンを目立たせたり、区切りとしての役割を担ったりします。

最近はCSSだけでもボーダーのデザインは多彩にできるようになりました。

本記事ではCSSでできるボーダーデザイン例をまとめました。

テキストの下だけにライン

<div class="section section0">
  <h2>文字の下だけにライン</h2>
</div>

文字の下だけにボーダーを引く場合はボーダーを引きたい要素にdisplay:inline-blockを適用します。

但し中央揃えにしたい場合、display:inline-blockを指定するとmarginが効かなくなるのでラッパー.section0text-align:centerを指定します。

2色重ねたアンダーライン

やりたかったのはこんな感じのやつです。

ボーダーを2色重ねる

便宜上.sectionで囲っていますがデザイン上の意味はありません。

<div class="section section1">
 <h2>2色重ねたアンダーライン</h2>
</div>

::after擬似クラスで作ったボーダーを重ねています。

タイトルの両端にボーダー ショートタイプ

タイトルの両端にボーダー、ショートタイプ
<div class="section section3">
 <h2>タイトルの両端にボーダー ショートタイプ</h2>
</div>

タイトル文字の両側にボーダーがあるデザイン、文字の量が多い場合にはみ出ないようにラッパーの.section4overflow:hiddenではみ出すラインを隠します。

同じく.section4に指定しているtext-align:centerh2が中央寄せになります。

タイトルの両端にボーダー ロングタイプ

タイトルの両端にボーダー、ロングタイプ
<div class="section section4">
  <h2>タイトルの両端にボーダー ロングタイプ</h2>
</div>

ショートタイプとほぼ同じですが、before,after疑似要素が横いっぱいに広がるようにwidthに大きな値を指定しています。

二重線のタイトル borderとoutline

borderとoutlineを使った二重線
<div class="section section5">
  <h2>二重線のタイトル</h2>
</div>

borderとoutlineプロパティで二重線を簡単に作成できます。outlineはborderよりも外側になります。

注意するのは、outlineにはborder-radiusはききません。border-raidusで角丸にしたい場合は別の方法で実装することになります。

box-shadowで複数ボーター、角丸にする

box-shadowの四重線、外側に向かってボーダーが重なる
<div class="section section6">
 <h2>box-shadowの四重線</h2>
</div>

複数のボーターを設定してさらに角丸にするにはbox-shadowプロパティで実現できます。

シャドウを実線にする場合は第3引数のぼかしの値を0にします。第4引数のシャドウの広がりがボーダーの太さになります。

またボーダーは設定順に内側から描画されるので、外側にいくほど内側の太さを含めた数値にします。

上記の例だと、内側から外側に向かってボーダーが重なっていくので、すぐ隣に別の要素があった場合に影響を与えてしまいます。(上の場合はmarginプロパティでボーダー分を調整しています)

insetを使えば、内側にボーダーを重ねていくことができます。

※内側に向かってボーダーが重なるので順序が逆になります。

box-shadowの四重線、insetで内向きになる
.section6 h2{
 margin:0;
 padding:28px;
 border-radius:20px;
 box-shadow:0 0 0 5px #ddf2eb inset,
            0 0 0 10px #d3cdd7 inset,
            0 0 0 15px #bc9cb0 inset,
            0 0 0 20px #606d5d inset;
}

グラデーションのライン

border-imageプロパティでグラデーションのボーダー
<div class="section7 section">
 <h2>グラデーションのライン</h2>
</div>

グラデーションのラインもborder-imageプロパティを使えば簡単に表現できます。

文字の下だけにグラデーションのライン

display:inline-blockで文字の下だけにボーダーを引きます。

6色ボーダーライン

spanでボックスを作ってボーダーのように見せる
<div class="section8 section">
 <div class="header">
   <h2>6色ボーダーライン</h2>
     <span></span><span></span>
 </div>
</div>

少しハック的ですがspanプロパティでボーダーを表現しています。高さを指定するので、文章量が決まっている場合のみ有効です。

二重のボーダー

疑似要素を使って二重の囲い枠
<div class="section section9">
 <h2>二重のボーダー</h2>
</div>

疑似要素で二本のボーダーを表現しています。

DEMO

今月キャンペーン特典があるサービス

  • エックスサーバー
    利用料最大30%キャッシュバッグ月額693円&ドメイン永久無料 - 2024年5月1日(水)12:00まで
  • ConoHa WING
    WINGパック36ヶ月で月額678円 53%OFF ドメイン2個無料 - 2024年4月19日(金)16:00まで
  • カラフルボックス
    ドメイン永久無料特典とBOX2以上の月額費用が50%OFFのクーポンコード「SERVER50

-WEB Tips, デザイン・コーディング
-