こんにちは。ホームページを製作しているものです。
私のサイトでは、まず『大きなコンテナ』を定義して、その中に3つ、カラムのコンテナを定義しています。
その様な状態で『大きなコンテナ』の周りに線を引きたくて、上下左右を囲うborderを定義致しました。
border-top:1px solid #BBB;
border-left:1px solid #BBB;
border-right:1px solid #BBB;
border-bottom:1px solid #BBB;
これでInternet Explorer9では、思った通りに『大きなコンテナ』の周りが線で囲まれました。しかし、Firefox、Safari、Chrome、Operaといったブラウザでは、『大きなコンテナ』の上側の部分だけしか線が書かれませんでした。
理由を探しにググったところ、
1: http://gyauza.egoism.jp/clip/archives/2007/05/07 …
2: http://hajimetedesign.blog77.fc2.com/blog-entry- …
上記2サイトに解決法があるのではと思いました。
それは、両サイトともに以下の様な記述があり思い通りに行きそうな気がしたのです。
html , body {height:100%;}
body > #container {height:auto;}
#container {
height:100%;/* for IE6 */
min-height:100%;
background-color:#fff;
border:solid #ccc;
border-width:0 1px;
}
しかし、自分のサイトに適用してみたら上側の線は無事引かれましたが、左右側がブラウザのheightの100%の高さまでしか線が引かれず、下側の線は引かれないままでした。つまりブラウザをスクロールさせるほど高さ的にコンテンツがある場合は、左右の線は途中までしか引かれなかったのです。
上記2サイトの記述はコンテナの中に普通にコンテンツがあり、私のサイトは『コンテナの入れ子』というのが問題だと思いました。
どなたか解決方法をご教示願えないでしょうか?
よろしくお願いいたします。
失礼致します。
No.2ベストアンサー
- 回答日時:
まず、HTMLが次のようにマークアップされていたとします。
<body>
<div class="header">
<h1>見出し</h1>
</div>
<div class="section">
<div class="section">
<h2>本文見出し</h2>
<p>記事</p>
</div>
<div class="tableContent">
<h3>目次</h3>
</div>
</div>
<div class="footer">
<h2>文書情報</h2>
</div>
</body>
CSSにて、
html,body{margin:0;padding:0;}/* おまじない */
body{background-color:gray;}/* わかりやすくするため */
div{border:solid 1px gray;margin:0;}/* わかりやすくするため */
div.header{background-color:aqua;}
div.section{background-color:silver;}
div.section div.section{background-color:white;}
div.section div.tableContent{background-color:green;}
div.footer{background-color:lime;}
/* ここまで、わかりやすくするため色・枠づけ */
body>div.section{position:relative;}/* 子孫要素の位置基準とするため */
div.section div.tableContent{position:absolute;top:0;left:0;width:20%;height:100%;}
div.section div.section{margin-left:21%;min-height:400px;}
【説明】詳しくはそれぞれのリンク先を読むこと。
floatされると、それは他の要素から独立してブロックを形成します。それに続く要素は回り込みます。
→9.5 浮動体(Floats) ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
文書の整形(コマ割)のために使うと文書構造を崩すため、使わないほうが良い。
→【引用】____________ここから
例えば絶対配置による方法では、HTMLを記述する上で内容の配置順序が自由になることが回り込ませるボックスを先に記述する必要がある回り込みによる方法よりも優れている
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[段組 - Wikipedia( http://ja.wikipedia.org/wiki/%E6%AE%B5%E7%B5%84# … )]より
【補足】
divは、idやclass名と併用して文書(の意味的な)構造を示すもので、その文書構造を利用してプレゼンテーションをスタイルシートで指定しますが、プレゼンテーションのためにclass名やidをつけるのは誤り。
『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造を付加するための一般機構を提供する。 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』
このHTML4.01の説明は理解し辛かったので、HTML5では要素として独立しました。HTML5の新しい要素とその意味は、HTML4.01で作成するときの良い参考になります。
→3.1. 新しい要素 ( http://standards.mitsue.co.jp/resources/w3c/TR/h … )
それぞれの意味もよく読む。
contenerではなく、articleが良いでしょう。将来のHTMLの予行もかねて・・
[HTML全体]
★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint. … )
★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_ … )
で検証済み
※タブは_に置換してあるので戻すこと
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
_<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
_<title>サンプル</title>
_<meta name="author" content="ORUKA1951">
_<meta http-equiv="Content-Style-Type" content="text/css">
_<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" >
_<link rel="START" href="../index.html">
_<style type="text/css">
<!--
html,body{margin:0;padding:0;}/* おまじない */
body{background-color:gray;}/* わかりやすくするため */
div{border:solid 1px gray;margin:0;}/* わかりやすくするため */
div.header{background-color:aqua;}
div.section{background-color:silver;}
div.section div.section{background-color:white;}
div.section div.tableContent{background-color:green;}
div.footer{background-color:lime;}
/* ここまで、わかりやすくするため色・枠づけ */
body>div.section{position:relative;}
div.section div.tableContent{position:absolute;top:0;left:0;width:20%;height:100%;}
div.section div.section{margin-left:21%;min-height:400px;}
/* 常にdiv.section div.sectionのほうが長いと想定しています。 */
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>見出し</h1>
_</div>
_<div class="section">
__<div class="section">
___<h2>本文見出し</h2>
___<p>記事</p>
__</div>
__<div class="tableContent">
___<h3>目次</h3>
__</div>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
_</div>
</body>
</html>
ORUKA1951さん、
ご回答ありがとうございます。ちょっと難しいですね。。。質問している私が恥ずかしくなってきます。申し訳ございません。
サンプルを元にやってみたいと思います。
ご回答ありがとうございました。
No.1
- 回答日時:
htmlが書いていないので、想像でしかないが、コンテナの中身をfloatしていませんか?
floatとは浮かせて右や左に寄せるので高さが持てません。背景もつきませんし、罫線も浮いているので上にしか引けません。nickname_1973 さんの状況にぴったりだと思います。なので、コンテナ内の一番高さのあるをfloatしないとか、overflow : hidden; するとか、#container 内の最後の要素や#container が終わる時にclear:both(場合によってはleftやright)するなどですね。
Firefox、Safari、Chrome、Operaの表示が仕様書てきには正しくIEは間違いです。
この問題は図がいくつもないとわかりにくいと思うので、検索して見ました。
初心者がよくハマる、CSSのfloatプロパティ徹底攻略
http://weeeeb.shiroqlo.com/technique/css_float_k …
「CSSでレイアウトするなら絶対覚えておきたい配置のルール:フロートや絶対配置、z-index とかいろいろの」一部
http://webdesignrecipes.com/css-visual-formating …
上記のページでわかりにくければ「css float 背景」をキーワードに画像検索してみてください。nickname_1973 さんがお困りなのは罫ですが、問題は背景と同じで、背景の方が解説が捜しやすいのです。
DrFellさん、
ご回答ありがとうございます。確かにfloatで浮かせております。ご指摘ありがとうございます。
ご提示のサイト、とても役に立ちそうですね、ありがとうございます。
早く初心者から脱出して、自分も教える立場になりたいと思います。
本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- HTML・CSS HTML、cssのatomつぅーやつで 課題Ex1ってやつを表示させたいのですが、 私は課題Ex1が 2 2022/12/15 16:56
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
複数のボタンを等間隔に、かつ...
-
<div id="container">の使いか...
-
html の divとtable の役割
-
HTML属性での「""」 「''」違い
-
オシャレな区切り線はありませ...
-
DD,DT,DDを横並び。paddingとma...
-
footerのclear:bothが効きません
-
div要素が重なってします
-
背景画像に全体または部分的に...
-
h1を親要素の縦中央、画像の横...
-
HTMLのJIS規格について
-
divとpの使いわけ
-
インラインフレームのページ内...
-
HTML5の終端タグ「 />」について
-
可変長要素を中は左寄せのまま...
-
h1に自分自身へのリンクを張...
-
[CSS]リキッドレイアウト上で、...
-
ローカルとWeb上で見え方が違う...
-
min-heightとheightの違いについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのolやulなどlistにtitleや...
-
div要素が重なってします
-
HTML属性での「""」 「''」違い
-
複数のボタンを等間隔に、かつ...
-
ヘッダーとフッターだけ背景を...
-
html の divとtable の役割
-
<div id="container">の使いか...
-
divとpの使いわけ
-
min-heightとheightの違いについて
-
HTML5 iframe の代わり
-
divの中に外部のHTMLを埋め込む
-
3カラムレイアウトで「常に残り...
-
ヘッダーを左右に二分割する方...
-
画面を縮小するとカラムが落ち...
-
reuterのScraypingで不思議な現...
-
htmlの見出しタグ(<h1>)の次...
-
1サイト内にHTML5とXHTMLが混在...
-
inline-blockをネストすると表...
-
html5でheaderの中にnav
-
<!-- #BeginLibraryItemとは
おすすめ情報