• ベストアンサー

ホームページのCSSについて

ホームページのCSSについて教えてください。IDとCLASSとDIVについて 理解できないものですから、分かりやすく教えていただけませんか?ID,CLASS,DIVの理論は理解できるのですが、実際の使い方・・・特にIDとCLASSが分かりません・・・・

質問者が選んだベストアンサー

  • ベストアンサー
  • syagain
  • ベストアンサー率54% (42/77)
回答No.3

id,class,divがごっちゃになっておられるようなので、基本的な所から書いてみました。 無駄に長いです。既に分かっていることだったら済みません。 @HTMLとCSS(スタイルシート)  <HTMLのタグ>は、主にページの構造を示すものです。スタイルシートは、それに対しての修飾です。  タグ自体に、修飾の指定をすることもできますが、それだとゴチャゴチャしてし見にくいです。そのため、 「HTMLのタグで大まかな構造を作り、スタイルシートで細かい修飾をする」  これがHTMLとCSSの関係です。  <div>はHTML上のタグであり、範囲を指定するタグです。  class,idはHTMLのタグにつけられる、「スタイルシートによる設定を呼び出す」為の記述です。  つまり<div class="◯◯">は、「<div>の範囲に、class◯◯で指定されたことを適用する」という使い方になります。 例)<div>以外のタグでも使えます。 <table id="◯◯">(id◯◯で指定されたことを、tableタグに適用する) <span class="××">(class××で指定されたことを、spanタグに適用する) この◯◯、××の部分が、スタイルシートに書かれています。 @スタイルシート 1、タグを指定する div{赤い背景}  例えばこのような設定をすれば、divタグの範囲は全て赤い背景になります。要するに一括指定です。 2、タグを指定せず、修飾の内容だけ設定する。  「こっちのdivは赤に、こっちのdivは黒にしたい」という時に、活躍するのがclass、idです。   複数のclass、idを作るのですから、当然それぞれに名前を付けます。 (スタイルシート)  .クラス名{修飾内容}  #ID名{修飾内容} (HTML)  <div class="クラス名"></div>  <span id="ID名"></span>  これでHTMLに、スタイルシートから「クラス名」や「ID名」の  class/IDが呼び出され、その修飾内容がそのタグの指定範囲に適用されます。  .kurozi{color:black;}  .aka{color:red;}  .blue{color:blue;}  スタイルシートに上のように書けば、  HTMLで以下のような使い分けができます。  <div class="kurozi">黒字</div>  <div class="aka">赤字</div>  <div class="blue">青字</div> 3、限定したタグにclassを設定する場合 div.red{} div.blue{}  このように設定される場合もあります。  この場合、divタグ以外ではこのclassは使えません。 @classとidの違い  classがバイキングのメニューだとしたら、idは定食みたいなものです。  classは和食中華洋食、いくつでも好きな取り合わせを選べます。  idはすでに決まった一つのセットメニューをまるっともらいます。  当然classは、idと同じメニューも作れます。  .classset{黒い線、細い線、赤い文字、黄色い背景}   classでこのように指定するのと、  #idset{黒い線、細い線、赤い文字、黄色い背景}   idでこのように指定しても、結果は一緒です。  ただclassの良い所は、「色々な組み合わせができる」と言う点です。  色んな指定を一つのclassにまとめてしまうと、ちょっと違うデザインにしたいとき、また同じようなclassをもう一つ作る必要がでてくる。  だからclassは「バラで作って」「選んで使う」のに適しています。  一方のIDは一度しか使わないので、「ピインポイントで指定する」のに適しています。 

gejigeji1
質問者

お礼

誠に有難うございます、ご丁寧なご指導恐れ入ります。時間をかけて繰り返し読み返して咀嚼したいと思います。何度も読み、ご教授の内容を理解したいと思います。

その他の回答 (2)

  • salonpath
  • ベストアンサー率48% (194/399)
回答No.2

そうですね、結局は慣れです。 よくわからないうちは全部classでも問題ないと思います、間違いではないですし、idを使うのが優れたサイトの条件ってわけではないので。 idを使うメリットは、ページに1回しか登場しないのでたとえばjavascriptで何かするときピンポイントで対象を指定できるようになったりとかかな 自分もいまだによくわからないのでアバウトですが。 それでは頑張ってください。

gejigeji1
質問者

お礼

ご回答有難うございました、やっと分かってきました。大助かりです。

  • salonpath
  • ベストアンサー率48% (194/399)
回答No.1

idは1つのhtml内で1回しか使用できません。 classは何回も登場させられます。 文字の色や大きさみたいに1ページ中に何回も使うものに指定します。 よくあるwebサイトの構成として --- ヘッダー(ロゴ画像やサイトの名前部分) メニュー(ナビゲーション) コンテンツ(ページの内容) フッター(コピーライト等) --- がありますが、このそれぞれはDIVが受け持ち そこにIDを割り当てたりします。 これでわかりますかね?

gejigeji1
質問者

お礼

ご回答有難うございます、少し分かりました。入れ子のDIVにIDとかCLASSを割り当てるわけですね。でもそこからの作業が分からないのですが、ドリームウイーバーでは右に出てくるタグインスペクタで指定するのかcssのスタイルシートで指定するのかが分かりません。スタイルシートの記述にはどうもBODYからDIV、liといった指定しか書いていませんし・・・鶏が先か卵が先かといった感じで理解できないのです。

gejigeji1
質問者

補足

すみません、チョット難しく考えすぎていました。いつも使っていたのがCLASSであることに気が付きませんでした。あとはIDの使い方と慣れだと思います、有難うございました。

関連するQ&A

  • DWの拡張で、CSSの空を作成するもの

    こんにちは。 私が、HTMLをある程度作ってからCSSを入力していくのですが。 いつもこんな感じになります。 <div id="wraper"> <div class="content"> <div class="content_detail"> </div> </div> </div> こんな感じで適当にHTMLを書いて、 「wraper」という文字をコピーして、CSSにペースト。閉じタグをつける。 ↓こんな感じです。 #wraper{ } ---------------------- いつもいつもコピして、cssでid名やclass名を設定するのが面倒です。 DWの「新規CSSルール」を押しても、何も入力していない場合は、cssに反映されません。 ボタン1つで、HTMLのID、class名がCSSで「作成される」方法はないでしょうか? alt+クリックしても CSS側に設定されないと、表示されませんでした。

  • cssについて

    html&css初心者です。 ある書籍の本で分からないことがあります。 htmlでclass属性を書きこみました。 < div class=″keyvisial″> <p class=″news_item″> <div class=″map″> それぞれをcssで書いた際には .keyvisial { .news_item { div.map { とありました。 .(classの名前) { div.(classの名前) { これらの違いは何なのでしょうか?

    • 締切済み
    • CSS
  • CSSのCLASSとIDについて教えてください

    CSSのCLASSとIDについて教えてください。IDはDIVと関係なければ別の上下関係ですか??

  • CSSの使い方の流儀?

    先日業者にホームページの作成を依頼したところ、 子孫セレクタを駆使したCSSを使ったページが できあがってきたのですが・・・ たとえばこんな感じ <div id="header">   <div class="block1">     <span>・・・・・・</span>     ・・・・・・・   </div>   <span>・・・・・・</span>   ・・・・・・・ </div> <div id="contents">   <div class="block2">     <span>・・・・・・</span>     ・・・・・・・   </div>   <span>・・・・・・</span>   ・・・・・・・ </div> これに対して CSSでこんなスタイルが設定されています(セレクタ部のみ抜粋) #header .block1 #header .block1 span #header span #contents .block2 #contents .block2 span #contents span 私だったらわざわざ複雑な子孫セレクタを使わずに、 個々にクラスかIDを設定すると思うのですが・・・ また、ただ画像が貼ってあるだけと思ったら、 CSSでspanの背景画像として貼ってあったり、 ただの仕切り線と思ったら、 やはりdivのボーダーラインを使っていたり・・・ こういう作りって一般的なのでしょうか? あるいは、何か利点があるのでしょうか? ブログのカスタマイズなどだと、元のHTMLを自分で直せない場合が多いので、 こういうコトをすることが良くある、というのはわかるのですが・・・ あまりにHTMLのタグの構造とCSSが密接に絡んでいて、 ほんの一文追加しようとしただけで苦労していまして・・・ なんでこういう書き方なのかな・・・と、 不思議に思っています。。

  • cssに関する質問です。

    cssに関する質問です。 フッターをbodyタグの直後に置きたいのです。 そうするとフッターはbodyタグの直後に表示されてしまいます。 cssでフッターだけをホームページの最後に表示する方法はありますか。 <body> <div id="footer">フッター ホームページの一番下に表示したい。</div> <div id="content>ホームページの内容 フッターよりも上に表示したい。</div> </body> CSSハックのような方法でも構いませんが、実現方法があれば教えてください。 よろしくお願いします。

  • CSSについて

    はじめまして、今日の質問内容は、サイト制作に使うCSSについてです。 あるサイトのコードを見ていてどうしてもわからない部分がありまして、ご質問させていただきました。 まずhtml部分で <html> (略) <body> <div id="itemCanvas"> <div class="item"> (略) </div> </div> という風にdiv itemCanvasブロックの中にdiv itemブロックを作ります。その後、CSS部分で CSS部分 #itemCanvas .item >*{ display:block; } という記述がでてきます。 この >* という意味がわかりません。 どなたか詳しい方で存知の方はいないでしょうか?よろしくお願いします。

    • ベストアンサー
    • CSS
  • css で背景のリピート設定についておしえてください。

    css で背景のリピート設定についておしえてください。 htmlもcssも初心者で初めてホームページの制作をしています。 タグをコピーします。 <body> <div id="header"> </div>    <div id="globalnavi">   <ul> <li id="menu"><a href="#">メニュー</a></li> <li id="menu"><a href="#">メニュー</a></li> <li id="menu"><a href="#">メニュー</a></li>    </ul>   </div>  </div> <div id="haikei_repeat"> <div id="content1"> <div class="inner_top"></div> <div class="inner_repeat"> ここにテキスト </div> <div class="inner_bottom"></div> </div> <div id="body_right"> <div class="inner_top2"></div> <div class="inner_repeat2">ここにもテキスト</div> <div class="inner_bottom2"></div> </div> </div> </body> bodyにも背景画像を使い、ヘッダ以下の コンテント部分の<div id=haikei_repeat> にy方向にリピート画像を指定しました。 <div id="haikei_repeat"> の中にある、 div classにもそれぞれ背景画像をしていし、topとbottomはリピートさせず、 真ん中のinner_repeatのみ背景画像をリピートしています。 このdivにテキストやimgを挿入し、後ろのhaikei_repeatもinnerrepeatの大きさに合わせて縦に リピートしてほしいのですが、うまくできません。 <div id="haikei_repeat">と <div id="inner_repeat">のボックスサイズは 横は指定し、縦のみauto にしています。 inner_repeatはきちんと内容の量にあわせてレピート表示できていますが、 背景リピートはできていません。 どのようにしたらいいでしょうか??? どなたかおねがいします。

    • ベストアンサー
    • HTML
  • CSSについて教えてください。

    携帯向けのサイトを作っています。 contentの文字列が画面からはみ出るので指でスワイプした分だけ スクロールしたいのですがCSSでできますでしょうか? スクロールバーは表示させたくないのでCSSで無効にしてあります。 どうかよろしくお願いいたします。 <div class="box"> <div class="content"> あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ あああああああああああああああああああ </div> </div>

    • ベストアンサー
    • CSS
  • CSS使用時のDIVにおける背景指定について

    現在ホームページの作成でCSSをメインに練習を行なっております。 テーブル配置を最小限にと思い、CSSにて制作を試みておりますが、 ヘッダー部分だけがどうしても上手くいかずつまずいてます。 色々なCSSに関するページも検索しましたが、いまいちピンと来るものもなく、もしかしたら出来ないのかな?とも考え始めております。 でも、大手のサイトなどを拝見する限り見栄え的にも出来ている様なので自分にCSSに対する理解が低いのかとも思いますが、どうかご教授 をお願いいたします。 先ず構想図から… ---------------------- |      DIV id="h-top"        | ---------------------- |      DIV id="h-cate"       | ---------------------- |     |               | |     |               | |DIV    |  DIV            | |id="index"|    id="main"       | |     |               | |     |               | |     |               | ---------------------- |      DIV id="footer"       | ---------------------- 上記のようなありがちなレイアウトのHPを考えています。 DIV id="h-top",id="H-cate"においては通常のヘッダーとしています。 質問は、上記のDIV内容の記述についてなのですが、 ●DIV id="h-top"は、 横100%に対し、横20PX、縦100PXの背景画像を並べ、中央に横740PX、 縦100PXのメイン画像画像を入れたいと思っております。 ●DIV id="h-cate"には、 横100%に同じく背景画像として横20PX、縦43PXの画像を並べ、中には 横740PXに合わせたナビボタン(w123*h40)を6つ配置したいと考えています。 共に画像とナビボタンは配置可能なのですが、背景画像が表示できなく 困っております。 現状でのHTML文では以下の通りとなっております。 <body> <DIV id="header"> <DIV id="h-top"> <img src="hoge" width"740" height"100" alt""> </DIV> <DIV id="h-cate"> <ul class="h-navi"> <li class="h-navi01"> <A href="index.html"> <span class="span1">トップページ </span></A> </li> <li class="h-navi02"> <A href="web/index.html"> <span class="span1">取扱商品一覧 </span></A> </li>      ・      ・      ・ </ul> </DIV> </DIV> </body> CSSも書こうと思いましたが、色々とやりくりして今では表示も 配置もおかしくなってしまいましたので、控えさせて頂きました。 また説明文が下手で分かりづらいかと思いますが、どうぞ宜しくお願いします。

    • ベストアンサー
    • CSS
  • 特に指定する値がない場合のcssについて

    現在作成しているホームページで、以下のようなソースを書きました <div id="wrapper">  <div class="box1 clearfix">   <div class="right1">floatで右寄せ</div>   <div class="left1">floatで左寄せ</div>  </div>  <div class="box2 clearfix">   <div class="right2">floatで右寄せ</div>   <div class="left2">floatで左寄せ</div>  </div> </div> 初めは特にdivを入れ子にする必要はないと思っていたのですが clearfixの指定をかけるには必要だったので、<div class="box">で囲むことにしました。 ですが、box1やbox2に、特に指定する値がなくて悩んでいます。 特に指定することがない場合にはcssには何も書かなくてよいものなのでしょうか? 今は取り敢えず何か指定してないと落ち着かない気がして width指定だけ書いているのですが、幅はwrapperで指定していますし特に必要ない気もします。 このような場合には何も指定をしないか、取り敢えずwidthだけでも指定しておくかどちらの方が良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう