Webページ上に「ノートのような罫線つきのデザインを実装したい!」という方もいるかと思います。
単純に線を引くだけならborder
プロパティを使えばよいのですが、ノートの罫線のように何本も線を引く場面には向いていません…。
そこで今回の記事では、CSSのグラデーションlinear-gradient()
を使用して、ノート風の罫線を引くデザインの実装方法を紹介します!
この方法を使うと、文字の長さや改行に合わせて何本も線を引くことができるので、オススメです。
また、文字サイズ、罫線の色、背景色などのカスタマイズ方法も解説しますので、是非参考にしてみてください。
【コピペ用】ノート風罫線デザインの実装サンプルと実装コード
ここでは、2種類の罫線スタイルを用意しました。
- 実線のスタイル
- 点線のスタイル
実装コードも載せておくので、コピペするだけでお使いいただけます。
カスタマイズしたい・コードの内容を詳しく知りたい方は、次の章に進んでください。
ノート風罫線の実装サンプル1. 実線のスタイル
ノートの罫線デザインの実装サンプルです。CSSのlinear-gradient()関数で実装しています。文章の長さに合わせて、自動的に罫線が引かれます。ノートの罫線デザインの実装サンプルです。CSSのlinear-gradient()関数で実装しています。文章の長さに合わせて、自動的に罫線が引かれます。
<div class="note">
<p>ここに文章を入れてください。</p>
</div>
.note {
background-color: #fff; /* 背景色 */
background-image: linear-gradient(180deg, #ccc 1px, transparent 1px); /* 罫線の色と太さ */
background-size: 100% 2.5em; /* 行の高さ */
line-height: 2.5em; /* 文字の高さ */
padding-bottom: 1px; /* 最終行の下にも罫線を引く */
}
ノート風罫線の実装サンプル2. 点線のスタイル
ノートの罫線デザインの実装サンプルです。CSSのlinear-gradient()関数で実装しています。文章の長さに合わせて、自動的に罫線が引かれます。ノートの罫線デザインの実装サンプルです。CSSのlinear-gradient()関数で実装しています。文章の長さに合わせて、自動的に罫線が引かれます。
<div class="dashed-note">
<p>ここに文章を入れてください。</p>
</div>
.dashed-note {
background-color: #fff; /* 背景色 */
background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%), /* 点線1の色 */
linear-gradient(180deg, #ccc 1px, transparent 1px); /* 点線2の色と太さ */
background-size: 8px 100%, /* 点線1のサイズ */
100% 2.5em; /* 点線2のサイズ */
line-height: 2.5em; /* 文字の高さ */
padding-bottom: 1px; /* 最終行の下にも罫線を引く */
}
ノート風罫線デザイン(実線)の解説とカスタマイズ方法
ここからは、ノート風罫線デザインのコード解説とカスタマイズ方法を紹介していきます。
まずは実線のスタイルから見ていきましょう。
ノート風罫線(実線)のコード解説
<div class="note">
<p>ここに文章を入れてください。</p>
</div>
まずは文章を囲うためのdiv
タグを用意し、note
クラスを付けます。
この中にp
タグを入れ、文章を書き入れると、HTMLは完成です。
文章が短いと1行に収まってしまうので、文章を長めにして改行させることでよりノートっぽく見えますね。
.note {
background-color: #fff; /* 背景色 */
background-image: linear-gradient(180deg, #ccc 1px, transparent 1px); /* 罫線の色と太さ */
background-size: 100% 2.5em; /* 行の高さ */
line-height: 2.5em; /* 文字の高さ */
padding-bottom: 1px; /* 最終行の下にも罫線を引く */
}
続いてCSSの解説です!
少し複雑なので、以下の4つに分けて説明します。
- ノートの背景色を指定
- linear-gradient()で罫線の色と太さを指定
- 各行の高さを指定
- 最終行の下にも罫線を引く
①ノートの背景色を指定
background-color: #fff; /* 背景色 */
background-color
プロパティには、ノートの背景色を指定することができます。
サンプルでは白にしていますが、好みに合わせて自由に変えてください。
②linear-gradient()で罫線の色と太さを指定
background-image: linear-gradient(180deg, #ccc 1px, transparent 1px); /* 罫線の色と太さ */
linear-gradient()
関数で、罫線の色と太さを指定しています。通常はグラデーションカラーを作るのによく使われていますね。
罫線の仕組みは、以下の図のようになっています。
まとめると、一番上から1pxまでの間はボーダーの色、1pxから一番下までは透明にするということですね。
省略せずに書くと、以下のようになります。
/* 0%から1pxまでは#ccc, 1pxから100%まではtransparent */
background-image: linear-gradient(180deg, #ccc 0%, #ccc 1px, transparent 1px, transparent 100%);
こちらの書き方だと仕組みが理解しやすいですね。
どちらの方法で書いても同じ意味になるので、好きなほうを使ってください。
罫線の色を指定する方法
background-image: linear-gradient(180deg, #ccc 1px, transparent 1px);
線の色を変えたい場合は、#ccc
となっている部分にカラーコードを記入してください。
罫線の太さを指定する方法
background-image: linear-gradient(180deg, #ccc 1px, transparent 1px);
線の太さを変えたい場合は、1px
となっている2つの箇所に数値を記入してください。
太すぎると不自然に見えるので、最大でも3px以内にとどめておくのがいいですね。
③各行の高さを指定
各行の高さは、background-size
とline-height
で調節します。
background-size: 100% 2.5em; /* 行の高さ */
line-height: 2.5em; /* 文字の高さ */
2.5em
という指定が2箇所ありますね。
ここの数値で、各行の高さを指定することができます。
これら2箇所の数値は同じにしておかないと崩れるので、必ず同じ数値を指定してください。
また、単位にem
を指定しているため、文字サイズに応じて高さが自動的に調整されます。
④最終行の下にも罫線を引く
padding-bottom: 1px; /* 最終行の下にも罫線を引く */
この指定をすることで、最終行の下にも線を引くことができます。
この1px
という数値は、②で指定した罫線の太さと同じにする必要があるので、その点注意してください。
ノート風罫線(実線)のカスタマイズ方法まとめ
ノートの罫線デザインの実装サンプルです。CSSのlinear-gradient()関数で実装しています。文章の長さに合わせて、自動的に罫線が引かれます。ノートの罫線デザインの実装サンプルです。CSSのlinear-gradient()関数で実装しています。文章の長さに合わせて、自動的に罫線が引かれます。
.note {
background-color: #fff; /* 背景色 */
background-image: linear-gradient(180deg, #ccc 1px, transparent 1px); /* 罫線の色と太さ */
background-size: 100% 2.5em; /* 行の高さ */
line-height: 2.5em; /* 文字の高さ */
padding-bottom: 1px; /* 最終行の下にも罫線を引く */
}
ノート風罫線デザイン(点線)の解説とカスタマイズ方法
続いては、ノート風罫線デザインの点線スタイルについて解説していきます。
こちらは実線よりも少し複雑になります。
ノート風罫線(点線)のコード解説
<div class="dashed-note">
<p>ここに文章を入れてください。</p>
</div>
先程と同じように、div
タグにクラスを付与します。ここではdashed-note
にしました。
このdiv
の中にp
タグで文章を挿入してください。
.dashed-note {
background-color: #fff; /* 背景色 */
background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%), /* 点線1の色 */
linear-gradient(180deg, #ccc 1px, transparent 1px); /* 点線2の色と太さ */
background-size: 8px 100%, /* 点線1のサイズ */
100% 2.5em; /* 点線2のサイズ */
line-height: 2.5em; /* 文字の高さ */
padding-bottom: 1px; /* 最終行の下にも罫線を引く */
}
- ノートの背景色を指定
- linear-gradient()で2種類の線を作る
- 各行の高さを指定
- 最終行の下にも罫線を引く
先程はlinear-gradient()
で1本の罫線をつくりましたが、今回は2つの線を用意して重ねるという作業が必要になります。
①ノートの背景色を指定
background-color: #fff; /* 背景色 */
background-color
プロパティには、ノートの背景色を指定してください。
後ほど説明しますが、背景色を変更する場合は、ステップ②にも変更を加える必要があります。
②linear-gradient()で2種類の線を作る
ここで点線を作っていくのですが、以下のように2つのlinear-gradient()
を使用する必要があります。
background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%), /* 線1 */
linear-gradient(180deg, #ccc 1px, transparent 1px); /* 線2 */
background-size: 8px 100%, /* 線1 */
100% 2.5em; /* 線2 */
- 線1を作成
- 線2を作成
- 2つの線を重ねて点線にする
これらの作業が必要ですので、順番に見ていきましょう。
2-1. 線1を作成
まずは、線1を作っていきます。
background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%);
background-size: 8px 100%;
CSSのこの部分が1つ目の線になります。
コードだけだとわかりにくいので、linear-gradient()
の部分がどうなっているのかを図にしてみました。
グラデーションの角度は90deg
なので、左から右という意味になります。
0% ~ 50%
は透明、50% ~ 100%
は白となっていますね。
これにbackground-size
を足すと、以下の図のようになります。
横幅は8px
となり、高さは100%
なので、行の高さの100%という意味になります。
この2つが合わさると、以下のようになります。
透明と白のグラデーションが、8px
ごとにX軸方向にリピートされていますね。
これはbackground-repeat
というプロパティの初期値がrepeat
になっているためです。
これによって、8px
のグラデーションが要素の背景を埋めるまで繰り返し表示されます。
これで線1は完成したので、次で2つ目の線を作成していきましょう。
2-2. 線2を作成
ノート風罫線(実線)のコード解説で、実線を作る方法を説明しましたね。
ここでも同じものを使用します。
background-image: linear-gradient(180deg, #ccc 1px, transparent 1px);
background-size: 100% 2.5em;
それぞれのコードを図で表すと、以下のようになります。
グラデーションの角度は180deg
なので、上から下に色が変わります。
上から1pxまでは線の色(#ccc
)、1pxから下は透明(transparent
)という指定をすることで、罫線を引くことができました。
これで2つの線が完成したので、次でこれらを重ねていきます。
2-3. 2つの線を重ねて点線にする
background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%), /* 線1 */
linear-gradient(180deg, #ccc 1px, transparent 1px); /* 線2 */
background-size: 8px 100%, /* 線1 */
100% 2.5em; /* 線2 */
上記のコードで、2本の線を作成しましたね。
これらを重ねると、以下の図のようになります。
線1と線2を重ねることで、点線が実装できているのが確認できますね。
transparent
と指定した部分は透明になっていますが、ここには①で指定した背景色が表示されます。
なので、背景色を変更する場合は、background-color
と線1の色を同じにする必要がありますね。
background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%),
linear-gradient(180deg, #ccc 1px, transparent 1px);
background-color: #fff;
上記のコード内で#fff
となっている箇所は、すべて同じ色で揃えてください。
これで綺麗な点線が実装できました!
③各行の高さを指定
background-size: 8px 100%, /* 点線1のサイズ */
100% 2.5em; /* 点線2のサイズ */
line-height: 2.5em;
各行の高さは、background-size
とline-height
で指定します。
2.5em
となっている2箇所に同じ数値を設定してください。
④最終行の下にも罫線を引く
padding-bottom: 1px; /* 最終行の下にも罫線を引く */
最終行の下にも線を引くために、1px
の余白を用意します。
この1px
という数値は、ステップ②で設定した罫線の太さと同じにしてください。
ノート風罫線(実線)のカスタマイズ方法まとめ
ノートの罫線デザインの実装サンプルです。CSSのlinear-gradient()関数で実装しています。文章の長さに合わせて、自動的に罫線が引かれます。ノートの罫線デザインの実装サンプルです。CSSのlinear-gradient()関数で実装しています。文章の長さに合わせて、自動的に罫線が引かれます。
.dashed-note {
background-color: #fff; /* 背景色 */
background-image: linear-gradient(90deg, transparent 0%, transparent 50%, #fff 50%, #fff 100%), /* 点線1の色 */
linear-gradient(180deg, #ccc 1px, transparent 1px); /* 点線2の色と太さ */
background-size: 8px 100%, /* 点線1のサイズ */
100% 2.5em; /* 点線2のサイズ */
line-height: 2.5em; /* 文字の高さ */
padding-bottom: 1px; /* 最終行の下にも罫線を引く */
}
ノートのような実線・点線スタイルはCSSのみで実装可能!
今回の記事では、linear-gradient()
を使用してノート風の罫線を引く方法を紹介しました。
文字サイズに合わせて行の高さを自動調整してくれるので、どんな文字サイズでも綺麗に表示されます。
また、文章が長い場合・改行が多い場合でも文章全体に罫線を引いてくれるので、すごく便利ですね。
ノート風の罫線をWebページで実装したい方は、ぜひ活用してみてください!
コメント