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;
}

関連記事

2025.08.08

HTML・CSS

fit-contentのセンタリングを利用した横幅可変のグラデーション背景

width: fit-contentを利用してテキストをセンタリングし、グラデーションの背景を表示します。デモページはこちら 以下のhtml構造で確認します。d…

2022.05.14

HTML・CSS

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

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

2021.02.06

HTML・CSS

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

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

2020.10.10

HTML・CSS

CSSのflexbox使用時の注意点

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

2022.05.16

HTML・CSS

メディアクエリのand条件とor条件

CSSのメディアクエリ(Media Queries)のand条件は以下のように記述します。andでつないだ全ての条件を満たす時に適用されます。 or条件は以下の…

上に戻る