雑な質問で恐縮です。タイトルの通りです。divの中のpの中のaの中のimgにCSSを適応させたいのですが、imgのクラスだけを指定してもcssが効きません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答4件
0
divの中のpの中のaの中のimgにCSSを適応させたいのですが、imgのクラスだけを指定してもcssが効きません。
「中」が「孫要素」なのか「子要素」なのかによって記述が変わりますが、子孫要素と仮定するなら「子孫結合子」、子要素と仮定するなら「子結合子」で表現できます。
後述の通り、他に詳細性の高いセレクタが存在しなければ、期待通りに動作するはずです。
子結合子 (Child combinator)
CSS
1/* 子結合子 */ 2div>p>a>img {}
子孫結合子 (Descendant combinator)
>>
は Selectors 4 で拡張された記法ですが、2017/08/01現在では実装されているブラウザがほとんどない為、まだ使用すべきではありません。
CSS
1/* 子孫結合子 */ 2div p a img {} 3div>>p>>a>>img {} /* この文法は実装されているブラウザがほとんどない為、まだ使用すべきではありません */
セレクタの詳細性を計算する
セレクタの優先順位は詳細性(specificity)によって計算できます。
最新仕様である Selectors Level 4 になると複雑になるので、CSS 2 から覚えると良いかもしれません。
なお、詳細性が同じセレクタの場合は、後述のセレクタによって上書きされます(後述の方が優先順位が高い)。
- セレクタの詳細性を計算する - 正しい知識を得たい人の爲のCSS2リファレンス
- 15. Calculating a selector's specificity - Selectors Level 4
- 16. 選択子の詳細度の計算法 - Selectors Level 4 (日本語訳)
CSS
1* /* a=0 b=0 c=0 */ 2LI /* a=0 b=0 c=1 */ 3UL LI /* a=0 b=0 c=2 */ 4UL OL+LI /* a=0 b=0 c=3 */ 5H1 + *[REL=up] /* a=0 b=1 c=1 */ 6UL OL LI.red /* a=0 b=1 c=3 */ 7LI.red.level /* a=0 b=2 c=1 */ 8#x34y /* a=1 b=0 c=0 */ 9#s12:not(FOO) /* a=1 b=0 c=1 */ 10.foo :matches(.bar, #baz) /* 11合致する要素に依存して, (a, b, c) = (0, 2, 0) または (1, 1, 0) のいずれかになる。 */
詳細性は繰り上げされない
「a=1 b=0 c=0」の詳細性を「100」と表現している解説サイトがありますが、厳密にはこれは間違いで誤解の元です。
(説明が分かりやすいので紹介しましたが、前述の 正しい知識を得たい人の爲のCSS2リファレンス が「100」と表現しています)
「100」のような一つの十進数値で表現してしまうと、「a=0 b=10 c=0」が「100」に繰り上げされそうに思えますが、実際には繰り上げされません。
「a=0 b=10 c=0」は「0-10-0」と見るのが正解で「a=1 b=0 c=0」よりも詳細性が低いと評価されます。
開発者ツール
詳細性は計算すれば出ますが、全てのセレクタを網羅するのは大変なので、開発者ツールを活用する事をお勧めします。
開発者ツールを使えば、上書きされたセレクタは「打ち消し線」で表現されます。
Re: AliciaKeys さん
投稿2017/08/01 09:52
編集2017/08/01 10:06総合スコア18164
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。