::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 か月の時間を取得する簡単な例

推薦する

Dockerでイメージ情報を表示する方法

この記事では、Dockerでイメージ情報を表示する方法を学ぶ必要があります。 1. imagesコマ...

Vueのスロットの詳細な説明

Vue でのコードの再利用により、mixnis が提供されます。テンプレートの再利用により、スロット...

MySQLの7種類のログの概要

MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...

JSを使用して画像を効果的に圧縮する方法

目次序文変換関係具体的な実装file2DataUrl(ファイル、コールバック) file2Image...

LinuxでHomebrewを使用する正しい方法

多くの人が Linux Homebrew を使用しています。これをより良く使用するための 3 つのヒ...

Navicat を仮想マシン MySQL に接続する際によくあるエラーと解決策

質問1 解決するサービスを開始します: service mysqld start; /sbin/ip...

VS2019をMySQLデータベースに接続するプロセスと一般的な問題の概要

今日の午後からVS2019をMySQLで使えるのではないかと思い、いろいろ環境構築を始めました。プロ...

Vue h関数の使い方の詳しい説明

目次1. 理解2. 使用1. h() パラメータ2. 使い方が簡単3. カウンターケースを実装する4...

Linux viコマンドの知識ポイントと使い方のまとめ

Linux viコマンドの詳しい説明vi エディタは、すべての Unix および Linux システ...

JSはモバイル端末の画面を1つずつ上下にスライドさせる機能を実装します

この記事では、モバイル端末を一度に1画面ずつ上下にスライドさせるためのJSの具体的なコードを参考まで...

Navicat 接続 MySQL エラーの説明分析

目次環境仮想マシンバージョンMySQL バージョン事前準備MySQLの実行ステータスを確認するルート...

HTML フローティング フレーム (iframe 読み込み HTML) の設定と使用の例

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

MySQL 8.0 の新機能の落とし穴と解決策についての簡単な説明 (要約)

1. ユーザーを作成して承認するMySQL 8.0 では、ユーザーの作成と認証が以前とは異なります...