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.22

HTML・CSS

縦積みinline-flexの折り返しとwriting-modeによる代用

inline-flexで縦積みにした場合の折り返しと、writing-modeで縦積みにした場合の折り返しを確認します。デモページはこちら htmlは以下の単純…

2022.08.28

HTML・CSS

親要素にtransformが設定されている場合のposition: fixed;

通常、position: fixed;でtop: 0;left: 0;の場合、画面の左上が基準位置になります。しかし、親要素(先祖を含む)にtransformが…

2024.09.22

HTML・CSS

linear-gradientで作る格子模様と市松模様

background-imageプロパティのlinear-gradientで、1pxの線のみの格子模様と塗りと塗り無しの市松模様を作成します。デモページはこちら…

2020.08.30

HTML・CSS

Font Awesomeの使い方

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

2024.09.09

HTML・CSS

border-radiusプロパティを利用した要素サイズいっぱいの角丸

border-radiusプロパティを利用して、要素サイズいっぱいの角丸を作成します。デモページはこちら まず正方形にborder-radius: 50%を指定…

上に戻る