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

推薦する

Linux でバックグラウンド タスクを実行するために nohup と screen を使用する例と違いの簡単な分析

SSH ターミナル (putty、xshell など) を使用して Linux サーバーに接続し、時...

docker を使用してコード サーバーをデプロイする方法

画像をプルする # docker pull codercom/code-server # Docke...

TypeScript をインストール、使用、自動コンパイルする方法に関するチュートリアル

1. TypeScriptの紹介前回の記事ではTypeScriptのインストール、使い方、自動コンパ...

MySqlは指定されたユーザーのデータベースビュークエリ権限を設定します

1. 新しいユーザーを作成します。 1. SQL ステートメントを実行して新しいものを作成します (...

画像の下部の空白部分の問題を解決する

最近のプロジェクトに取り組んでいるとき、下の図に示すように、画像を参照すると常に下部に空白スペースが...

Bash スクリプトを使用して Linux のメモリ使用量を監視する方法

序文Linux システムのパフォーマンスを監視するために使用できるオープンソースの監視ツールが市場に...

Dockerの基本的なネットワーク構成の詳細な説明

外部アクセスポートをランダムにマップする -P フラグを使用すると、Docker は 49000 か...

Linux システム (Centos6.5 以上) のインストール JDK チュートリアル分析

記事の構成1. 準備2. Java JDK8.0をインストールする3. 環境変数を設定する3. イン...

パズル効果を実現するネイティブ js

この記事では、パズル効果を実現するためのネイティブjsの具体的なコードを参考までに共有します。具体的...

VMWare ネットワーク アダプタの 3 つのモードの実装プロセスの分析

3つのモードブリッジ(ブリッジ モード)、NAT(ネットワーク アドレス変換モード)、ホストオンリー...

el-table カプセル化に基づくドラッグ可能な行と列、および選択列コンポーネントの実装

効果環境が必要ビュー要素UIドラッグアンドドロッププラグインSortable.js必要な構成プロパテ...

jsを使用して写真をアップロードする機能を実現する

フロントエンドで画像をアップロードする原理は、入力 type="file" タグ...

IE6 の select を div でカバーできないバグの解決方法

div を使用してマスクを作成したり、ポップアップ ウィンドウをシミュレートしたりします。ただし、I...

誰もが登録できるようにJiedaibaoを宣伝するにはどうすればよいでしょうか? ジエダイバオのプロモーション方法とスキル

借財宝は最近人気が出ている携帯電話ローンソフトウェアプラットフォームです。知人同士の貸し借りが特徴で...

フロントエンドとバックエンドを分離した nginx 構成を展開するための完全な手順

序文決まり文句です。ここでは、フロントエンドとバックエンドの分離についての私の理解についてお話ししま...