menu
menu

キーワード検索

 

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

  1. ( 1 - ) 【CSS】CSSだけでドロップダウンメニュー
  2. ( 2 - ) 【jQuery】jQueryでドロップダウンメニュー
  3. ( 3 - ) 【CSS】CSSだけでサイズ可変・スマホ対応のアコーディオン
  4. ( 4 - ) 【CSS】レスポンシブデザインのブレークポイントは⁉
  5. ( 5 - ) 【Mac】Macのユーザー名とアカウント名を変更する
  6. ( 6 - ) 【CSS】スマホサイト向け横にスクロールするナビゲーション
  7. ( 7 - ) 【jQuery】表示しているブラウザの高さを取得してCSSのheightに指定
  8. ( 9 ↑) 【PHP】PHPでシンプルなメールフォーム
  9. ( 8 ↓) 【CSS】CSSだけでブロック要素の表示非表示(トグルボタン)
  10. ( - ↑) 【Mac】MacにGoogle Driveをインストール
このエントリーをはてなブックマークに追加

【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はこちら

 

にほんブログ村 IT技術ブログ JavaScriptへ

関連リンク

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

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