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

推薦する

Centos 6.9 に MySQL をインストールするための詳細なチュートリアル

1. MySQLがインストールされているかどうかを確認します。次のコードで確認できます。 [root...

HTML テーブル セルの幅と高さを設定する方法

Web ページを作成するときに、テーブルの幅が揃っていないという問題に遭遇することがよくあります。 ...

JavaScript で H5 ゴールド コイン関数を実装する (サンプル コード)

今日は春節の金貨の赤い封筒のアクティビティを作りました。なかなか良い出来だと思います。皆さんと共有し...

html-cssタグのスタイル設定が機能しない2つの理由

1 セミコロン「;」のない CSS スタイル2 タグが閉じられておらず、「>」がありません...

Nginx ロケーション設定のチュートリアル (ゼロから)

基礎位置の一致順序は、「最初に正規表現に一致し、次に共通表現に一致」です。実際のロケーションの一致順...

フレックスレイアウトの互換性の問題の概要

1. W3C バージョンの flex 2009年版フラグ: display: box; または bo...

突然外部ネットワークからDockerにアクセスできなくなる問題の解決方法

マスターのメソッドによると、原因は sysctl net.ipv4.ip_forward であること...

Vue3でelement-plusを使用する方法の詳細な説明

目次1. インストール2. main.jsにインポートする3. 使用Vue3がリリースされてからしば...

VMware 仮想マシンで HTTP サービスを確立して分析する手順

1. xshell を使用して仮想マシンに接続するか、仮想マシンに直接コマンドを入力します。以下はx...

Vueのインストールと使用

目次1. Vueのインストール方法1: CDNの導入方法2: 直接ダウンロードしてインポートする方法...

MySQL での正規表現の使用に関する詳細

目次1. はじめに2. 製品テーブルを準備する2.1 ステートメントの順序2.2 大文字と小文字の区...

LinuxでSVNサーバーを構築する方法

1: SVNをインストールする yum インストール -y サブバージョン2. 倉庫を作る1: 倉庫...

Firefoxでリンクをクリックしたときに点線の枠線を削除する方法

今日、ブラウザの互換性の問題にいくつか遭遇しました。そのうちの 1 つは奇妙に感じました。Firef...

nginx を使用した負荷分散モジュールの解釈

目次負荷分散に nginx を使用するための 2 つのモジュール:アップストリームはロードノードプー...