2024.08.22

HTML・CSS

box-shadowで作る縁取りの枠線

box-shadowプロパティの重なりを利用して、縁取りの枠線を作ります。
デモページはこちら

box-shadow: 水平方向の距離 垂直方向の距離 ぼかしの距離 広がりの距離 影の色 inset;

htmlの構造は以下の通りです。

<p>上階層のbox-shadow</p>
<div class="div01">テキストテキストテキストテキスト</div>

<p>下階層のbox-shadow</p>
<div class="div02">テキストテキストテキストテキスト</div>

<p>上階層と下階層のbox-shadowの組み合わせ</p>
<div class="div03">テキストテキストテキストテキスト</div>

まず上階層のbox-shadowです。
縁取りの枠線は右下方向に作成するので、box-shadowの水平方向と垂直方向の距離に8pxを指定します。ぼかしの距離は必ず0にします。ぼかしがあるとくっきりとした枠線になりません。また上階層は広がりの距離も0とします。

//上階層
.div01 {
  margin: 0 0 2em;
  padding: 40px;
  border: 3px solid #161616;
  background-color: #fff;
  border-radius: 12px;
  box-shadow: 8px 8px 0 0 #e5f50a;
}

次に下階層のbox-shadowです。
上階層と異なる点は、広がりの距離を3pxとする箇所です。これで上階層からはみ出た3pxがボーダーのように見えます。

//下階層
.div02 {
  margin: 0 0 2em;
  padding: 40px;
  border: 3px solid #161616;
  background-color: #fff;
  border-radius: 12px;
  box-shadow: 8px 8px 0 3px #161616;
}

最後に上階層と下階層のbox-shadowの組み合わせです。
box-shadowを複数指定する場合はカンマで区切ります。最初の指定が上階層、2番目の指定が下階層になります。

//上階層, 下階層
.div03 {
  margin: 0 0 2em;
  padding: 40px;
  border: 3px solid #161616;
  background-color: #fff;
  border-radius: 12px;
  box-shadow: 8px 8px 0 0 #e5f50a, 8px 8px 0 3px #161616;
}

関連記事

2020.10.30

HTML・CSS

Twitterボタンの設置とカスタマイズ

デモページはこちら Twitterボタンの設置とカスタマイズのまとめです。ボタンのソースコードは以下の公式サイトから生成できます。ただし、jsの読み込みが必要に…

2020.07.05

HTML・CSS

rubyタグでテキストにルビ(ふりがな)を振る

rubyタグとrtタグの二つを使ってテキストにルビ(ふりがな)を振ります。rtタグはふりがな、rubyタグはテキストとふりがな(rtタグを含む)の両方を囲います…

2022.07.17

HTML・CSS

Google Fontsの読み込みをDNSプリフェッチで最適化

DNSプリフェッチを利用すると、外部ドメイン名(ホスト名)の名前解決(DNSルックアップ)を事前に強制できます。 WEBページ表示時ブラウザが外部ドメインにアク…

2020.10.15

HTML・CSS

CSS疑似要素のcontentプロパティにjQueryで設定したカスタムデータ属性の値を指定

デモページはこちら CSS疑似要素のcontentプロパティにjQueryで設定したカスタムデータ属性の値を指定します。以下のhtml構造でテストします。デモペ…

2021.10.04

HTML・CSS

複数行のテキストの左側を縦のボーダーで装飾

デモページはこちら 複数行のテキストの左側を縦のボーダーで装飾します。CSSはborder-leftの場合とheightを設定した疑似要素beforeをabso…

上に戻る