CSSはクーポンスタイルを実装するために放射状グラデーションを使用します

CSSはクーポンスタイルを実装するために放射状グラデーションを使用します

この記事では、CSS で放射状グラデーションを使用して、次の図に示すクーポン スタイルの効果を実現する方法を紹介します。

描画の基本スタイル

まず、クーポンの基本的なスタイルを描きます。これは非常にシンプルなので、詳しく説明しません。

<div class="バウチャー">
  <div class="left"></div>
  <div class="right">100 から 30 を引いた金額を支出</div>
</div>

/* SCSS */
.バウチャー{
  幅: 600ピクセル;
  高さ: 200px;
  ディスプレイ: フレックス;
  。左 {
    幅: 30%;
    高さ: 100%;
    背景色: #f76260;
  }
  。右 {
    高さ: 100%;
    境界線: 1px 実線 #ddd;
    フレックス: 1;
    ディスプレイ: フレックス;
    アイテムの位置を中央揃えにします。
    コンテンツの中央揃え: 中央;
    フォントサイズ: 40px;
  }
}

鋸歯状実装の構造

ギザギザの部分は、実際には下図のように 10 個の画像断片がつなぎ合わされたものと見ることができます。各セグメントの幅は 6 ピクセルで、鋸歯の半径と同じで、高さは 20 ピクセルです。したがって、そのセグメントを描画し、それを繰り返して残りの部分を埋める必要があります。


バウチャー疑似要素にギザギザのスタイルを追加して完了です。

&::前に {
  コンテンツ: '';
  位置: 絶対;
  高さ: 100%;
  幅: 6px;
  左: 0;
  上: 0;
  背景画像: 放射状グラデーション(0px 10pxの円、白6px、#f76260 6px);
  背景サイズ: 6px 20px;
}

ここでのコアコードは、background-image: radial-gradient(circle at 0px 10px, white 6px, #f76260 6px); です。これは実際には、background-image: radial-gradient(circle at 0px 10px, white 0, white 6px, #f76260 6px, #676260 100%); という省略形の記述方法で、これは放射状グラデーションが位置 (0px, 10px) から始まり、グラデーションの形状は円で、0 から 6px までは白から白 (純色) に徐々に変化し、6px からグラフィックの端までは #f76260 から #f76260 (純色) に徐々に変化することを意味します。

ジグザグ スタイルのコードを再利用するには、scss ミックスインを定義します。

/**
  * より良い結果を得るためには、次の点に注意してください。
  * 1. $height は $num で割り切れる * 2. 2 * $radius < $height / $num
  */
@mixin leftSawtooth($height, $num, $radius, $color, $bgColor) {
  $セグメントの高さ: $height / $num;
  高さ: $height;
  &::前に {
    コンテンツ: '';
    位置: 絶対;
    高さ: 100%;
    幅: $radius;
    左: 0;
    上: 0;
    背景画像:
      放射状グラデーション(0pxの円、$segmentHeight / 2、$bgColor $radius、$color $radius);
    背景サイズ: $radius $segmentHeight;
  }
}

これにより、非常に便利に使用できます。

@include leftSawtooth(600px, 10, 6px, #f76260, white);

アップグレード版

アップグレード版のギザギザの色が左部分の背景色と一致していません。実装には多少の違いがありますが、考え方は同じです。

まず、基本的なスタイルを描きます。

.バウチャー{
  幅: 600ピクセル;
  高さ: 200px;
  マージン: 20px 自動;
  ディスプレイ: フレックス;
  位置: 相対的;
  境界線: 1px 実線 #ddd;
  。左 {
    幅: 30%;
    高さ: 100%;
    border-right: 1px 破線 #ddd;
  }

  。右 {
    高さ: 100%;
    フレックス: 1;
    ディスプレイ: フレックス;
    アイテムの位置を中央揃えにします。
    コンテンツの中央揃え: 中央;
    フォントサイズ: 40px;
  }
}

次にギザギザの部分を描きます。ここでの円の半径は 5 ピクセルの空白部分と 1 ピクセルの境界線の合計であるため、背景フラグメントの描画には追加のグラデーションが必要であることに注意してください。

背景画像: 放射状グラデーション(0px 10pxの円、
  white 5px, /* 円の内側の色は背景色です*/
  #ddd 5ピクセル、
  #ddd 6ピクセル、
  transparent 6px /* 円の外側の色は透明です*/
);

円の内側の色を背景色に設定し、円の外側の色を透明色に設定していることに注意してください。その理由については後で説明します。現在の効果は目標に近づいてきていますが、まだいくつかの違いがあります。


解決策は、疑似要素を境界線のサイズだけ左に移動することです。こうすると、半円の左側の線は円の内側の色で覆われますが、他の場所は透明なので線は残ります(円の内側の色を背景色、円の外側の色を透明色に設定するのはこのためです)。

完全なミックスインは次のようになります。

@mixin leftSawtoothBorder($height, $num, $radius, $bgColor, $borderColor, $borderWidth) {
  $セグメントの高さ: $height / $num;
  $extendedRadius: $radius + $borderWidth;
  高さ: $height;
  &::前に {
    コンテンツ: '';
    位置: 絶対;
    高さ: 100%;
    幅: $extendedRadius;
    左: -$borderWidth;
    上: 0;
    背景画像: 放射状グラデーション(0pxの円 $segmentHeight / 2,
      $bgColor $radius、
      $borderColor $radius、
      $borderColor $extendedRadius、
      透明 $extendedRadius
    );
    背景サイズ: $extendedRadius $segmentHeight;
  }
}

要約する

上記は、ラジアルグラデーションを使用してクーポンスタイルを実現する CSS の紹介です。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。すぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

<<:  MySQL公式パフォーマンステストツールmysqlslapの使い方の紹介

>>:  ユーザーエクスペリエンスの構築

推薦する

HTML Webページの例を使用してヘッドエリアコードの意味を説明する

例を使って、Webページのヘッダー情報の意味を理解しましょう。 <!DOCTYPE HTML ...

MySQL curdate() 関数の詳細な例

MySQL CURDATE関数の紹介文字列コンテキストまたは数値コンテキストの YYYMMDD 形式...

Linux の非常に詳細な gcc アップグレード プロセス

目次序文1. 現在のgccバージョン2. gccをインストールする3.gmpのインストール4.MPF...

CSS子要素選択親要素の実装

通常、CSS セレクターは上から下に選択し、親要素を介して子要素を選択します。では、子要素を介して親...

タブバーのいくつかの実装方法(推奨)

タブ: カテゴリ + 説明タグバー: カテゴリ => ユーザーに現在地と目的地を知らせる1. ...

MySQL の最初のインストールが成功した後にパスワードを初期化する手順

ファイルをディレクトリに解凍しますこれは解凍後のディレクトリですmy.iniファイルを入力しますダブ...

vue backtop コンポーネントを実装するための完全なコード

効果: コード: <テンプレート> <div class="back-t...

ウェブページで CSS スタイルを適用するさまざまな形式の概要

1. インライン スタイル (<body></body> 内に配置されます)...

MySQLインデックスが使用されない状況のまとめ

MySQL のインデックスの種類一般的に、次の 4 つのカテゴリに分類できます。通常のインデックス:...

CSS3を使用してボタンホバーフラッシュダイナミック特殊効果コードを実装する

CSS3 の列シリーズ属性を使用してウォーターフォールレイアウトを作成する方法を紹介しました。興味の...

MySQL統計テーブルのサイズを説明する例

各データベース内の各テーブルのサイズをカウントすることは、データ ガバナンスの最も単純な要件の 1 ...

ドロップダウンメニューを表示または非表示にするJavaScript

この記事では、ドロップダウンメニューを表示および非表示にするJavaScriptの具体的なコードを参...

CSS テキスト配置実装コード

フォームを作成するときに、名前、携帯電話番号、出生地などの 2 つのフィールドを揃える状況に遭遇する...

JS を使用して要素が配列であるかどうかを判断する例

検証できるデータの種類は次のとおりです a = [1,2,3,4,5,6]とします。 b = [とし...

mysql の追加、削除、変更、クエリの基本ステートメント

文法以下は、MySQL テーブルにデータを挿入するための INSERT INTO コマンドの一般的な...