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

推薦する

JSはショッピングカート効果の単純な加算と減算を実装します

この記事の例では、ショッピングカートの簡単な追加と削除を実現するためのJSの具体的なコードを参考まで...

Dockerコマンドは一般ユーザーが実行できるように実装されている

dockerをインストールすると、通常はdockerユーザーグループが作成されます。ステップ2: 現...

Rails APIを使用してReactアプリケーションを構築するための詳細な手順

目次バックエンド: Rails API部分フロントエンド: React部分Reactコンポーネントa...

jsで七夕告白連打の効果を実現、jQueryで連打技術を実現

この記事では、jsとjQueryテクノロジーを使用して告白弾幕を実現する方法を紹介します。具体的な内...

Windows Server2014 にセキュリティを適用して MySQL をインストールする際のエラーに対する完璧な解決策

理由はインストール後にきちんとアンインストールされなかったためです。この問題を解決するには、次の点に...

単一の Nginx IP アドレスに複数の SSL 証明書を設定する例

デフォルトでは、Nginx は IP アドレスごとに 1 つの SSL 証明書のみをサポートします。...

画像を読み込むための JavaScript キャンバス

この記事では、画像を読み込むためのJavaScriptキャンバスの具体的なコードを参考までに紹介しま...

1 つの記事で Nginx ロケーション マッチングの実装を理解する

チームはフロントエンドとバックエンドを分離しているため、フロントエンドが Nginx とノード層を引...

MySQL データベース面接に必須の 3 つのログの紹介

目次1. redo ログ (MySQL ストレージ エンジン InnoDB のトランザクション ログ...

ウェブページを作成するために最もよく使用されるHTMLタグ

1. よく使われるHTMLタグの最適化HTML は Web 編集者にとって基本的なスキルであるべきで...

js はマウスインとマウスアウトによるカード切り替えコンテンツを実装します

この記事では、マウスでカード内外のコンテンツを切り替えるためのjsの具体的なコードを紹介します。具体...

WEB2.0の片手ルール

<br />前回のCSSに関する記事は、多くの人にあまり理解されませんでした。そのため、...

HTML タグのセマンティクス化 (H5 を含む)

導入HTML は、Web ドキュメントのコンテンツのコンテキスト構造と意味を提供します。HTML 自...

iframeを使用してページを呼び出すとページがキャッシュされるかどうかの簡単な分析

最近、毎日変更されるページを iframe を使用して呼び出す必要があるプロジェクトがあります。その...

MySQL サーバーの接続、切断、および cmd 操作

mysql コマンドを使用して MySQL サーバーに接続します。 MySQL サーバーが起動したら...