質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

4回答

3138閲覧

divの中のpの中のaの中のimgにCSSを適応させるにはどのように書けば良いですか?

keys

総合スコア215

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2017/08/01 08:55

雑な質問で恐縮です。タイトルの通りです。divの中のpの中のaの中のimgにCSSを適応させたいのですが、imgのクラスだけを指定してもcssが効きません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/08/01 09:49 編集

cssプリプロセッサだとかフロントエンド向けフレーム枠など何か組み込んでいるなら、その旨書いてほしいです。
guest

回答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 から覚えると良いかもしれません。
なお、詳細性が同じセレクタの場合は、後述のセレクタによって上書きされます(後述の方が優先順位が高い)。

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
think49

総合スコア18164

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

CSSの優先順位で調べてください。

投稿2017/08/01 09:21

T_sa

総合スコア353

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

質問者さんが実際に指定しているCSSとHTMLのコードを提示して頂かないと、何とも言えません。
CSSやHTML指定が正しく記載されていれば効きます。
ブロック要素やインライン要素等の違いもありますので、まずはコードを提示して下さい。

投稿2017/08/01 09:01

yoshinavi

総合スコア3523

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

直下でなくてもいいのであれば半角スペースで区切るだけです
競合する設定がないかはよく確認したほうがいいでしょう
(どうしても競合を外せない場合は優先順位をあげるしかない)

投稿2017/08/01 08:58

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問