2025.07.01

HTML・CSS

mask-imageを利用したグラデーションの点線

CSSのmask-imageプロパティを利用して、グラデーションの点線を作成します。
デモページはこちら

グラデーションの点線は疑似要素にmask-imageプロパティを適用して作成しますが、まずmask-image適用前の状態を確認します。background: linear-gradientでグラデーションのみ適用されている状態です。

.div-child {
  height: 100px;
  position: relative;
  z-index: 0;
}
.mask-before::before {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, #0016A7 -0.28%, #007FF9 99.93%);
}

次に、mask-image: repeating-linear-gradientで点線を再現します。背景の青のグラデーションを白と透明のグラデーションでトリミングします。結果、白の部分に青のグラデーションが表示され、透明の部分は色がなくなり点線になります。

mask-positionの初期値は0% 0%なのでdivタグの上部に点線が表示されます。ここでは明示的に、mask-position: topを指定しています。

.mask-top::before {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, #0016A7 -0.28%, #007FF9 99.93%);
  mask-image: repeating-linear-gradient(90deg, #fff 0 4px, transparent 4px 8px);
  mask-size: 100% 2px;
  mask-repeat: no-repeat;
  mask-position: top;
}

同様に疑似要素afterも追加してmask-position: bottomを指定すればdivタグの下部にも点線が表示できます。

.mask-bottom::after {
  content: "";
  display: block;
  position: absolute;
  z-index: -1;
  inset: 0;
  background: linear-gradient(90deg, #0016A7 -0.28%, #007FF9 99.93%);
  mask-image: repeating-linear-gradient(90deg, #fff 0 4px, transparent 4px 8px);
  mask-size: 100% 2px;
  mask-repeat: no-repeat;
  mask-position: bottom;
}

なお、mask-sizeの初期値はauto、mask-repeatの初期値はrepeatです。repeating-linear-gradientはグラデーションが繰り返されるので、mask-repeatはno-repeatを指定しています。

関連記事

2023.02.13

HTML・CSS

隣接セレクタ、間接セレクタ、直下セレクタについて

隣接セレクタ、間接セレクタ、直下セレクタの動作を確認します。デモページはこちら 隣接セレクタ 間接セレクタ 直下セレクタ A + B A ~ B A > …

2024.09.21

HTML・CSS

mask-imageを利用したSVGの画像切り抜き

CSSのmask-imageプロパティを利用して、SVGで画像を切り抜きます。デモページはこちら まず、以下をmask.svgとして保存します。 共通のCSSは…

2021.02.06

HTML・CSS

高さを判定してoverflow-yプロパティで縦スクロール

画面の高さが要素の高さよりも低くなった場合、要素にoverflow-yプロパティを適用して要素内のコンテンツを縦スクロールで表示します。デモページはこちら 画面…

2020.10.30

HTML・CSS

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

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

2020.08.30

HTML・CSS

Font Awesomeの使い方

Font Awesomeの公式サイトで使用したいアイコンフォントを選びます。Iconsのページでアイコンフォントの一覧が確認できます。有料版と無料版があり有料版…

上に戻る