CSS で中空効果を実装するサンプルコード

CSS で中空効果を実装するサンプルコード

効果原理

主にCSSグラデーションを使用して、切り取りを必要としない背景のくり抜きを実現します。

クーポンスタイル

.mixinsTicket(@width, @height, @r, @left, @lcolor, @rcolor) {
    幅: @width;
    高さ: @height;
    背景:
              放射状グラデーション(右上の円、透明@r、@lcolor 0) -(@width - @left) 上部 ~'/' 100% 51% 繰り返しなし、
              放射状グラデーション(右下の円、透明@r、@lcolor 0) -(@width - @left) 下 ~'/' 100% 51% 繰り返しなし、
              放射状グラデーション(左上の円、透明@r、@rcolor 0) @left 0 ~'/' 100% 51% 繰り返しなし、
              放射状グラデーション(左下の円、透明@r、@rcolor 0) @left bottom ~'/' 100% 51% no-repeat;
} 

.mixinsTicket1(@width, @height, @r, @top, @color) {
   幅: @width;
   高さ: @height;
   背景:
               放射状グラデーション(左下の円、透明@r、@color 0) 左 (@top - @height) ~'/' 51% 100% 繰り返しなし、
               放射状グラデーション(左上の円、透明@r、@color 0) 左 @top ~'/' 51% 100% 繰り返しなし、
               放射状グラデーション(右下の円、透明@r、@color 0) 右 (@top - @height) ~'/' 51% 100% 繰り返しなし、
               放射状グラデーション(右上の円、透明@r、@color 0) 右 @top ~'/' 51% 100% 繰り返しなし;
   &::後{
     コンテンツ: '';
     表示: ブロック;
     位置: 絶対;
     幅: calc(100% - 2 * @r);
     左: @r;
     トップ: @top;
     border-top: 1px 破線 #fff;
     変換: translateY(.5);
   }
}

カットアウェイ効果

ps: 鋸歯状波はデバイスのディスプレイに関連しています

.mixinFlag(@width, @height, @bg) の場合(default()) {
    幅: @width;
    高さ: @height;
    背景:
              線形グラデーション(45度、透明 sqrt(pow(@width/2, 2)/2)、@bg 0) 右、
              linear-gradient(-45度、透明、sqrt(pow(@width/2, 2)/2)、@bg 0) 左;
    背景サイズ: 50% 100%;
    背景繰り返し: 繰り返しなし;
 }
 .mixinFlag(@width, @height, @bg) の場合(@width > @height) {
    幅: @width;
    高さ: @height;
    背景:
              linear-gradient(-45deg, transparent sqrt(pow(@height/2, 2)/2), @bg 0) 左上、
              linear-gradient(-135deg, transparent sqrt(pow(@height/2, 2)/2), @bg 0) 左下;
    背景サイズ: 100% 50%;
    背景繰り返し: 繰り返しなし;
} 

.mixinsMark(@width, @height, @bg) {
    幅: @width;
    高さ: @height;
    背景:
              linear-gradient(-45deg, transparent sqrt(pow(@height/2, 2)/2), @bg 0) 左下、
              linear-gradient(-135deg, transparent sqrt(pow(@height/2, 2)/2), @bg 0) 左上;
    背景サイズ: 100% 50%;
    背景繰り返し: 繰り返しなし;
}

追記:上記の効果は4方向で達成できます。他の方向のコードは掲載されていませんが、原理は同じです。

チェック柄

css {
    幅: 510ピクセル;
    高さ: 128px;
    背景: #FFF;
    背景画像: 線形グラデーション(rgba(182, 128, 102, .8) 8px, 透明 0),
                      線形グラデーション(90度、rgba(182, 128, 102, .8) 8px、透明0);
    背景サイズ: 8px 14px、14px 8px;
}

集中

。マスク {
  位置: 固定;
  上: 0;
  左: 0;
  zインデックス: 100;
  幅:100vw;
  高さ:100vh;
  背景:
  放射状グラデーション(50% に最も近い側 278rpx、透明 140rpx、rgba(0, 0, 0, .12) 180rpx、rgba(0, 0, 0, .22) 200rpx、rgba(0,0,0,.3) 220rpx、rgba(0,0,0, .4)) 繰り返しなし;
}

要約する

各グラデーション レイヤーは背景画像として扱うことができます。つまり、各グラデーション レイヤーの位置、サイズ、繰り返しを指定できます。 PS を使用したことがある学生は、レイヤーの概念を知っているはずです。背景レイヤーの積み重ねの原理も同様です (もちろん、グラデーションも背景画像として使用できます)。グラデーションのサイズ、くり抜く場所、表示する場所、タイル化するかどうかを制御することで、ほとんどのシーンで基本的な効果を実現できます。もちろん、カット画像の方が高速ですが、カット画像ではすべてのシーンに適応できない場合があります。

背景が書かれる順序をマスターすると、望む効果を頭の中で思い描くのに役立ちます。


コードをコピー
コードは次のとおりです。
背景: bg-color || bg-image || bg-position [ / bg-size]? || bg-repeat || bg-attachment || bg-origin || bg-clip

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

<<:  よく知られているブラウザのDOCTYPEモード選択メカニズム

>>:  MySQL で sum 関数を使用する例のチュートリアル

推薦する

JPQLに基づく純粋なSQL文方式の詳細な説明

JPQL は Java Persistence Query Language の略です。 Java ...

SSDストレージを有効にしたMySQLインスタンスの詳細な説明

SSDストレージを有効にしたMySQLインスタンスの詳細な説明特に OS と MySQL が同じディ...

MySQL における ${param} と #{param} の違い

${param}によって渡されるパラメータは、テーブル名やフィールド名を渡すなど、SQL文の一部と...

MySQL の JSON 挿入の問題

MySQL 5.7.8 以降では、JSON テキストでデータを効率的に取得できるネイティブ JSON...

docker で PostgreSQL データベースをインストールして永続化する方法

Dockerのインストール手順をスキップする1. postgresqlイメージを取得する docke...

DockerはRedisを起動し、パスワードを設定します

RedisはRedisバージョン5のapline(Alps)イメージを使用します。これは小さくて高速...

Keepalived を使用して Nginx の自動再起動とデュアルアクティブ ホットスタンバイの高可用性を実現する方法について

目次1. 概要2. Keepalivedを使用してNginxを自動的に再起動する2.1 シェルスクリ...

Mongodb の GUID 表示の問題の詳細な分析

問題を見つける最近、プログラムのストレージを Mongodb に移行したところ、Guid 型が書き込...

ツールキット: Bootstrap よりも強力なフロントエンド フレームワーク

注: 現在、最も人気のフロントエンド フレームワークは Bootstrap と Foundation...

MySQL グリーン解凍バージョンのインストールと設定手順

手順: 1. MySQLデータベースをインストールする1. MySQL-5.6.17-winx64....

Tomcat 例外の解決方法 (リクエスト ターゲットに無効な文字が見つかりました。有効な文字は RFC 7230 および RFC 3986 で定義されています)

1. シナリオ表示Tomcat ログに次の例外情報が時々報告されます。何が起こっているのでしょうか...

MySQL 5.7.24 のインストールと設定方法のグラフィックチュートリアル

MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーションに...

HTML から PDF への変換事例の概要 (複数の画像を推奨)

仕事の都合上、最近 HTML を PDF に変換する機能について調べることに時間を費やしました。 H...

HTML の表のフレームとルール属性の詳細な説明

テーブル タグの frame 属性と rules 属性は境界線の表示を制御できます。フレーム プロパ...