::before/:before と ::after/:after の使用に関する深い理解

::before/:before と ::after/:after の使用に関する深い理解

パート1: 基礎

1. :active や :hover などの疑似クラスとは異なり、これらはすべて疑似要素です。

2. :before/:after 疑似要素は CSS2 で提案されました。 ::before/::after は CSS3 での記述方法です。疑似クラスを区別するために、疑似要素を表す 2 つのコロンを使用することが再度提案されています。

3. これらは、セマンティクスを実現できるため、CSS のセレクターの後に装飾的なコンテンツを追加するために使用されます。HTML を使用して、実際のコンテンツや補助的なサンプル テキストのないノードを追加した場合、それらは意味を持ちません。

4. これらには独自の属性コンテンツがあり、追加されたコンテンツはデフォルトでインライン要素になります。

5. 作成された疑似要素は、デフォルトでは、それが添付されている要素の上にあります。下に配置するには、z-index:-1; を使用します。

6. これらは実際のノードではなく、仮想ノードです。のように:

 div::after{
            コンテンツ: " ";
            境界線:細い実線の赤;
        }

ブラウザで確認できます:

::after は実際のノードではありませんが、一部の Web サイトで使用されているのをよく見かけます。

6. input、img、iframe などの要素には他の要素を含めることができないため、疑似要素を通じてコン​​テンツを挿入することはできません。

パート II: アプリケーション

1. セパレーターとして使用します。

 <!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>疑似要素</title>
    <スタイル>
        {
            色:青;
            テキスト装飾: なし;
        }
        .log:後{
            コンテンツ:"|";
            色:赤;
        }
    </スタイル>
</head>
<本文>
    <a href="" class="log">ログイン</a><a href="">登録</a>
</本文>
</html>

効果は以下のとおりです。

2. 三角形を作る

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>疑似要素</title>
    <スタイル>
        {
            色:青;
            テキスト装飾: なし;
        }
        .log:前{
            コンテンツ:" ";
            表示: インラインブロック;
            幅: 0;
            高さ: 0;
            border:10px 透明実線;
            border-left: 10px 赤一色;
        }
    </スタイル>
</head>
<本文>
    <a href="" class="log">ログイン</a>
</本文>
</html>

効果は以下のとおりです。

3. クリアフローティング(以下の内容は張新旭より引用)

 <!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>疑似要素</title>
    <スタイル>
    .box{パディング:10px; 背景:グレー;}
    .fix{*ズーム:1;}
    .fix:after{display:block; content:"clear"; height:0; clear:both; overflow:hidden; visibility:hidden;}
    .l{float:left;}
    </スタイル>
</head>
<本文>
    <div class="box fix">
    <img class="l" src="http://image.zhangxinxu.com/image/study/s/s256/mm1.jpg" />
</div>
</本文>
</html>

効果は以下のとおりです。

注: *zoom:1; は IE6 でフロートをクリアするために使用されます (フロート要素の親要素で使用されます)。

要約する

上記がこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に少しでもお役に立てれば幸いです。ご質問があれば、メッセージを残してコミュニケーションを取ることができます。

<<:  HTML フォーム コンポーネントのサンプル コード

>>:  js を使用して過去 1 週間、1 か月、3 か月の時間を取得する簡単な例

推薦する

MySQL で重複行を見つけて削除する方法

目次1. 重複行を見つける方法2. 重複行を削除する方法3. 複数の列で重複を見つける方法4. クエ...

JavaScript でカウントダウン効果を実装する

カウントダウン効果を実現するにはJavascriptを使用します。参考までに、具体的な内容は次のとお...

XHTML ブロックレベルタグの概要

* 住所 - 住所* blockquote - ブロック引用* center - 中央揃えブロック*...

Vue 開発ガイドの重要な知識の要約

目次概要0. JavaScriptとWeb開発の基礎1. Vueの基本概念Vue コア機能コンポーネ...

上部の固定divは半透明効果に設定できます

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

MySQL InnoDB 監視 (システム層、データベース層)

MySQL InnoDB 監視 (システム層、データベース層) MySQL の監視に関しては、My...

txt ブックの内容を Web ページに表示するコード

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1...

Zabbix は DingTalk のアラーム機能を画像付きで設定します

実装のアイデア:まず、アラーム情報にはitemidが必要です。これは前提条件です。情報に渡されるパラ...

JavaScript インスタンス オブジェクトでプロトタイプ メソッドをオーバーライドする方法の詳細

目次JavaScriptでは、通常、次のコードのようにクラスを簡単に定義できます。 var サンプル...

JavaScript はスローモーションアニメーションのカプセル化と使用法を説明します

プロセス分析の実装(1)繰り返して電話をかけるには?答え: 関数をカプセル化して一度だけ呼び出すコー...

Tomcat CentOS インストールプロセス図

Tomcat CentOS インストールこのインストール チュートリアルでは、次の内容について説明し...

Vue を使用して Web ページのスクリーンショットを撮る方法をご存知ですか?

目次1. html2Canvasをインストールする2. 必要なVueコンポーネントを導入する3. ス...

JS 9 Promise 面接の質問

目次1. 複数の .catch 2. 複数の .catch 3. .then と .catch の連...

いくつかの重要なMySQL変数

MySQL 変数は数多くありますが、その中には注目に値するものもあります。ここでは、参考までに、注目...

派手なカルーセル効果を実現するJavaScript

この記事では、JavaScriptで派手なカルーセル効果を実装する2つの方法を紹介します。具体的な内...