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 をインストールする

推薦する

Nginx で CDN サーバーを構築する方法の詳細な説明 (画像とテキスト)

Nginxのproxy_cacheを使用してキャッシュサーバーを構築する1: ngx_cache_...

CSS 要素を表示および非表示にする 9 つの方法

Web ページの制作では、要素の表示と非表示は非常に一般的な要件です。この記事では、要素を表示したり...

CSS ハート型読み込みアニメーションのソースコードの実装

さっそく、コードをお見せしましょう。コードは非常にシンプルなので、勉強すれば理解できるようになります...

jQuery ステップ進行軸プラグインの実装コード

毎日のjQueryプラグイン - ステップ進捗軸 ステップ進捗軸ツール系のサイトでは入門チュートリア...

XHTML Web ページ チュートリアル

この記事は主に、初心者に XHTML の基本的な知識と、XHTML と HTML の違いを理解しても...

MySQL 5.7.27 のインストールと設定方法のグラフィックチュートリアル

MySQL 5.7.27のインストールチュートリアルは以下のように記録され、皆さんと共有されています...

ネイティブ js が携帯電話のプルダウン更新を模倣

この記事では、携帯電話のプルダウンリフレッシュを模倣したjsの具体的なコードを参考までに共有します。...

SQL重複排除方法の概要

SQL を使用してデータを抽出する場合、テーブル内で重複した値に遭遇することがよくあります。たとえ...

Linux ディスク管理 LVM の使用

1. LVM の概要Linux ディスクを管理するときに、このような状況に遭遇することがよくあります...

Linux で boost.python を使用して C++ 動的ライブラリを呼び出す方法

序文最近、C++ 動的ライブラリをテストするためにロボット フレームワークを使い始めました。ロボット...

仮想マシンのLinux初心者がIPを設定し、ネットワークを再起動する

仮想マシンを初めて使用する方や、仮想マシンに Linux をインストールしたばかりの方は、システムが...

HTML コメント HTML 内のテキストコメントをマークするための記号

HTML コメント。コードの横に HTML コメントを付ける必要があることがよくあります。そうするこ...

Linuxカーネルマクロcontainer_ofの詳細な分析

1. 前述の通り数年前、Linux ドライバーのコードを読んでいたときにこのマクロを見ました。長い間...

MySQL の group by と order by を一緒に使用する方法

テーブル:reward(報酬テーブル)があるとします。テーブル構造は次のようになります。 テーブルt...

HTML で入力テキスト入力キャッシュのクリアを禁止する 2 つの方法

ほとんどのブラウザはデフォルトで入力値をキャッシュし、ctl+F5 を使用して強制的に更新することに...