CSSの隣接セレクタ「+」で要素の直後にある要素を選択する方法
CSSの隣接兄弟結合子「+」とは
CSSでは、element + element という隣接兄弟結合子(隣接セレクタ)を使用することで、指定した要素の直後に配置されている要素だけを対象にスタイルを適用できます。たとえば、<div> 要素の直後に続く <p> 要素のみを選択したい場合に非常に便利です。
以下のサンプルコードでは、div + p セレクタを使い、<div> 要素の直後に配置された <p> 要素に対して、文字色を白・背景色を青にするスタイルを適用しています。
サンプルコード
<!DOCTYPE html>
<html>
<head>
<style>
div + p {
color: white;
background-color: blue;
}
</style>
</head>
<body>
<h1>Demo Website</h1>
<h2>Fruits</h2>
<div>
<p>This is demo text.</p>
</div>
<p>Fruits are good for health.</p>
<p>Fruits makes you healthy.</p>
</body>
</html>
動作のポイント
このコードを実行すると、「Fruits are good for health.」と「Fruits makes you healthy.」の2つの段落が、白い文字と青い背景で表示されます。一方、<div> 要素の内側にある「This is demo text.」の段落には、<div> の直後に配置されていないためスタイルが適用されません。
補足: 隣接兄弟結合子「+」が対象とするのは、直後に隣接している要素1つだけです。もし <div> 以降にあるすべての兄弟 <p> 要素にスタイルを適用したい場合は、一般兄弟結合子「~」(div ~ p) を使用するとよいでしょう。
-
【CSS】Flexboxで作る高度なレイアウト!基本プロパティと実装サンプルを解説
Flexbox(フレックスボックス)とは?
CSS3には「Flexible Box Layout(フレキシブルボックスレイアウト)」と呼ばれるレイアウトモードが用意されており、一般的にはFlexbox(フレックスボックス)として知られています。Flexboxを活用することで、従来のfloatやpositionを使った手法よりもはるかに簡単かつ柔軟に、複雑なWebアプリケーションやWebページのレイアウトを構築できます。
Flexboxは「フレックスコンテナ」(親要素)と「フレックスアイテム」(子要素)という2つの概念で構成されます。親要素にdisplay: flex;を指定するだけで、その直下
-
CSSだけで実現するスムーススクロールの書き方
CSSのscroll-behaviorプロパティを使うと、アンカーリンクによるページ内移動時のスクロール動作を、JavaScriptに頼ることなく純粋なCSSだけで制御できます。値にsmoothを指定すれば、クリック一つで目的地までなめらかにアニメーションしながらスクロールします。
scroll-behaviorプロパティの主な値
auto:ブラウザの標準動作。リンクをクリックすると瞬時に目的の位置へジャンプします。
smooth:滑らかなアニメーションを伴ってスクロールします。
このプロパティはChrome、Firefox、Edge、Safariなどの主要ブ
要素を選択する方法
CSSの隣接兄弟結合子「+」とは
CSSでは、element + element という隣接兄弟結合子(隣接セレクタ)を使用することで、指定した要素の直後に配置されている要素だけを対象にスタイルを適用できます。たとえば、<div> 要素の直後に続く <p> 要素のみを選択したい場合に非常に便利です。
以下のサンプルコードでは、div + p セレクタを使い、<div> 要素の直後に配置された <p> 要素に対して、文字色を白・背景色を青にするスタイルを適用しています。
サンプルコード
<!DOCTYPE html>
<html>
<head>
<style>
div + p {
color: white;
background-color: blue;
}
</style>
</head>
<body>
<h1>Demo Website</h1>
<h2>Fruits</h2>
<div>
<p>This is demo text.</p>
</div>
<p>Fruits are good for health.</p>
<p>Fruits makes you healthy.</p>
</body>
</html>
動作のポイント
このコードを実行すると、「Fruits are good for health.」と「Fruits makes you healthy.」の2つの段落が、白い文字と青い背景で表示されます。一方、<div> 要素の内側にある「This is demo text.」の段落には、<div> の直後に配置されていないためスタイルが適用されません。
補足: 隣接兄弟結合子「+」が対象とするのは、直後に隣接している要素1つだけです。もし <div> 以降にあるすべての兄弟 <p> 要素にスタイルを適用したい場合は、一般兄弟結合子「~」(div ~ p) を使用するとよいでしょう。
-
【CSS】Flexboxで作る高度なレイアウト!基本プロパティと実装サンプルを解説
Flexbox(フレックスボックス)とは? CSS3には「Flexible Box Layout(フレキシブルボックスレイアウト)」と呼ばれるレイアウトモードが用意されており、一般的にはFlexbox(フレックスボックス)として知られています。Flexboxを活用することで、従来のfloatやpositionを使った手法よりもはるかに簡単かつ柔軟に、複雑なWebアプリケーションやWebページのレイアウトを構築できます。 Flexboxは「フレックスコンテナ」(親要素)と「フレックスアイテム」(子要素)という2つの概念で構成されます。親要素にdisplay: flex;を指定するだけで、その直下
-
CSSだけで実現するスムーススクロールの書き方
CSSのscroll-behaviorプロパティを使うと、アンカーリンクによるページ内移動時のスクロール動作を、JavaScriptに頼ることなく純粋なCSSだけで制御できます。値にsmoothを指定すれば、クリック一つで目的地までなめらかにアニメーションしながらスクロールします。 scroll-behaviorプロパティの主な値 auto:ブラウザの標準動作。リンクをクリックすると瞬時に目的の位置へジャンプします。 smooth:滑らかなアニメーションを伴ってスクロールします。 このプロパティはChrome、Firefox、Edge、Safariなどの主要ブ