
基礎的な質問なんですが…
①タグにidやclass名がついてる場合、セレクタは必ずタグ名ではなくidやclass名で指定する、という認識で正しいんですか?
▼例html
<p class="example">ああああ</p>
▼css ◯正しい
.example {
color: #fff;
}
▼css ✖間違ってる
p {
color: #fff;
}
②子孫セレクタは全ての先祖から指定する必要があるんですか?
例えば下記のhtmlコードの、li要素の文字色を指定したい場合、ⒶとⒷどちらが本来の正しい記述なんでしょうか?
▼html
<body>
<div id="wrapper">
<div id="header">
<h1>ああああ</h1>
<ul class="box">
<li class="nav1"><a href="aaaaaa">ああああ</a></li>
<li class="nav2"><a href="aaaaaa">ああああ</a></li>
<li class="nav3"><a href="aaaaaa">ああああ</a></li>
</ul>
<!-- #header --></div>
~以下省略~
<!-- #wrapper --></div>
</body>
▼cssⒶ
.box li {
color: #000080;
}
▼cssⒷ
#wrapper header .box li {
color: #000080;
}
No.3ベストアンサー
- 回答日時:
① いいえ
>▼css ✖間違ってる
>p {
でもあってるけど、それだと全部のPに適用される。それでも問題ないよ。
特定のPだけ適用するには、
.example { color: #fff;}
p.example { color: #fff;}
どちらかにするだけ。また詳細度(優先度)の問題もある。
どちらも指定する場合はあるよ(通常は黒で、特定が白とかね)
p{ color: #000;}
p.example { color: #fff;}
ただ、P以外を「白」にしたい場合も想定できるであるだろうから、その場合には、
.example { color: #fff;}
だけにした方が良い場合もあるし・・・
それは管理者の便利な方法でわかりやすい設定にするしかないかな。お好きなようにとしか言えません。
----------------------
② どちらでも良いし、どちらも正しいよ
これも①と同じで、便利な方や、詳細度が高くなれば良いだけ。
複数ある場合で、区別したい場合には、詳細度を高くしないとダメだからね。
header .box li {color: red;}
.box li { color: #000080;}
footer .box li { color: blue;}
デフォルト(基本型として全適用)で利用もしたいし、更に特定部分だけを変えたいが為に、どちらも必要だし、どちらとも利用します。
---
見たところ、②はグローバルメニューのような気がしますが、
そこの色を変えたい場合には、それじゃ変わらないよ・・・ a が必要
header .box li a{ color: #000080;}
header .box li.nav1 a{ color: red;}
等にしましょう!
--------------------
まあ、なんだかんだ机上の理論よりも、
セレクタなんてどう書こうが本人が理解した上で、便利だったり、それで適用されれば良いのです・・・
(ただし、管理を共有する場合には、スキルを疑われたり、汚いと迷惑掛けます)
回答ありがとうございます!
すみません2点教えて頂きたいのですが、
1.
>見たところ、②はグローバルメニューのような気がしますが、
そこの色を変えたい場合には、それじゃ変わらないよ・・・ a が必要
liタグでは駄目で、aタグだと効果が適用される理由を教えて下さい。
変化させたいのはli要素だから、liで指定出来ると思ったんです。
それとも、②のli要素において一番の子孫はaタグになるのでしょうか?
そうなると、もし下記のようにimgタグが記述されている場合、
<li class="nav1"><a href="aaaaaa"><img src="bbbbbb" alt=""></a></li>
header .box li.nav1 a img { color: red;}
のように記述するのでしょうか?
2.
>header .box li. nav1 a { color: red;}
上記のコードの、↑「li」の部分は無くても適用されますよね?(同じheader内に他にnav1が無ければ)
No.4
- 回答日時:
#3です お礼拝見済み
そういうのは、悩んだり頭で考えるよりも、試せば答えが出るでし早い・・・
更にいろんなパターンを作ればそれが知識にもなるし、それらを自由に応用出来るようになります。
----------
>1.
>liタグでは駄目で、aタグだと効果が適用される理由を教えて下さい。
A,
それは、
<li class="nav1">ああああ<a href="aaaaaa">いいいい</a></li>
の想定の場合に、liとaのセレクタが違うからです・・・
>header .box li.nav1 a img { color: red;}
>のように記述するのでしょうか?
A,
理屈はその通りですが、画像にcolorを指定しても無意味ですw
>2.
>header .box li. nav1 a { color: red;}
>上記のコードの、↑「li」の部分は無くても適用されますよね?(同じheader内に他にnav1が無ければ)
A,
その前に、
header .box li. nav1 a { color: red;}
header .box li.nav1 a { color: red;}
は違うから、質問になっていないけど・・・
はい、
以下のどれでも良いです!(詳細度の問題)
header .box .nav1 a { color: red;}
header .nav1 a { color: red;}
.box li.nav1 a { color: red;}
.box .nav1 a { color: red;}
li.nav1 a { color: red;}
.nav1 a { color: red;}
No.2
- 回答日時:
本来というものは正直ありません。
コードのメンテナンス性や可読性が考慮されていて、
設計意図に合う動きをするなら問題ないのではないでしょうか。
回答としては、②で先祖全て指定するのが面倒だから、
①のようにClassやIdが存在すると考えてください。
また、適当にどこかからの相対指定にした場合は、当てはまるものすべてに適用されます。
「index.html」
<body>
<div>
<form>
<div>
<p id="bb" class="dd"></p>
</div>
</form>
<p id="aa" class="dd"></p>
</div>
<div>
<p id="cc" class="dd"></p>
</div>
</body>
「main.css」
例1)div p{}
例2)#bb,#aa,#cc{}
例3).dd{}
これらの例はどれも同じ結果になります。
※インデントのために全角空白文字を使っているので
コピペはしないでくださいね。
参考に「CSS セレクタ チートシート」で検索してみてください。
https://webliker.info/css-selector-cheat-sheet/
それと1次情報を確認するのを忘れないでくださいね。
https://www.w3schools.com/css/
https://developer.mozilla.org/ja/docs/Web/CSS
No.1
- 回答日時:
(2) の方, li タグに class が付いてるんだけどクラス名ではなく要素名で指定してるよね. (1) の「タグにidやclass名がついてる場合、セレクタは必ずタグ名ではなくidやclass名で指定する、という認識」と矛盾するよ.
まあ「何を指定したいのか」で決めればいいわけであって, 「こうしなければならない」という規則はないんだけど.
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
個別にリンクの色を変える方法
-
最近、HTMLのヘッダーをIDで定...
-
dreamweaverのコード画面で波線。
-
CSSの適用を一部だけ除外したい。
-
HTML要素のid/class名の長さに...
-
同ページ内でリンクの色を変え...
-
リンク文字の 一部だけ色を変...
-
特定の見出しのみ前後の空白を...
-
CSSのクラス名・ID名の指定でワ...
-
CSSで背景画像をランダムに同画...
-
htmlの文字が縦書きになる
-
含む含まないという概念自体の...
-
HTML の繰返し法???
-
複数のボタンを等間隔に、かつ...
-
htmlのolやulなどlistにtitleや...
-
ボタンをセル内一杯に表示させ...
-
ヘッダーとフッターだけ背景を...
-
HTML属性での「""」 「''」違い
-
html タグの閉じスラッシュ前の...
-
htmlの<ol>タグで、数字などを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのid属性って必要なの?
-
個別にリンクの色を変える方法
-
idの中のid指定
-
liリストタグの背景色に色がつ...
-
サイトにjQueryが使用されてい...
-
HTML要素のid/class名の長さに...
-
CSSのクラス名・ID名の指定でワ...
-
a要素の色を複数使い分ける方法
-
FC2掲示板をトピック一覧表示型...
-
スタイルシートについて
-
CSSに同じclass名がいっぱい‥。...
-
brにクラスをつけてcssでdispla...
-
webデザイン 疑問点
-
CSS 記事内link色変更方法
-
親エレメントに含まれる子エレ...
-
cssでIEとFIREFOX(とchrome)の...
-
CSS内で使われる山括弧の意味が...
-
css:positionの挙動について
-
スタイルシートのドットが#に...
-
dreamweaverのコード画面で波線。
おすすめ情報