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

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回答

1541閲覧

cssを適用する対象の選択で困っています.....

zeben

総合スコア67

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クリップ

投稿2015/12/09 05:18

css

1#nav{ 2 background-color: #444; 3 padding: 3px; 4} 5 6 7#nav ul{ 8 padding: 0px; 9 margin: 0px; 10} 11 12 13#nav ul li { 14 display: inline; 15 margin-right: 1em; 16} 17

これは抜粋なのですが、ulやli等適用するしてるものが個々に違いますが、どのような基準でわけているのですか?
わかりやすいサイト等があればそちらも教えていただきたいです。

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

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

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

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

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

guest

回答4

0

ベストアンサー

どのような基準でセレクタを分けるかといえば、

・どのようなHTML構造に対して
・どのようなデザイン/レイアウトで表示したいのか

に応じて分けるということになるでしょうかねー。

意識されているかどうかは分かりませんが、CSSはHTML構造を土台として適用するものになりますので、原則として土台となっているHTMLの構造がどのようになっているかを確認し、その上で自分の作りたいデザイン/レイアウトを実現するのにふさわしいセレクタを選択し、プロパティを記述して行くことになります。

例えば例に挙げた抜粋のCSSコードであれば、おそらくこんな感じのHTMLがあり、

HTML

1<div id="nav"> 2<ul> 3 <li>リスト1</li> 4 <li>リスト2</li> 5</ul> 6</div>

「3pxの余白を持ったグレー(#444)の四角い枠の中に、箇条書きリストを横に並べる」というデザインを実現したいのでしょう。
従って、

CSS

1#nav{ 2 background-color: #444; 3 padding: 3px; 4}

この部分で「3pxの余白を持ったグレーの四角い枠」を作り、

CSS

1#nav ul li { 2 display: inline; 3 margin-right: 1em; 4}

この部分で箇条書きリストを横並び(display:inline)にしているのが分かります。
(margin-right:1em;は横並びにした項目の間に1文字分の余白をつけています)
じゃあこれは何かというと、

CSS

1#nav ul{ 2 padding: 0px; 3 margin: 0px; 4}

miwakazuoさんが指摘されているように、ul要素がもともと持っているデフォルトのmargin/paddingをゼロにすることで余計な余白が出ないようにしているのでしょう。

このように、CSSは土台となるHTML構造を前提として、いかにして自分の求めるデザイン/レイアウトにするかということを考えて記述するのが基本となります。
その上で、プロの世界になると「いかに流用しやすくするか」「いかに破綻をふせぐか」「いかに複数人でもわかやすくするか」等、日々の運用面での効率等、様々なことを考えてセレクタを設計していくことになります。
CSSセレクタ設計について深く知りたければこういう本もありますので参考までに。
Web制作者のためのCSS設計の教科書 モダンWeb開発に欠かせない「修正しやすいCSS」の設計手法

投稿2015/12/09 16:49

aKusano

総合スコア3763

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

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

zeben

2015/12/11 05:29

ありがとうございます。
guest

0

CSSセレクタの書き方について、質問されているのでしょうか。(違ったらごめんなさい)

基本的にセレクタの書き方は、HTML構造(というよりかは表示構成)によって変わってきます。

  • 画面全体に適用したいならタグで記載
  • 複数個所で同じような表示構成をしたいなら、class 属性でグルーピング
  • ピンポイントで設定したいなら ID で設定

→ CSS単体ではなくHTMLとの組み合わせによって成り立ちます。

ちなみに、個人的に気を付けていることとしては、下記のとおりです。

  • CSSの適用範囲を考える(HTML文書全体に適用したいならタグで定義、部分的に適用したいなら class, id 等を用いる等)
  • なるべくセレクタ構成はミニマムにする
  • 新しいクラスをむやみに用意するくらいなら、疑似セレクタの利用を考える
  • 状況によっては HTML 構造をいじることも考える

参考サイトは下記あたりを目を通すとよいかもしれません

投稿2015/12/09 06:29

編集2015/12/09 06:37
usk

総合スコア397

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

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

zeben

2015/12/11 05:29

ありがとうございます。
guest

0

例えばpaddingとmarginのそれぞれの設定ですが、ulはもともとpaddingとmarginを持っている(ブラウザがデフォルトで適用する)ので、それをなくすためにわざわざ「0」を指定している、liはulと違ってもともとmarginがない(0)ので、marginをとるために指定している、#navがdiv要素だと仮定すると、liと同様、もともとmarginもpaddingも0なので指定している。

といったことですかね?

入れ子構造の中でどの要素にmarginやpaddingを持たせるかということでしたら、それはレイアウト次第ですね。

投稿2015/12/09 06:11

miwakazuo

総合スコア52

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

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

zeben

2015/12/11 05:29

ありがとうございます。
guest

0

失礼ですが質問の意図がいまいち分かりません。
特定のタグに対して、出現箇所ごとに適用するcssが異なるということでしょうか。
上記の場合単純にclassを別に指定すれば問題ないかと思います。

投稿2015/12/09 06:03

rontec

総合スコア169

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

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

rossi46hiro

2015/12/09 06:05

おそらくそもそもHTMLの構造をよく理解されていないのでは?
zeben

2015/12/11 05:28

すみません... 勉強いたします。
rossi46hiro

2015/12/11 05:33

良いと思ったサイトデザインや挙動などを見つけたら、ブラウザのデベロッパーツールを使って確認するというの繰り返すと効率よく勉強できると思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問