

<div id="container">の使い方についてお尋ねします。
ページの上から下まで帯のようにしたいのですが、例えば以下のように書くとヘッダーのところまでしかcontainerが効いていません。
HTML
<body>
<div id="container">
<div id="header">ヘッダー</div>
<div id="navi">ナビゲーション</div>
<div id="contents">ページの内容</div>
<div id="footer">フッター</div>
</div>
</body>
CSS
#container {
font-size: 21px;
line-height: 28px;
color: #353535;
width: 1050px;
margin: 0 auto;
}
ランディングページのようなものを作りたく、
ページの上からフッターの手前くらいまで<div id="container">を効かせるにはどのように記述すればよいでしょうか?

No.3ベストアンサー
- 回答日時:
>HTML5とCSS3に関するおすすめの本があったら教えていただけないでしょうか?
これがとても難しい。理由は
・進歩の激しいこの世界、出版時には古くなっている
・すべて仕様書に書かれている。それで事足りる物を書き下す意味がない。
仕様書には、「なぜそうするのか」の理由も含めて完璧に書かれている。
それを読めば解決する物を、著者の色眼鏡を通して記述しても正確ではない
しばしば、仕様書を読んだことがあるのか疑問のものがある。
これについては、No.1でいくつか説明しました。
よって、一番早くて、しかも正確な参考書は仕様書ということになります。私もHTMLやCSSは仕様書で学びました。
最初は冗長に感じますが、それは正確性を追求するために致し方ないでしょう。
まずはHTMLをしっかり学ばれることをお勧めします。いきなり膨大なHTML5ではなく、HTML4.01strict【strictですよ。】を身につけてから、HTML5に進まれるほうが楽でしょう。
1.2 仕様の記述法( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )より
本仕様書は、著者及び実装者という2種類の読者を想定している。著者である読者に対しては、本仕様書が、HTMLの実装詳細に必要以上に触れずに使える、効率的・魅力的でアクセス性のよい文書を著述する際に必要な道具となることを望む。けれども実装者である読者は、仕様に適合するユーザエージェントを作成する上で必要となるすべての情報を見つけることができるだろう。
本仕様書は様々な方法で利用できるだろう。
・ 最初から最後まで通読する。
・ 必要な情報に直接アクセスする。
最初は、全体を通して読んで全体像を把握して、いつでも必要な情報にたどり着けるようになること。
私のブックマークでは
HTML4.01詳細目次( http://www.asahi-net.or.jp/~sd5a-ucd/rec-html401 … )
ついで、スタイルシートはやはりCSS2.1あたりがベストです。
CSS 2.1目次( http://momdo.s35.xrea.com/web-html-test/spec/CSS … )
特に
4 構文と基本データ型
5 セレクタ
6 プロパティ値とカスケーディング、継承の割り当て
ここを読まれるだけで、あなたが理解しているCSSが如何に不完全か理解できると思います。
そのうえで、
HTML4からの変更点( http://www.html5.jp/trans/w3c_differences.html )
で、変更部分を身につけるのが最も最短で効率的でしょう。
★HTMLやCSSの学習は、数学や理科の勉強方法ととても良く似ています。基礎から順を追ってなぜなのかを理解しながら学ぶと、小学生でも数検2級とかが取れるように、簡単なものなのです。結果を急いでうわべだけ学ぼうとしても反って時間と労力を無駄にして、しかもきちんと身についていないから応用問題に果ても足も出ない・・・ということになる。
本質的なことを教えていただきありがとうございました。色々なところから情報をひっぱってきて自分でも混乱状態でしたが、教えていただいた方法で学んでみようと思います。本当にありがとうございました。
No.2
- 回答日時:
そんなHTMLは書きません。
--残念ながらネット上にはたくさんのそんな誤まった情報が満ち溢れています。原因はさるオーサリングツールだと思いますが・・
div要素は『id属性及び class属性と併用することで、文書に構造を付加するため( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』です。実際にはこれが守られなくて、HTML5では「文書構造を示す新しい要素が追加されました( http://standards.mitsue.co.jp/resources/w3c/TR/h … )」
すなわち
HTML5だと
<body>
<header>この文書のヘッダー
<nav>ナビゲーション(グローバルナビなど本文ではない場合</nav>
</header>
<section>
本文、HTML5ではdivは原則として使わない。
<section>文書の階層はsectionの入れ子で示す</section>
<nav>このセクションの目次の場合</nav>
</section>
<footer>この文書のフッター
ここにある簡単なナビゲーションはnavにはしない。
</footer>
</body>
HTML4.01でしたら
<body>
<div class="header">この文書のヘッダー
<div class="nav">ナビゲーション(グローバルナビなど本文ではない場合</div>
</div>
<div class="section">
本文
<div class="section">文書の階層はsectionの入れ子で示す</div>
<div class="nav">このセクションの目次の場合</div>
</div>
<div class="footer">この文書のフッター
ここにある簡単なナビゲーションはnavにはしない。
</div>
</body>
>ページの上からフッターの手前くらいまで<div id="container">を効かせるにはどのように記述すればよいでしょうか?
こんな発想--重要な『構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』を理解していないから、そんな質問になる。
★文書とプレゼンテーションの分離と言う事は
footer以外は
CSS
#container {
font-size: 21px;
line-height: 28px;
color: #353535;
width: 1050px;
margin: 0 auto;
}
の指定でプレゼンテーションしたいと言う事ですから、
body>div.header,body>div.section{
font-size: 21px;
line-height: 28px;
color: #353535;
width: 1050px;
margin: 0 auto;
}
だけで良いのです。
実際には
body>div.header,body>div.section{
font-size: large;
line-height: 1.3em;
color: rgb(60,60,60);
width: 100%;
min-width:640px;
max-width:1050px;
margin: 0 auto;
}
とかユーザーのディスプレイの幅に合わせることが多いです。スマホやタブレットもありますので・・
※containerはさすがに使いませんが、bodyと言う要素があるのでそれを使いましょう。
※body直下でない、例えば本文内で転載記事などではarticleを使います。
※li(リストメニュー)をmedia queryでスマホ表示用CSSを書くが画面幅いっぱいに出来ない( https://oshiete.goo.ne.jp/qa/9040402.html )
も参考に
ご丁寧に教えてくださりありがとうございました。独学で勉強しているのですが、HTML5とCSS3に関するおすすめの本があったら教えていただけないでしょうか?
No.1
- 回答日時:
上記のコードのみだと添付された画像のようにならないのでなんとも言えないのですが、
まず
>ページの上から
はページの上部の隙間ということでしょうか?
その場合はcssのはじめに
*{
margin:0px;
}
と記述すると隙間がなくなると思います。(*は全ての要素)
body{
margin:0px;
}
でも大丈夫です。
>フッターの手前くらいまで(フッターの手前?)
に関してですが、この場合は下記のように
sample要素を付け足すような形で分けるといいです。
<body>
<div id="container">
<div id="sample">
<div id="header">ヘッダー</div>
<div id="navi">ナビゲーション</div>
<div id="contents">ページの内容</div>
</div><!--sample-->
<div id="footer">フッター</div>
</div><!--container-->
</body>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- Ruby No route matches [GET] "/posts/5/destroy" 1 2022/03/24 13:00
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTML属性での「""」 「''」違い
-
htmlのolやulなどlistにtitleや...
-
複数のボタンを等間隔に、かつ...
-
divとpの使いわけ
-
<div id="container">の使いか...
-
hタグを使わずに小見出し
-
要素間、要素内に隙間が空く
-
html の divとtable の役割
-
div要素が重なってします
-
IE・NNの独自タグについて
-
htmlでdivをなるべく使わないで
-
align="middle"が無視される T...
-
レイアウトが崩れる・・・
-
htmlとcssの文章構造、これは正...
-
divの中に外部のHTMLを埋め込む
-
セクションをdivで囲むと見出し...
-
ヘッダーとフッターだけ背景を...
-
開始タグと終了タグについて
-
iframeを使わずに上下50%ずつに...
-
CSSを使って定型文を挿入できま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
HTML属性での「""」 「''」違い
-
html の divとtable の役割
-
<div id="container">の使いか...
-
ヘッダーとフッターだけ背景を...
-
1時間30分を簡単に表したいで...
-
スペースを使わず文字位置を揃...
-
div要素が重なってします
-
divの中に外部のHTMLを埋め込む
-
複数のボタンを等間隔に、かつ...
-
min-heightとheightの違いについて
-
セクションをdivで囲むと見出し...
-
htmlでdivをなるべく使わないで
-
要素間、要素内に隙間が空く
-
ブログのサイドバーが下にくる
-
body>div{}の意味を知りたい
-
スライド部分のリンクが貼れな...
-
画面を縮小するとカラムが落ち...
-
htmlの見出しタグ(<h1>)の次...
-
インラインフレームのページ内...
おすすめ情報