2024.09.05

HTML・CSS

radial-gradientで作る水玉模様

background-imageプロパティのradial-gradientで水玉模様を作成します。わかりやすいように背景を繰り返し前と繰り返し後で比較します。
デモページはこちら

radial-gradientは以下のように指定します。開始色(中央)から終了色(外側)へのグラデーションになります。

background-image: radial-gradient(円の形状, at 円の中心位置(X軸) 円の中心位置(Y軸), 開始色 経由点, 終了色 経由点);

初期値は以下の通りです。

background-image: radial-gradient(ellipse, at center, 開始色 0, 終了色 100%);

共通のCSSは以下になります。水玉模様はdivタグの疑似要素で作成します。

.div-parent {
  position: relative;
  width: 100%;
  height: 148px;
  margin: 0 0 1em;
  background-color: #fff;
}
.div-parent::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  display: inline-block;
  width: 100%;
  height: 100%;
  background-size: 56px 56px;
}

まず、半径8pxで円の中心位置がセンター(デフォルト)の水玉模様です。

.style01::before {
  background-image: radial-gradient(#fff 8px, #87d9d1 8px);
  background-repeat: no-repeat;
}
.style02::before {
  background-image: radial-gradient(#fff 8px, #87d9d1 8px);
}

水玉模様を上下左右均等に配置する場合は、background-positionをデフォルトの0% 0%からcenterに変更します。

.style03::before {
  background-image: radial-gradient(#fff 8px, #87d9d1 8px);
  background-position: center;
}

次に、円の中心位置を左上に変更します。円が4分の1しか表示されず、繰り返しも水玉模様になりません。

.style04::before {
  background-image: radial-gradient(at left top, #fff 8px, #87d9d1 8px);
  background-repeat: no-repeat;
}
.style05::before {
  background-image: radial-gradient(at left top, #fff 8px, #87d9d1 8px);
}

円の中心位置を左からX軸方向に8px、上からY軸方向に8pxの位置に変更します。これで円が左上にぴったりくっつきました。

.style06::before {
  background-image: radial-gradient(at 8px 8px, #fff 8px, #87d9d1 8px);
  background-repeat: no-repeat;
}
.style07::before {
  background-image: radial-gradient(at 8px 8px, #fff 8px, #87d9d1 8px);
}

最後に、今まで正方形(background-size: 56px 56px)の中に円を作成しましたが、長方形(background-size: 56px 28px)に変更します。

円は楕円形になりました。これは円の形状のデフォルトがellipse(楕円形)のためです。

.style08::before {
  background-image: radial-gradient(#fff 8px, #87d9d1 8px);
  background-repeat: no-repeat;
  background-size: 56px 28px;
}

円の形状にcircle(正円)を指定します。これで長方形の中でも正円の水玉模様が作成できます。

.style09::before {
	background-image: radial-gradient(circle, #fff 8px, #87d9d1 8px);
	background-repeat: no-repeat;
	background-size: 56px 28px;
}
.style10::before {
	background-image: radial-gradient(circle, #fff 8px, #87d9d1 8px);
	background-size: 56px 28px;
}

関連記事

2020.10.10

HTML・CSS

CSSのflexbox使用時の注意点

デモページはこちら CSSのflexbox使用時の注意点をまとめました。flexboxは使い方によってレイアウトに表示崩れが発生するパターンがあります。 fle…

2021.01.30

HTML・CSS

CSS疑似要素のcontentプロパティにcounter関数で連番を指定

デモページはこちら CSS疑似要素のcontentプロパティに、CSSのcounter関数で連番を指定します。JavaScriptは使用せず、CSSのみで実装し…

2024.08.28

HTML・CSS

text-shadowで作る縁取りの文字

text-shadowプロパティを複数指定して、縁取りの文字を作ります。デモページはこちら text-shadowはbox-shadowと違い、広がりの距離とi…

2022.05.14

HTML・CSS

positionプロパティのstickyの使い方

positionプロパティのstickyの使い方と注意点です。divタグに以下のCSSを適用して動作を確認します。 デモページはこちら positionプロパテ…

2020.10.15

HTML・CSS

マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点

デモページはこちら マウスオーバー時にCSSのtransitionプロパティを実装する場合の注意点です。以下のhtml構造でテストします。 .photo01 a…

上に戻る