CSS の ::before と ::after 疑似要素について知らないこと

CSS の ::before と ::after 疑似要素について知らないこと

CSS には、一般的には使用されない 2 つの疑似クラス、before と :after があります。これらはカスタム書式設定を追加するために使用されることもありますが、その機能はこれに限定されません。数日前、クリエイティブ リンク エフェクトを紹介する非常に興味深いページ、Creative Link Effects を見つけました。このページの素晴らしいエフェクトは、変形用の transform 属性に加えて、次に紹介する 2 つの疑似要素など、多くの機能を使用しています。

Creative Button Styles

クリエイティブなボタンスタイル

基本的な文法

高度なアプリケーションを理解する前に、まず文法規則を理解しましょう。通常、カスタム文字を追加するためにこれら 2 つの疑似要素のみを使用する必要がある場合は、ブラウザーの互換性を確保するために、疑似クラスで使用される単一のコロン表記を使用します。

CSSコードコンテンツをクリップボードにコピー
  1. p:前{}

ただし、CSS3では疑似要素と疑似クラスを区別するために二重コロンを使用します。そのため、displayやwidthなどの属性を使用してdisplayを元の要素と区別する場合は、標準に従って二重コロンで記述することが推奨されます。古いブラウザではサポートの問題があるかもしれませんが、疑似要素は主に CSS3 で使用されるため、下位互換性は大きな問題ではありません。

CSSコードコンテンツをクリップボードにコピー
  1. img::after {}

これら 2 つの疑似クラスに固有のコンテンツ属性は、CSS レンダリングで要素の論理的な先頭または末尾にコンテンツを追加するために使用されます。これらの追加はドキュメントの内容を変更せず、DOM に表示されず、複製できず、CSS レンダリング レイヤーにのみ追加されることに注意してください。次の値はより便利です:

•[文字列] - 文字列を引用符で囲むと、その文字列が要素コンテンツに追加されます。例:

CSSコードコンテンツをクリップボードにコピー
  1. •a:after {コンテンツ: "↗" ; }
attr() – 現在の要素の属性を呼び出します。これは、たとえば、画像の Alt テキストやリンクの Href アドレスを表示するのに便利です。例:
CSSコードコンテンツをクリップボードにコピー
  1. •a:after {コンテンツ: "("  属性(href) ")" ; }
url() / uri() – メディアファイルを参照するために使用されます。例:
CSSコードコンテンツをクリップボードにコピー
  1. •h 1: :before {コンテンツ: url (logo.png); }
counter() – リスト要素を使用せずにシリアル番号機能を実装するためにカウンターを呼び出します。詳細については、counter-increment プロパティと counter-reset プロパティの使用法を参照してください。例:
CSSコードコンテンツをクリップボードにコピー
  1. h 2: before { counter counter-increment : chapter; content : "Chapter "  カウンター(章) 「.」 }

2番目の上級スキル

フロートのクリアは、頻繁に発生する問題です。多くの人の解決策は、空の div を追加して clear:both; 属性を適用することです。これで、意味のない要素を追加する代わりに、要素の末尾のフロートを自動的にクリアする次のスタイルだけが必要になります。

CSSコードコンテンツをクリップボードにコピー
  1. . clear -fix { *オーバーフロー:非表示; * ズーム: 1; }
  2. . clear -fix:after { display : table; content : "" ; width : 0; clear : both ; }

多くの人は、blockquote の背景に大きな引用符を追加することを好みます。この場合、background の代わりに :before を使用できます。これにより、背景用のスペースが確保され、画像の代わりにテキストを使用できます。

CSSコードコンテンツをクリップボードにコピー
  1. ブロック引用::前{
  2.     内容:引用符を開く;
  3.     位置:絶対;
  4.      zインデックス: -1;
  5.     : #DDD ;
  6.     フォントサイズ: 120px ;
  7.     フォントファミリー: serif ;
  8.     フォントの太さ:太字;
  9. }

3つの特殊効果

単に文字を追加するだけでなく、CSS の強力な配置機能と特殊効果機能を使用すると、単純な要素に最大 2 つのコンテナーを追加することも可能です。注意すべき点は、コンテンツが不要で、スタイル属性のみを使用して効果を生み出す場合、コンテンツ属性を空にすることはできない (つまり、content:””) ということです。そうしないと、他のスタイル属性は有効になりません。

懸浮出現方括號

マウスオーバーすると角括弧が表示されます

リンクの上にマウスを移動すると、角括弧が表示されます。

CSSコードコンテンツをクリップボードにコピー
  1. {
  2.     位置:相対的;
  3.     表示:インラインブロック;
  4.     アウトラインなし;
  5.     テキスト装飾:なし;
  6.     : #000 ;
  7.     フォントサイズ: 32px ;
  8.     パディング: 5px   10ピクセル;
  9. }
  10.      
  11. a:hover::before、a:hover::after {位置:絶対; }
  12. a:hover::before {コンテンツ: "\5B" ;: - 20px ; }
  13. a:hover::after {コンテンツ: "\5D" ;: - 20px ; }

同様に、display: block と position: absolute を使用するだけで、2 つのコンテナーとして扱い、それらを組み合わせて、中断時に二重境界線効果を作成できます。

CSSコードコンテンツをクリップボードにコピー
  1. {
  2.     位置:相対的;
  3.     表示:インラインブロック;
  4.     アウトラインなし;
  5.     テキスト装飾:なし;
  6.     : #000 ;
  7.     フォントサイズ: 32px ;
  8.     パディング: 0 10px ;
  9. }
  10.      
  11. /* 大きなフレーム */      
  12. a:hover::before、a:hover::after {
  13.     コンテンツ "" ;
  14.     表示:ブロック;
  15.     位置:絶対;
  16.     : -15%%;
  17.     :-14%%;
  18.     :120%;
  19.     高さ: 120%;
  20.     境界線スタイル: solid ;
  21.     境界線の幅: 4px ;
  22.     境界線の色: #DDD ;
  23. }
  24.      
  25. /* 小さなフレーム */      
  26. ホバー後{
  27.     トップ:0%;
  28.     残り:0%
  29.     : 100%;
  30.     高さ: 100%;
  31.     境界線の幅: 2px ;
  32. }

CSS ::before および ::after 疑似要素の知られざる使用法に関する上記の記事は、エディターが皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

オリジナル URL: http://www.cnblogs.com/androidshouce/archive/2016/06/12/5576493.html

<<:  CSSマウスを画像の上に置いたときにマスクレイヤー効果を追加する実装

>>:  VMware 仮想マシン (CentOS7 イメージ) を使用して Linux をインストールする

推薦する

Linux で MySQL 8.0 サービスを完全に削除する方法

この記事を読む前に、Linuxコマンド、特にcentos7.3環境でyumを使用してインストールされ...

WeChatアプレットコンポーネントライフサイクルの落とし穴の記録

通常、コンポーネントのライフサイクルは、ビジネス ロジックが始まる場所です。ビジネスシナリオが複雑で...

Linux で ss コマンドと zabbix を組み合わせてソケットを監視する方法の詳細な説明

目次序文1. ssコマンド2. Zabbix監視マシンの全体的なソケットステータス2.1. スクリプ...

レスポンシブ Web をデザインするにはどうすればいいですか?レスポンシブウェブデザインのメリットとデメリット

最近レスポンシブ デザインについて学んでいて、これについていくつか整理してみました。写真の一部はイン...

JavaScript ES6 分割演算子の理解と応用

目次序文脱構築記号の役割使い方分割割り当ての適用アプリケーションの簡単な紹介JSONデータを抽出する...

リンクをクリックしたときにファイルのダウンロードダイアログボックスをポップアップ表示するには、HTML で href を使用します。

今日、新しい技を学びました。あまりやったことがなかったので、今まで知りませんでした...目的: リン...

高品質なウェブページのデザイン方法 高品質なウェブページ(画像とテキスト)のデザイン経験

オープンプラットフォームの増加に伴い、そこから派生するさまざまなアプリケーションサービスも増加傾向に...

Windows7 での Mysql5.7 my.ini ファイルの読み込みパスとデータの場所の変更方法

更新: MySQL の公式 Web サイトにアクセスして MySQL インストーラーをインストールし...

MySQL でスロークエリログ機能を有効にする方法

MySQL スロー クエリ ログは、問題のあるクエリを追跡するのに非常に役立ちます。現在のプログラム...

...

Nest.js パラメータ検証とカスタム戻りデータ形式の詳細な説明

0x0 パラメータ検証Nest.jsでは、パラメータ検証業務のほとんどをパイプライン方式で実装してい...

SQL 文における複合主キーと結合主キーに関する予備的研究

1. 複合主キーいわゆる複合主キーとは、テーブルの主キーが複数のフィールドで構成され、ビジネス上の意...

CSS で div 凹角スタイルを実装するサンプル コード

通常の開発では、凸型の丸い角、つまり border-radius 属性を使用するのが一般的です。凹角...

MySQL でトリガーを無効化および有効化するチュートリアル [推奨]

MYSQL を使用する場合、トリガーがよく使用されますが、不適切な使用によって問題が発生する場合が...

MySQLファイルストレージの詳細な説明

ファイルシステムとは何かInnoDB や MyIASM などのストレージ エンジンはテーブルをディス...