このサイトは、只今WEB業界で活躍中のデザイナー、プログラマーの方々の情報を集めたweb統合情報サイトです。

Archives Details

同一クラスで異なるレイアウト CSS 隣接セレクタ

CSS

2011.10.26

この記事は最終更新日から1年以上が経過しています。

CSSのセレクタで隣接セレクタと呼ばれるものがあります。

隣接セレクタとは、要素と要素が直接隣接している(兄弟要素)場合に適用されるセレクタです。

このため、指定した要素と要素の間に別の要素が有る場合は対象になりません。

つまり、どういう事かというと、こんなHTMLがあったとします。

HTML

<p>テキスト</p>
<ul>
<li>リスト1</li>
<li>リスト2</li>
</ul>
<p>テキスト</p>

隣接セレクタで指定します。

CSS

p+ul{
margin-top:10px;
}

この場合、真ん中にあるulにスタイルが適応されます。

また

CSS

ul+p{
margin-top:20px;
}

こう指定すると、ulの次にある要素のp要素に適応されます。

最初のpには適応されません。

また、

CSS

p+p{
font-size:18px;
}

こう指定すると、pとpの間にul要素が存在するため、スタイルは適応されません。

 ulが無くなった場合。(liも含む)

 pの後のp要素に適応されます。

また、 

ul+li{
border-top:#ccc 1px solid;
}

こちらも適応しそうな気がしますが、liはulの子要素のためスタイルは適応しません。

この場合は子セレクタ(ul>li)が適応されます。

これらを用いて、次のようなレイアウトを再現しましょう。

写真左寄せのスタイル、テキスト右寄せのスタイル、右のスタイル・・・。

と複数のクラスを用意してスタイル指定を行わないと行けない気がしますが、

ここでは、2つのクラスで実装しています。

デモページ

 では解説を

テキストには「.text」画像には「.img」の2種類のクラスを付与。

 

 

隣接セレクタとして指定している部分は

・テキストとテキストが並んだ場合のスタイル .text + .text
・画像とテキストが並んだ場合のスタイル .img + .text 

・画像とテキストとテキストが並んだ場合のスタイル .img + .text + .text
・画像と画像が並んだ場合のスタイル .img + .img
・画像と画像とテキストが並んだ場合のスタイル .img + .img + .text 

の指定でこのようなレイアウトができます。

詳しくはデモページにて

このような指定は、テキスト部分がなくなった場合。

画像部分が入った場合などの場合、特別に指定を増やさす、自動でレイアウトする事が出来ます。

CMSで自動でコンテンツが入る場合などにも有効なセレクタだと思います。

また、IE6には対応していないのでご注意をよろしくお願いします。

Comment

Related Article

CSSスプライトを コマンドで生成 「Glue」の使い方

2014.08.23

jsdo.it企画 CSSで必殺技に参加しています。

2011.12.07

CSS圧縮 webサービス css compressor

2011.11.26

同一クラスで異なるレイアウト CSS 隣接セレクタ

2011.10.26

css 文頭のみ インデントを適応させない

2011.10.19

CSSをライブラリ化?Sass(scss)のインストール 使用方法 mac

2011.09.05

IE6 クリアーフィックスが効かない時

2011.06.25

CSS ブラウザの縦幅に合わせレイアウト調整

2011.06.05

css リキッドレイアウト スマートフォンでも利用化

2011.02.23

CSSとはなんぞや? (スタイルシート物語)

2010.11.25

CATEGORY LIST

LATEST NEWS

Rust - Actix Web mongo ユーザー登録 JWT認証

Rust

2024.03.24

Rust - Actix Web JWT 認証認可 APIの作成

Rust

2024.02.25

Rust - Actix Web × JSON 静的ファイルをAPIで返却

Rust

2024.01.19

Rust - Actix Web × MongoDB環境をサクッと起動

Rust

2024.01.18

5分で学ぶ RustでWave Function Collapse (波動関数崩壊アルゴリズム)

Rust

2024.01.15

LLaMAモデル GGMLフォーマット(llama.cpp)をRustフレームワーク Leptosを用いて M1MacMiniでサクッと動かす。

Rust

2024.01.11

2024年 狙っているモバイルノートPC

tool

2024.01.07

MacOS XcodeにSDL2を追加

tool

2023.12.26

php 7.4にアップデート

PHP

2023.12.24

5分で覚える Flutter Flameで作る Wave Function Collapse - 波動関数崩壊アルゴリズム

AI・Bot・algorithm

2023.12.20

Flutter - Flameでゲーム作成 (キャラクターの移動)

Flutter

2023.07.23

Flutterで作る ChatGPT Prompt Manager

Flutter

2023.07.12

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

WEBデザイナーの、WEBデザイナーによる、WEBデザイナーの為のサイト。「みんなで書こう!」と仲間を募ってみたが、結局書くのは自分だけとなってしまいました。日々のメモを綴っていきます。

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

MAD CITY 北九州市で生まれ育つ。20代はバンド活動に明け暮れ、ふと「webデザイナーになりたい。」と思い、デジタルハリウッド福岡校入学。卒業後、数々の賞を受賞、web業界をざわつかせる。
現在、主に、ゲーム制作中心に港区六本木界隈で活動中。

FOLLOW US