特に指定する値がない場合のCSSについて

このQ&Aのポイント
  • CSSで特に指定する値がない場合、何も指定しないか、一部のプロパティのみ指定するかを悩んでいます。
  • 現在作成しているホームページで、特に指定する値がない場合にはCSSには何も書かなくてもよいものなのか、取り敢えずwidthだけでも指定しておくべきなのかを検討しています。
  • wrapperで幅が指定されている場合や他の要素に指定がある場合には、特に指定する値がない場合でも何か指定しておくべきか迷っています。
回答を見る
  • ベストアンサー

特に指定する値がない場合の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
  • 回答数4
  • ありがとう数6

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

「タグにクラスを指定したら必ずそのクラスに対応するCSS定義が必要か?」という質問でしょうか? それなら、不要です。クラスは別にCSSのためだけの物ではありませんので。 そもそも、divタグにクラスを指定しないということでも良いです。

tenkororo
質問者

お礼

回答ありがとうございます。 質問の意図は書いてくださった通りです。 上手く言葉にできなかったのですが、汲みとってくださって助かりました。 divタグはクラスを指定する為に使うものだというイメージがあったのですが違うんですね。 参考になりました。ありがとうございます。

その他の回答 (3)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

class名のつけ方からしておかしいです。実際のつけ方と比較するとよくわかります。 <div id="bodyText"><!-- 本文 -->  <div class="section column2">   <div class="index">目次とか</div>   <div class="main">本文</div>  </div>  <div class="section 3column">   <div class="index">目次</div>   <div class="main">本文</div>   <div class="note">脚注とか</div>  </div> </div>  というように、HTMLの文書構造に従ってマークアップするべきです。  サイト全体で自分のルールに統一しておくと、将来デザインを変えるときにとても楽ですし、HTML5とかXMLに変更するときも楽です。 ・気が変わって目次を左に置きたくなった。 ・HTMLの文書構造を誰が見てもわかる。もちろん数年後の自分でも  ある章(section)については、本文(main)を狭くして脚注を入れたければ、 div.3column div.main{width:60%;}とか追記すればよい。  class名はスタイルシートのためにあるわけではなく、あくまでHTMLの文書解析のために使うものという基本を忘れなきゃ、CSSとは無関係に自分が先で困らないようにつければよい。  またright1,right2は無駄です。同じスタイルを書くのなら、index(right)ひとつでよい 。区別したけりゃ  div.index{ color:red;}  .3column div.index{color:blue;} とか  div.index{ color:red;}  div.section + div.section div.index{ color::blue;} とか  いずれにしてもwrapper,box1,clearfix,right1,left1,box2,right2,left2 なんてマークアップはしないほうが良いでしょう。

tenkororo
質問者

お礼

回答ありがとうございます。 クラス名はこちらに質問させていただく際に なんとなく単純な方が解りやすいかなと思ってbox1,right1~と書いたのですが かえって解りにくくしてしまったようで申し訳ありません。 でも丁寧な解説をつけて頂けてすごく勉強になりました。ありがとうございました。

回答No.3

1さんでしたね、すみませんでした。 訂正します。

回答No.2

2さんと同じく必要ないと思いますが、そもそもbox1とbox2にclearfixの記述を追加すれば良いのではないでしょうか? box1, box2 { /* clearfixの記述 */ } clearfixというクラス名をつけてclearfixを利用するのはあまり推奨されていません。 class名の指定方法などにもかかわってきますが、clearfixというのはテクニックであってグループでは無いので・・・

tenkororo
質問者

お礼

回答ありがとうございます。 clearfixを知ったのがclearfixというクラス名をつける方法でだったので てっきりそういう物だと思い込んでいました・・・。 書いていただいたことを参考に調べたら色々とすごく勉強になりました。 ありがとうございました。

関連するQ&A

  • CSSレイアウトの回り込みについて

    初めまして、よろしくお願いいたします。 見よう見まねでCSSレイアウトのweb制作に挑戦している者です。以下の現象についてご指南いただければ大変助かります。 ■CSS #wrapper { width : 620px; } #left { width : 300px; float : left; } #right { width : 300px; float : right; } ■ソース <div id="wrapper"> <div id="left"> (左寄せブロック) </div> <div id="right"> (右寄せブロック) </div> </div> 上記のCSSとソースで「620px幅の外枠」の中に「300px幅の左寄せブロック」「300px幅の右寄せブロック」が中央に20pxの隙間を空けて正常に表示されるのですが、右寄せブロックの中に長いテキストを改行せずに書いたら右寄せブロックが右寄せにならず、左寄せブロックの下に落ちて表示されてしまいます。 この現象は、長いテキストが300px幅に指定されている右寄せブロックの幅を押し広げている?から起こるのでしょうか。 右寄せブロックの中に長いテキストを書く場合、いちいち300px幅を意識して自分で改行を入れなくても、300pxの右寄せブロック幅を押し広げることなく自動折り返しされれば良いのですが。(右寄せブロックの高さは指定していないので) また、文字のサイズはpxで固定できない事情があるので、ブラウザで可変できるパーセント指定にしているのですが、ブラウザの文字サイズ中では正常に右寄せされている右寄せブロックが、文字サイズ大に変更したとたんに左寄せブロックの下に落ちてしまいます。 右寄せブロックの中に長いテキストを改行なしで書いても右寄せブロックが左寄せブロックの下に落ちて表示されない様、どなたかご指南いただければ誠に幸いです。

  • CSSについて教えてください

    CSSについて教えてください。二段組のボックスにおいて、左側が固定している場合、右側のボックスはfloat:right;にしてもfloat:left,にしてもどちらでも問題ないですか(左右の幅をきっちりとった場合)???ボックスを右寄せに指定しても、左寄せに指定しても・・・同じ幅であれば同じポジションになるはずですよね?

  • cssでフロートを使用した段組について。

    記述にドリームウィーバーMX2004を使用し、ブラウザーにIE6を使用しています。 例えば、幅800pxのメインボックスを作って、その中に、幅400px、高さ200pxのレフトボックス(float:leftで左寄せ)と 幅300px、高さ200px(float:rightで右寄せ)のライトボックスを作りたいとします。 (左右ボックスの間に100pxの隙間を開ける) まず、こんな感じでhtmlを記述したと仮定してください。 <div class="mainbox"> <div class="leftbox">左側</div> </div> (とりあえず、左側のボックスを作る) で、cssをとりあえずここまで記述します。 .mainbox { width: 800px; background-color: #666666; } (分りやすくする為に背景色を付けておきます) .leftbox { width: 400px; height:200px; background-color: #666666; } (こちらも別の背景色を付けておきます) この時点ではfloatを指定していません。 で、この時点ですと、レフトボックスの高さに合わせてメインボックスの高さも200pxになりますよね? ですが、leftboxにfloat:leftを指定すると、mainboxの高さがなくなってしまいます。 また、続けて予定通りにrightboxを右にフロートさせてもmainboxの高さは無視されてしまいます。 こういった場合はmainboxの高さを指定しないといけないのでしょうか? mainboxに高さ200pxを指定すれば意図したとおりに表示されるのですが、この場合に中のどちらか(仮にleftbox)の高さが200pxを超えると、ドリームウィーバーの編集画面上はmainboxの高さは200pxのままで、IE6上ではleftboxに合わせてmainboxの高さも伸びた状態で表示されます。 こういった状態がcssの仕様なのか、ブラウザによるものなのかを知りたいと思っています。 トンチンカンなことを書いてるのかもしれませんが、教えて頂けると幸いです。

    • ベストアンサー
    • HTML
  • フロートについて

    ブロック要素のフロートについて質問します。 .1{ float:right; } .a{ width:200px; } .b{ width:50px; float:left; } .c{ width:50px; float:left; } <div class="1"> <div class="a">A</div> <div class="b">B</div> <div class="c">C</div> </div> |              [      A     ] | |              [ B ][ C ]      | 上記を下記のようにしたいのですが、思うようにできません。 |              [      A     ] | |                   [ B ][ C ] | 全体を右寄せに、かつB,Cも右寄せです。 B,Cに float:right; を指定すると、[ C ][ B ] と、Cの右側にBが来てしまいました。 一応自分なりに試行錯誤して、 .1{ float:right; } .2{ clear:both; } .a{ width:200px; } .b{ width:50px; float:left; } .c{ width:50px; float:left; } <div class="1"> <div class="a">A</div> </div> <div class="2"> <div class="1"> <div class="b">B</div> <div class="c">C</div> </div> </div> 上記の書き方で希望の表示にはなりましたが、もっと簡単な方法があるのでは?と思って質問しました。 どうぞ宜しくお願いします。

    • ベストアンサー
    • CSS
  • 【css】floatを指定するとはみ出します

    ブロック要素をfioatで横並びにした際に、画像とテキストが全体を囲っている要素(親要素)からはみ出すことが多々あります。 その度に高さを指定して回避しているのですが、こちらはその他に回避の方法というのはあるのでしょうか? それとも、自分の記述がおかしいのでしょうか? 例えば下記の例です。 こちらは左に画像、右にタイトルとコメントが入ります。 <div class="aaa"> <div class="left"><img src="photo.jpg" width="180" height="120"></div> <div class="right"> <h3 class="title">タイトルです</h3> <div class="comment">コメントです</div> </div> </div> //////////////////////////////////// .aaa{ margin-bottom: 5px; padding-top: 7px; padding-right: 10px; padding-bottom: 7px; padding-left: 10px; clear: both; } .left{ float: left; height: 120px; width: 180px; } .right{ float: left; padding-left: 10px; width: 380px; } .title{ font-size: 90%; line-height: 120%; padding-right: 10px; padding-left: 10px; width: 360px; padding-top: 3px; padding-bottom: 1px; clear: both; } .comment{ font-size: 80%; line-height: 120%; padding: 5px; clear: both; }

  • cssでボックスを横並びにし、横幅指定してもくっついてしまう。

    こんにちわ! 只今CSS課題に取り組んでいるのですが、 フロートを使用し、写真(A)、テキスト(B)、写真(C)、テキスト(D)、と並べたいのですが、(B)に横幅指定しているにもかかわらず、(C)がIEではOKなのですが、FIREFOXではぴたっとくっついてしまいます。 【html】 <div class="box"> <div class="photo"><img src="img/photo_01.jpg" width="132" height="85"></div> <div class="txt">第23回こまったな<br>どうしたのかな賞<br>受賞</div></div> <div class="box"> <div class="photo"><img src="img/photo_02.jpg" width="132" height="85"></div> <div class="txt">第23回どなたかー<br>助けてください賞<br>受賞</div></div> </div> .box{ width : 258 px; margin: 0px; float:left; } .photo{ width : 132 px; margin: 0px; float:left; } .txt{ width : 123 px; color: #555555; font-size: 12px; text-align: left; margin: 0px 0px 0px 3px; padding: 0px ; line-height:18px; float:left; } となっております。 何故、IEでは大丈夫でFirefoxでは内容によって横幅が変わってしまうのでしょうか? ご教授願いませんでしょうか~? 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • HTML、CSS が、なかなかうまくいきません。

    お世話になります。 HTMLを始めたばかりですので、 ご教授いただけたら幸いです。 以下の図のような感じに並べたいのですが、 なかなかうまい具合にいきません。 黄色は、全てボタンになります。 赤は、ボタンについた吹き出し部分となります。 上段の2つのボタンは、やや大きい感じのボタン。 下段の3つのボタンは、上段に比べて、少し小さい感じのボタンになります。 ボタンは、上段(A)と下段(B)で、 HTML と CSS は、分けようかと考えています。 【HTML】 <div class="Button"> <div class="contents"> <div class="Button_boxA clearfix"> <div class="Yellow_Btn_01"><img src="img/Yellow_Btn_01.png" width="200" height="75" /> </div> <div class="Yellow_Btn_02"><img src="img/Yellow_Btn_02.png" width="200" height="80" /> </div> </div> <div class="btn_boxB clearfix"> <div class="Yellow_Btn_03"><img src="img/Yellow_Btn_03.png" width="100" height="60" /> </div> <div class="Yellow_Btn_04"><img src="img/Yellow_Btn_04.png" width="100" height="65" /> </div> <div class="Yellow_Btn_05"><img src="img/Yellow_Btn_05.png" width="100" height="60" /> </div> </div> </div> </div> 【 CSS 】 div.Button{ width:600px; margin-top:20px; margin-right:auto; margin-left:auto; padding-right:25px; } div.btn_boxA{ width::500px; margin-left:auto; margin-right:auto; margin-bottom:10px; } div.low_btn_01{ width:200px; height:75px; margin-left:auto; margin-right:auto; margin-bottom:10px; float:left; } div.low_btn_02{ width:200px; height:80px; margin-left:auto; margin-right:auto; padding-left:25px; margin-bottom:10px; float:left; } div.btn_boxB{ width::500px; margin-left:auto; margin-right:auto; margin-bottom:10px; } div.low_btn_03{ width:100px; height:60px; margin-left:auto; margin-right:auto; margin-bottom:10px; padding-left:25px; float:left; } div.low_btn_04{ width:100px; height:65px; margin-left:auto; margin-right:auto; margin-bottom:10px; padding-left:25px; float:left; ] div.low_btn_05{ width:100px; height:60px; margin-left:auto; margin-right:auto; margin-bottom:10px; padding-left:25px; float:left; } 長ったらしくなってしまいましたが、 ご教授いただけたら、幸いです。 宜しくお願いします。

    • 締切済み
    • CSS
  • CSSにてfloat:leftを使用して画像を3つ並べたのですが。。

    CSSにてfloat:leftを使用して画像を3つ並べたのですがこの3つの画像をセンターによせることができません。 なんでかまったくわかりません(ToT) 教えてくださいm(__)m 【HTML】 <div class="box2"><img src="images/sum2.gif"></div> <div class="box3"><img src="images/sum3.gif"></div> <div class="box4"><img src="images/sum4.gif"></div> 【CSS】 .box2{ float:left; width:219px; } .box3{ float:left ; width:156px;} .box4{ float:left ; width:195px; }

  • HTMLのCSS(float)の設定がよくわかりません

    HTMLのCSS(float)の設定がよくわかりません 画像のように各配置はうまく表示されているのですが footerのCSSを #footer { width: 100%; float: left; clear: both; } と表記するとwrapperのCSSで表記した外枠のボーダーが footerの前で切、footerの左横に1px~2pxの隙間が できてしまうのですが、その理由をわかる方いらっしゃいますか。 宜しくお願い致します。 footerの表記を #footer { width: 100%; clear: both; } とすると、ボーダーも1pxの隙間もなく正常に表示されます。 宜しくお願い致します。 ■HTML <html> <body> <div id="wrapper"> <div id="header"></div> <div id="container"> <div id="left"></div> <div id="right"></div> </div> <div id="footer"></div> </div> </body> </html> ■CSS #wrapper { width: 700px; border-right-width: 1px; border-left-width: 1px; border-right-style: solid; border-left-style: solid; border-right-color: #000; border-left-color: #000; } #container { overflow: hidden; } #left { float: left; } #right { float: left; } #footer { width: 100%; float: left; clear: both; } わかる方いらっしゃいましたら 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • 背景に影をつける方法(CSS)を教えてください。

    以前からやりたかったメインの背景の左右に影をつける方法にチャレンジしているのですが、IE6だけ少しうまくいきません・・・ やり方としてはメイン(wrapper)のボックスに+影の幅(左+右)のwidthを指定して、左右の影の幅分を左右それぞれにpaddingを指定しています。 その中をヘッダー+2カラムで構成しているのですが、IE6だけ右側部分のpaddingが2倍?になっているのか、おさまりきらず下に回り込んでしまいます。 その他のブラウザでは左右に2カラムが表示されています。 これはIE6のバグの一種でしょうか? これの解決方法を教えていただけないでしょうか? <div id="main" class="clearfix"> <div id="header"> </div> <div id="left"> いいいいいいいいいいいいいいいいいいいいいいい </div> <div id="right">aああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ</div> </div> body { font-size: 12px; margin: 0px; padding: 0px; height: auto; width: 100%; text-align: center; position: absolute; line-height: 150%; background-image: url(img/bg.gif); float: left; } #main { text-align: left; width: 910px; margin-top: 0px; margin: 0px auto; ; ; background-image: url(img/main-bg.gif); padding: 0 10px 0 10px; } #left { text-align: left; float: left; width: 210px; margin-left: 0px; padding: 10px 0 10px 0; } #right { width: 700px; float: right; }

    • ベストアンサー
    • HTML

専門家に質問してみよう