CSSでヘッダーとフッター付きの2カラムレイアウトを書籍のサンプルを見て行ないました。
表示は何も問題ないのですが、色々とサンプルレイアウトのサイトを見ていると「main」でleft-marginfを指定しているのはなく、floatを指定しているのが多いのですが、下記でも合っているのでしょうか。
#wrap {
width: 700px;
margin: 0 auto;
text-align: left;
}
#header {
color: #fff;
}
#menu {
width: 160px;
float: left;
}
#main {
margin-left: 160px;
padding: 10px;
}
#footer {
clear: both;
padding: 10px;
}
No.2ベストアンサー
- 回答日時:
>下記でも合っているのでしょうか。
文法の問題もありますが、なにより作成側の設計の問題があります。
どの様な意図で書かれているかによっては、文法で正しくブラウザで適切に表示されても不適切なCSSと言えます。
また、1つの目的に対して手段は複数あります。
よって、どの様な設計(意図)でどの点について合っているか考えるのか明示されていない限り、回答は困難です・・・。
とりあえず margin-left と float ですが、前者は余白であり後者は配置に関わる指定であります。
また想定している事で、内部に記述される物はどの様な物を考えているのか。文字か画像か。内容のサイズは可変か。 改行などの制御はどの様に意識しているか・・・。
それらにより、余白を用いる方法を選ぶべきか配置を用いた考え方を選ぶべきかなってきて・・・。
結局、まずは設計。どの様な考え方によって行っているかがポイント・・・。
正直、何も考えずにただこう見えると作るのは、それ時点で誤りかと思います。
最後に margin-left は単に左余白の指定です。その部分もその要素の一部です。今回の例だとmenuの塊が短い場合の見え方に主に影響があるのではないかと。
float は配置の指定です。float:left; の場合、相対的な位置決めで左寄せで既にある左側の要素の次に位置するという事で、決して余白があるとかいう事ではありません。それぞれ別の要素が並ぶという事で、場合によっては改行されます・・・。
menuとmainでfloatにするということ→witdh指定を両方にしなくちゃいけない→IEとMozillaでmainのpadding10px分、幅のズレが出てしまう。
それでこのようにしていましたが、色々と教えていただいた参考サイトなどを見て周り、結局mainブロックを包括するブロックをもう1つ中にいれてpaddingはそちらで指定することにしようと思います。
koutarou504さんのおっしゃる通り、「設計」を最初にすることが大切だと思いました。
seawさん、質問の仕方が言葉足らずですみません。
大変参考になりました。
ありがとうございました。
No.1
- 回答日時:
HTMLが無いので、以下のように勝手に解釈しましたが、違っていたら言ってください。
>下記でも合っているのでしょうか。
CSSの指定に、正解も不正解もありません。(文法違反は存在しますが…。)
スタールシートは勉強していくうちに、理解できます。
CSSの勉強には、
CSS Dencitieというサイトを強くおすすめします。
http://www6.plala.or.jp/go_west/nextcss/
しかし、スタイルシートでのレイアウトでは、ブラウザごとに対応状況がまちまちなので、注意が必要です。
※参考
http://www6.plala.or.jp/go_west/nextcss/tip/ua_b …
http://cssbug.at.infoseek.co.jp/
http://level.s69.xrea.com/mozilla/index.cgi?id=2 …
http://internet.watch.impress.co.jp/cda/news/200 …
------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css">
body
{
background-color: #ffffff;
color: #000000;
}
#wrap {
width: 700px;
margin: 0 auto;
text-align: left;
background-color: #0000ff;
}
#header {
color: #fff;
background-color: #9900ff;
}
#menu {
width: 160px;
float: left;
background-color: #3366cc;
}
#main {
margin-left: 160px;
padding: 10px;
background-color: #66cc33;
}
#footer {
clear: both;
padding: 10px;
background-color: #37475b;
}
</style>
<title>サンプル</title>
</head>
<body>
<div id="wrap">
wrap
<div id="header">
header
</div>
<div id="menu">
menu
</div>
<div id="main">
main
</div>
<div id="footer">
footer
</div>
</div>
</body>
</html>
menuとmainでfloatにするということ→witdh指定を両方にしなくちゃいけない→IEとMozillaでmainのpadding10px分、幅のズレが出てしまう。
それでこのようにしていましたが、色々と教えていただいた参考サイトなどを見て周り、結局mainブロックを包括するブロックをもう1つ中にいれてpaddingはそちらで指定することにしようと思います。
koutarou504さんのおっしゃる通り、「設計」を最初にすることが大切だと思いました。
seawさん、質問の仕方が言葉足らずですみません。
大変参考になりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- オープンソース cssで中央寄せ 1 2023/05/19 06:25
- HTML・CSS テキストを画面の真ん中に配置したいです。 2 2022/11/25 16:11
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS htmltとcssのコードで 1 2022/11/26 13:37
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS cssの display: flex;で横並びにならずに困ってます 1 2022/12/04 13:18
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<h1>タグの後の行間を詰めたい。
-
FireFoxで見るとブラウザの幅に...
-
aタグに直接style=""で:hoverを...
-
CSSのtransform: translate(-50...
-
INPUT TEXT内の文字位置を指定...
-
インラインフレームの表示位置...
-
テキストボックスの文字を右揃...
-
macとwindowsのレイアウト崩れ...
-
paddingを指定するとwidthやhei...
-
コードを書いて下さい( ; ; )...
-
CSS セルごとリンクにする際、...
-
中央揃えで真ん中にきた文字列...
-
可変でサイト全体を中央に配置...
-
なぜ左に寄っているの?
-
ページ左右上下の余白。
-
htmlのタグ間の謎の空白
-
css。横並びBOXに長文textを流...
-
CSS(スタイルシート)で画像の縦...
-
IBMのホームページビルダー10で
-
HTMLフォームのSELECTの幅を一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSSのtransform: translate(-50...
-
aタグに直接style=""で:hoverを...
-
<h1>タグの後の行間を詰めたい。
-
HTMLフォームのSELECTの幅を一...
-
インラインフレームの表示位置...
-
コードを書いて下さい( ; ; )...
-
端から端まで横線を引きたい
-
INPUT TEXT内の文字位置を指定...
-
なぜ左に寄っているの?
-
FireFoxで見るとブラウザの幅に...
-
iPhone用のサイトの文字がずれ...
-
<legend>で表示されるタイトル...
-
Formタグのブロックの高さについて
-
CSSでh1とその下の文字との行間...
-
Dreamweaverで画面サイズを一定...
-
macとwindowsのレイアウト崩れ...
-
ホームページビルダー 空白の...
-
text-alignの解除の方法
-
パソコンのみで反映される余白...
-
Firefox 横スクロールバーを表...
おすすめ情報