純粋な CSS3 でペットの鶏のサンプルコードを実現

純粋な CSS3 でペットの鶏のサンプルコードを実現

最近、CSS3に関する知識や記事をたくさん読んできましたが、CSS3はとても便利に使えると思います。CSS3を使用すると、ページレイアウトで不要なコードを大幅に節約できます。そこで最近、毎日世話をしているペットの鶏の見た目を CSS3 で模倣してみました。初めて書いたので細かいところがうまく処理できていないところもあります。

まず、最終的な効果の画像を見てみましょう。

私が書いた手順は次のとおりです。

まず、雲、鶏の体、冠、目、口、赤面、羽、鶏の足を HTML で書き出します。

<本文>
    <div class="content">
        <!-- 空に雲-->
        <div class="クラウド">
            <div class="content"></div>
        </div>
        <!--鶏冠-->
        <div class="crest"></div>
        <!--翼-->
        <div class="hand"></div>
        <!-- ペットの鶏の体 -->
        <div class="egg">
            <!--目-->
            <div class="目"></div>
            <!--赤面-->
            <div class="blush"></div>
            <!--口-->
            <div class="口"></div>
            <!--足-->
            <div class="フィート"></div>
        </div>

    </div>
</本文>

次は CSS スタイル設定です。

まず、linear-gradientを使用して全体の背景色を設定し、青空の色と草の色を設定し、要素を中央に配置するように設定します。

。コンテンツ {
        幅: 100%;
        高さ: 800ピクセル;
        背景: 線形グラデーション(rgb(170, 227, 253) 60%, rgb(149, 219, 126) 80px);
        ディスプレイ: フレックス;
        コンテンツの中央揃え: 中央;
        アイテムの位置を中央揃えにします。
        }

空の雲: 最初に特定の幅、高さ、背景色を指定し、border-radius を使用して境界の丸み効果を設定し、左上隅と右上隅のみを設定します。効果は以下のとおりです。

境界線の半径: 100% 100% 0 0;

::before および ::after 疑似要素を使用して完全なクラウドを描画します。

.content::before、
 .content::after {
                コンテンツ: '';
                位置: 絶対;
                下部: 0;
            }
  .content::before {
                幅: 40px;
                高さ: 40px;
                背景: 現在の色;
                左: -20px;
                境界線の半径: 100% 100% 0 100%;
            }
   .content::after {
                幅: 35px;
                高さ: 30px;
                背景: 現在の色;
                右: -20px;
                境界線の半径: 100% 100% 100% 0;
            }

次に影を使って 2 つの雲を描きます。

。コンテンツ、
.content::before、
.content::after {
                ボックスシャドウ: 
                -200px 50px 0 -5px rgb(191, 232, 252),
                 200ピクセル 60ピクセル 0 10ピクセル rgb(191, 233, 253);
            } 

雲が実体化した。

次はペットの鶏です。まず、体を描きます。border-radius を使用して境界半径効果を設定します。卵の形を描き、背景色を設定し、box-shadow を使用して内側の影を設定します。

。卵 {
            幅: 220ピクセル;
            高さ: 260px;
            境界線の半径: 100%;
            背景: linear-gradient(rgb(254, 249, 249) 60%,rgb(221, 213, 213));
            位置: 絶対;
            ディスプレイ: フレックス;
            flex-direction: 列;
            アイテムの位置を中央揃えにします。
            ボックスシャドウ: 0 -10px 10px 3px rgba(211, 194, 194,0.4) インセット;
} 

鶏冠と雲の書き方は似ています。

.クレスト{
            位置: 相対的;
            最高: -17%;
            幅: 30ピクセル;
            高さ: 25px;
            背景: rgb(233, 19, 19);
            境界線の半径: 50% 100% 20% 20%;
        }
  .crest::before、
  .crest::after {
            コンテンツ: '';
            位置: 絶対;
            下部: 0; 
            幅: 20px; 
            背景: rgb(233, 19, 19);
        }
  .crest::before {
            左: -5px;
            高さ: 20px;
            境界線の半径: 100% 50% 0 20%;
        }
  .crest::after {
            右: -15px;
            高さ: 15px;
            背景: rgb(233, 19, 19);
            境界線の半径: 20% 200% 20% 30%;
        }

目、翼、頬紅は、疑似要素を使用して左右に配置し、サイズを設定することで実現できます。変換を使用して口を 45° 回転させ、線形グラデーションを使用して鶏のくちばしの影の効果を設定します。

すべての CSS コードは次のとおりです (SASS プラグインをインストールしたので、SCSS で記述されています)。

体 {
    マージン: 0;
    幅: 100%;
    高さ: 100%;
    >.コンテンツ{
        幅: 100%;
        高さ: 800ピクセル;
        背景: 線形グラデーション(rgb(170, 227, 253) 60%, rgb(149, 219, 126) 80px);
        ディスプレイ: フレックス;
        コンテンツの中央揃え: 中央;
        アイテムの位置を中央揃えにします。
        >.クラウド{
            位置: 絶対;
            上位: 5%
            色: rgb(216, 242, 254);
            >.コンテンツ{
                幅: 50px;
                高さ: 50px;
                背景: 現在の色;
                境界線の半径: 100% 100% 0 0;
            }
            >.content::before、
            >.content::after {
                コンテンツ: '';
                位置: 絶対;
                下部: 0;
            }
            >.content::before {
                幅: 40px;
                高さ: 40px;
                背景: 現在の色;
                左: -20px;
                境界線の半径: 100% 100% 0 100%;
            }
            >.content::after {
                幅: 35px;
                高さ: 30px;
                背景: 現在の色;
                右: -20px;
                境界線の半径: 100% 100% 100% 0;
            } 
            >.コンテンツ、
            .content::before、
            .content::after {
                ボックスシャドウ: -200px 50px 0 -5px rgb(191, 232, 252),
                             200ピクセル 60ピクセル 0 10ピクセル rgb(191, 233, 253);
            }
        }
        >.卵{
            幅: 220ピクセル;
            高さ: 260px;
            境界線の半径: 100%;
            背景: linear-gradient(rgb(254, 249, 249) 60%,rgb(221, 213, 213));
            位置: 絶対;
            ディスプレイ: フレックス;
            flex-direction: 列;
            アイテムの位置を中央揃えにします。
            ボックスシャドウ: 0 -10px 10px 3px rgba(211, 194, 194,0.4) インセット;
            >.eye::before,
            .eye::after {
                コンテンツ: '';
                位置: 絶対;
                上位: 15%
                幅: 12px;
                高さ: 28px;
                境界線の半径: 100%;
                背景: 放射状グラデーション(白 1px、rgb(57, 56, 57) 5%);
            }
            > .eye::before{
                左: 28%;
            }
            >.eye::after {
                右: 28%;
            }
            >.blush::before、
            .blush::after {
                コンテンツ: '';
                位置: 絶対;
                上位: 30%
                幅: 25px; 
                高さ: 5px;
                変換: 回転(0度); 
                背景: rgb(250, 108, 127);
                境界線の半径: 100%;
                ボックスの影: 0 0 5px 4px rgb(250, 108, 127);
            }
            >.blush::before {
                残り:20%
            }
            >.blush::after {
                右: 20%;
            }
            >.口{
                位置: 絶対;
                上位: 32%
                幅: 20px;
                高さ: 20px;
                背景: 
                    線形グラデーション(135度, rgb(255, 207, 0) 50%, 
                    rgb(224, 184, 2) 50%);
                変換: 回転(45度);
                境界線の半径: 5% 15%;
            }
            > .feet::before、
            .feet::after{
                コンテンツ: '';
                位置: 絶対; 
                下: -12px;
                幅: 10px;
                高さ: 15px;
                境界線: 7px実線rgb(71, 49, 20);
            }
            > .feet::before{
                左: 60px;
                境界線の半径: 80% 100% 100% 50%;
                変換: 回転(-10度);
                境界線の色: 透明 透明 透明 rgb(71, 49, 20);
            }
            > .feet::after{
                右: 60px;
                境界線の半径: 100% 80% 50% 0%;
                変換: 回転(10度);
                境界線の色: 透明 rgb(71, 49, 20) 透明 透明 ;
            } 
        }
        >.クレスト{
            位置: 相対的;
            最高: -17%;
            幅: 30ピクセル;
            高さ: 25px;
            背景: rgb(233, 19, 19);
            境界線の半径: 50% 100% 20% 20%;
        }
        >.crest::before,
        .crest::after {
            コンテンツ: '';
            位置: 絶対;
            下部: 0; 
            幅: 20px; 
            背景: rgb(233, 19, 19);
        }
        >.crest::before {
            左: -5px;
            高さ: 20px;
            境界線の半径: 100% 50% 0 20%;
        }
        >.crest::after {
            右: -15px;
            高さ: 15px;
            背景: rgb(233, 19, 19);
            境界線の半径: 20% 200% 20% 30%;
        }
        > .手{
            位置: 相対的;
            上位: -5%;
        }
        > .hand::before、
        .hand::after{
            コンテンツ: '';
            位置: 絶対;
        }
        > .hand::before{
            左:-135px;
            幅: 20px;
            高さ: 80px;
            変換: 回転(15度);
            背景: rgb(250, 242, 242);
            境界線の半径: 100% 0 50% 50%;
        }
        > .hand::after{
            右: -110px;
            幅: 20px;
            高さ: 80px;
            変換: 回転(-15度);
            背景: rgb(250,242,242);
            境界線の半径: 50% 100% 50% 50%;
        }
    }
}

要約する

上記は、エディターが紹介した純粋な CSS3 ペット チキンのサンプル コードです。皆様のお役に立てれば幸いです。ご質問がある場合は、メッセージを残してください。エディターがすぐに返信します。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

<<:  vagrant+virtualBoxで仮想マシンを構築する方法

>>:  JavaScriptはオブジェクトの不要なプロパティを削除します

推薦する

Docker イメージのエクスポート、インポート、コピーの例の分析

最初の解決策は、イメージを公開イメージリポジトリにプッシュし、それをプルダウンすることです。 2 番...

IMG での UserMap の使用例

usemap は <img> タグの属性であり、使用するイメージ マップの名前を指定する...

Ubuntu 20.04 と NVIDIA ドライバーのインストールに関するチュートリアル

Ubuntu 20.04をインストールする NVIDIAドライバーをインストールする Pytouch...

ノードをMySQLデータベースに接続する際に発生する問題と解決策

今日、MySQL の新しいバージョン (8.0.21) をインストールしましたが、ノード フレームワ...

ウェブページレイアウトに関する9つのヒント

<br />関連記事: Web コンテンツ ページ作成に関する 9 つの実用的な提案 W...

Ansible を使用した Nginx のバッチ デプロイのサンプル コード

1.1 nginxインストールパッケージとインストールスクリプトをクライアントにコピーし、スクリプト...

Vue はトークンの有効期限が切れると自動的にログインページにジャンプする機能を実装します

このプロジェクトは最近テストされ、テスターから、トークンの有効期限が切れたため、ルートが自動的にログ...

Vue検証コードコンポーネントの使い方の詳しい説明

この記事の例では、vue検証コードコンポーネントで使用される具体的な実装コードを参考までに共有してい...

JavaScript で文字列を数値に変換する方法

目次1.parseInt(文字列、基数) 2. 数値() 3.parseFloat()主なメソッドは...

Layuiテーブル行のデータを動的に編集する

目次序文スタイル機能説明初期化コードイベントリスナーの追加リスナーツールバーモニターテーブル行ツール...

JavaScript は自由に移動するウィンドウのマウス制御を実装します

この記事では、フリーウィンドウのマウス制御を実現するためのJavaScriptの具体的なコードを参考...

ブラウザがクロージャをどのように認識するかについて詳しく説明します

目次序文クロージャの紹介メモリのゴミを識別する方法クロージャのメモリ表現結論序文クロージャは、Jav...

JS はシンプルなブロック崩しピンボールゲームを実装します

この記事では、ブロック崩しピンボールゲームを実装するためのJSの具体的なコードを参考までに紹介します...

ウェブページ HTML 順序付きリスト ol と順序なしリスト ul

データを整理するためのリストWeb ページの表示を制御する多数の HTML タグを学習した後、読者は...

階層化されたピラミッドを実現するための HTML+CSS の例

この記事では主に、HTML+CSS で階層化ピラミッドを実装する例を紹介し、皆さんと共有します。詳細...