このサイトは、只今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でつくる ふっかつのじゅもん

Rust

2025.04.29

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その5

Rust

2025.04.14

う、動くぞ! Mac mini Apple M4 Pro で PS3ソフトを遊ぶ。RPCS3 Mac版を起動

Game

2025.04.12

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その4

Rust

2025.04.10

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その3

Rust

2025.04.08

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その2

Rust

2025.04.07

時代を先取りし過ぎた ニューラルネットワークが導入されたゲーム『がんばれ森川君2号』を令和に嗜んでみる。

Game

2025.04.06

Tauri(Rust) × AI で作る GitGUIクライアントアプリ その1

Rust

2025.04.05

keyring-rsで、Macのキーチェーンに登録する。

Rust

2025.04.04

RustとWebAssemblyによるゲーム開発 Webpack5対応

Rust

2025.03.27

Rustで創る MOS 6502 CPU その3 (Cursorと共に)

Rust

2025.02.24

あけましておめでとうございます(24日経過)

イベント

2025.01.24

RANKING

Follow

SPONSOR

現在、掲載募集中です。



Links

About Us

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

Entry Profile

Graphical FrontEnd Engineer
- Daisuke Takayama

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

FOLLOW US