menu
menu

キーワード検索

 

前月(11月)の人気記事トップ10

  1. ( 1 - ) 【CSS】CSSだけでドロップダウンメニュー
  2. ( 2 - ) 【Mac】Macのユーザー名とアカウント名を変更する
  3. ( 3 - ) 【jQuery】jQueryでドロップダウンメニュー
  4. ( 4 - ) 【CSS】スマホ対応CSSだけでドロップダウンメニュー
  5. ( 6 ↑) 【iPhone・iPad】iPhoneのメモリを簡単に解放する方法
  6. ( 5 ↓) 【iPhone・iPad】投稿の準備中にエラーが起きました。後でやり直してください。
  7. ( 9 ↑) 【jQuery】入門2. jQueryをHTMLに組み込む
  8. ( 8 - ) 【CSS】レスポンシブデザインのブレークポイントは⁉
  9. (10 ↑) 【Mac】iMovieの保存場所を変更する
  10. ( - ↑) 【PHP】PHPでシンプルなメールフォーム
このエントリーをはてなブックマークに追加

【jQuery】親要素にCSSを適用させるこんな方法

【jQuery】親要素にCSSを適用させるこんな方法

こんにちは(・∀・)

親要素から特定する子要素にCSSを適用させる場合、「p > img」みたいな感じでセレクターを利用してCSSを適用させることができます。

その逆で子要素から親要素にCSSを適用させる場合、上記のようにセレクターを使ってCSSを適用させることはできません。

CSS4のセレクターで「:has()」というのがあり、上記のことが実現できますが、まだどのブラウザも対応しておりません。

CSSで完結したいところですが、こんな時はjQueryで解決できます。

Contents

  1. メソッド.parentで親要素にCSSを適用
  2. セレクター:has()で親要素にCSSを適用
  3. メソッド.has()で親要素にClassを追加
1. メソッド.parentで親要素にCSSを適用

メソッド.parentで親要素にCSSを設定する。

サンプル

Google Hosted LibrariesからjQuery 1.x snippetを<head>内に読み込みます。


<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
HTML

<p><img src="bg6.jpg" alt="横浜赤レンガ倉庫の画像" class="c-img-2"></p>
CSS

img.c-img-2 {
  width: 100%;
}
JavaScript

$(function() {
$('img.c-img-2').parent('p').css({background:'lightgray','max-width':'600px',margin:'0 auto',padding:'10px'});
});
Result

サンプルデモ1はこちら

2. セレクター:has()で親要素にCSSを適用

CSSでは未だ使えませんがjQueryではセレクター:has()は以前から使えます。

セレクター:has()で親要素にCSSを適用させます。

サンプル
HTML

<p><img src="bg6.jpg" alt="横浜赤レンガ倉庫の画像" class="c-img-2"></p>
CSS

.c-img-2 {
  width: 100%;
}
JavaScript

$(function() {
$('p:has(img.c-img-2)').css({background:'lightgray','max-width':'600px',margin:'0 auto',padding:'10px'});
});
Result

サンプルデモ2はこちら

3. メソッド.has()で親要素にClassを追加

セレクターの:has()よりもメソッド.has()の方が推奨されているようです。

直接メソッド.css()で指定しないで.addClass()メソッドで親要素にclassを追加してみました。

サンプル
HTML

<p><img src="bg1.jpg" alt="HOTEL NEW GRANDの画像" class="c-img-2"></p>
CSS

.c-img-2 {
  width: 100%;
}
p.hoge {
  border: 5px solid pink;
  background: lightgray;
  max-width: 600px;
  margin: 0 auto;
  padding: 10px;
}
JavaScript

$(function() {
$('p').has('img.c-img-2').addClass('hoge');
});
Result

サンプルデモ3はこちら


関連リンク

CSSで親要素にstyleを適用する
【意外と便利!】特定の子要素を持つ親要素にcssを適用する方法

  • CSS jQuery 親子要素
このエントリーをはてなブックマークに追加