CSS ::before &::after セレクター:実践的なハウツーガイド
CSS ::before セレクターは、選択した要素の前にコンテンツを挿入します。 CSS :after は、指定された要素の後にコンテンツを挿入します。これらのセレクターは通常、 段落またはリンクの前後にテキストを追加するために使用されます。
Web サイトをデザインしているとき、要素のコンテンツが表示される前または後にコンテンツを追加したい場合があります。たとえば、リスト内の各箇条書きの前に画像を追加できます。
ここで、CSS ::before および ::after 疑似要素が登場します。これらの疑似要素を使用すると、要素のコンテンツの前後にコンテンツを挿入できます。
このチュートリアルでは、例を参照しながら、::before および ::after 疑似要素を使用して Web ページ上のコンテンツを装飾する方法について説明します。このチュートリアルを読み終える頃には、CSS で ::before および ::after 疑似要素を使用する専門家になっているでしょう。
CSS 擬似要素
疑似要素は、CSS セレクターによって選択された要素の特定の部分をスタイルできるようにする特別なキーワードです。すべての疑似要素はセレクターであるため、この記事では疑似要素をセレクターと呼びます。
疑似要素は、CSS クラスや ID を要素に追加せずに要素にスタイルを適用する場合に便利です。たとえば、Web ページ上のすべてのリンクの後に「>」矢印を追加したい場合は、擬似要素を使用できます。
CSS は幅広い疑似要素を提供します。これらには、::first-line、::first-letter、::before、および ::after が含まれます。このチュートリアルでは、最後の 2 つ、::before と ::after に焦点を当てます。
疑似要素は通常、二重コロン (::) を使用して表されます。 CSS3 では、疑似要素の宣言に単一コロン構文 (:) の使用をサポートしていますが、2 つのコロン表記を使用することがベスト プラクティスです。
これは、疑似クラスと疑似要素を区別するために 2 つのコロン表記が使用されるためです。
CSS ::before 擬似要素
::before 擬似要素は、Web ページ上の要素の前に表示されるコンテンツを追加します。多くの場合、この要素は段落の前にテキストを追加するために使用されます。
::before 疑似要素の構文は次のとおりです。
selector::before {
// CSS rules
}
::before セレクターは、セレクターを適用する要素の名前の後に追加されます。
::before 疑似要素の主なコンポーネントは次のとおりです。
- セレクター ::before を適用するセレクターを指します。したがって、::before 要素をすべての「a」タグに適用する場合、セレクターは「a」になります。または、クラス名「link」を持つすべての要素の前に ::before 要素を適用したい場合は、「.link」セレクターを使用します。
- ::前 セレクタの前に CSS ルールのコンテンツを追加するようにブラウザに指示します。
- CSS ルール は、セレクターの前に適用する必要があるルールです。
CSS でセレクターがどのように機能するかについて詳しく知りたい場合は、CSS セレクターに関するガイドをお読みください。
::before 疑似要素がどのように機能するかを示す例を見てみましょう。
::CSS の前の例
サンプル Web ページのすべてのリンクの前にリンク絵文字 (🔗) を追加するとします。このタスクは、次のコードを使用して実行できます。
コードは次を返します:
HTML ファイルでは、Career Karma ホームページにリンクする HTML タグを定義しました。次に、CSS ファイルで、::before 疑似要素を使用して、ウェブページ上のすべての タグの前にリンク絵文字を追加しました。
これは、CSS ファイルで次のようなコンテンツ プロパティを指定することで実現しました。
コンテンツ:“🔗”;
このルールでは、作成した タグの先頭にリンク絵文字を追加しました。
「content」属性の値は次のとおりです。
- 「これは文字列です。」などの文字列。
- 「counter(li);」などのカウンター。
- 「url(/path/to/image.png)」などの画像。
- 「」などの空の文字列。
HTML 要素を content 属性に挿入することはできません。
CSS ::after 擬似要素
CSS ::after 擬似要素を使用すると、Web ページ上の要素の直後にコンテンツを追加できます。 ::before セレクターと同様、::after はテキストのリンクまたは段落でよく使用されます。
::after 疑似要素の構文は次のとおりです。
selector::after {
// CSS rules
}
::after の構文は、::before 疑似要素の構文と同じです。 ::after は、前に説明した「content」属性と同じ値を受け入れます。
::CSS の例
Hansons Bakery というパン屋の Web サイト上のリンク要素をデザインしているとします。このリンクには、「ハンソンズベーカリーのホームページにアクセスします。」というテキストが表示されます。 リンクは幅 1 ピクセルの黒い実線で囲まれている必要があります。

「キャリア カルマは、私が最も必要としたときに私の人生に入り込み、すぐにブートキャンプに参加するのに役立ちました。卒業から 2 か月後、私は自分の価値観と人生の目標に合致する夢の仕事を見つけました。」
Rockbot のソフトウェア エンジニア、Venus 氏
ブートキャンプにマッチするものを見つけてください
ラベルの後に、このページでは焼き菓子メニューを紹介していますという内容を含むテキストボックスを表示したいと思います。 (「This」という単語の前の空白に注意してください。) ボックスの HTML 背景色はオレンジ色になっているはずです。
このタスクは、次のコードを使用して実行できます。
index.html
<a href="/" class="label">Go to the Hansons Bakery homepage.</a>
styles.css
.label {
border: 1px solid black;
}
.label::after {
content: " This page shows off our baked goods menu.";
background-color: orange;
}
私たちのコードは次のようなコンテンツを生成しました:
コードでは、 タグを使用してホームページへのリンクを定義しました。リンクに関連付けられたクラス名は .label です。 .
CSS ファイルでは、クラス名 .label を持つすべての要素の周囲に幅 1 ピクセルの黒の実線境界線を適用しました。 .
次に、::after セレクターを使用して、前に説明したテキストのボックスを作成しました。テキストボックスには「このページでは焼き菓子メニューを紹介します。」という内容が表示されます。 私たちのボックスの背景はオレンジ色です。
結論
::before および ::after 擬似要素を使用すると、CSS ルールで選択した要素の特定の部分にコンテンツを追加できます。たとえば、::before セレクターを使用して、リンクの前にテキストを追加できます。 ::after セレクターを使用すると、テキストの段落の後に絵文字を追加できます。
このチュートリアルでは、例を参照しながら、CSS の疑似要素の基本と、::before および ::after 疑似要素の使用方法について説明しました。これで、プロの Web デザイナーのように、CSS コードで ::before および ::after 擬似要素を使用できるようになりました。
CSS ウェブ開発者向けの優れた学習リソース、書籍、コースに関するアドバイスについては、CSS の学習方法ガイドをご覧ください。
-
CSSとJavaScriptを使用して近日公開のページを作成するにはどうすればよいですか?
CSSとJavaScriptを使用して近日公開のページを作成するには、コードは次のとおりです- 例 <!DOCTYPE html> <html> <style> body { height: 100vh; font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; margin: 0; }  
-
CSSでの固定位置
位置が設定された要素:固定;ページをスクロールしても同じ場所に留まります。 例 <!DOCTYPE html> <html> <head> <style> div.demo1 { position: relative; color: white; background-color: orange; border: 2px dashed blue; width: 600px; height: 2