左サイドバーのサイトを構築するのですが、
float を使うとmain とleft の間に隙間ができます。
margin=0にしても隙間ができます。この隙間を埋めるにはcontent
の幅をぴったり合わさったサイズにするしかないのでしょうか?
それともっと深刻なのは、グーグルクロムでみると
leftとmain の高さが揃わず、leftが下がって上部との間に
隙間ができます。margin=0 にしても、heightを指定しても
まったく隙間は消えません。
<div id="content">
<div id="main">
</div>
<div id="left">
</div>
良い改善方法を教えてください。
No.3ベストアンサー
- 回答日時:
私が不可解に思うのはなぜ情報を全て出さないのか、です。
htmlに<div id="header">が無いのに急にcssでは出てくるし…
さらに、下記のものをそのまんま組んでみましたか?
<div id="header">
</div>
<div id="content">
<div id="main">
</div>
<div id="left">
</div>
</div>
#header { position: relative; width: 100%; height: 160px; }
#content { width: 950px; height: auto; margin-right: auto; margin-left: auto;
padding-right: 6px; }
#main { width: 700px; height: 1020px; float: right; }
#left { text-align: center; width:230px; float: left; height: 1020px; margin-right: 0px; margin-bottom: 5px; margin-top: 0px; }
少ない情報で回答が必要なら、まず削った情報分だけでもご自身でブラウザで確認してください。
今回の件で言いますと、全く問題は起きていません。
全てのボックスにbackground-colorを指定して確認してみればどういう状態かわかるでしょう。
#headerと#left及び#mainは密着しています。
heightは隙間には関係ありません。
縦に意図しない隙間が空く、と言うのなら質問者様が情報を出していない部分に原因があります。
回答者もエスパーじゃないので、情報が無くては回答のしようがありません。
#mainと#leftの間に隙間が空く、という事については
950pxのボックスの中で230pxを左寄せ、700pxを右寄せにしているのですから、#leftと#mainの間に20pxの間隔が空くのは当然です。
#leftと#mainを密着させたいのなら、その20pxは一体どこへやりたいのでしょう?
本当に解決させたいのなら、情報を全て出した上で何が意図しない挙動なのか、意図しない隙間は何ピクセルなのか、目的としてはどうしたいのか、こういう事を全て書く事をお勧めします。
スクリーンショットを添付するとよりわかりやすくなります。
tkmojoさん 仰る通りです。
情報を隠していたわけでなく、
構文は実際はもっと複雑で、焦点を絞って書いたつもりが、
不足もあって、かえって伝わらないものになってしまいました。
仰る通り、構文自体は問題はありませんでした。
全角で空白ができてるという初歩的なミスでした。
お手数かけて申し訳ありません。
No.5
- 回答日時:
せっかくHTML5も書いたので追加して置きます。
質問タイトルは{floatを使うと・・・}になっていますが、このような段組に
はfloatを使わないほうが良いです。
・主要でない要素を先に書く必要がある。
・段内でfloatが使えない
・marginなどの指定が厄介
先のサンプルをHTML5にしてみました。
『DIV要素とSPAN要素は、id属性及び class属性と併用することで、文書に構造
を付加するため(
http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 …
)』に使用してありますから、そのままHTML5に直せたのです。leftのような文書
構造に関係ないclass名は使わない。左じゃなく右や下に配置しようとしたとき
混乱する。
★HTML5の新しい要素(
http://standards.mitsue.co.jp/resources/w3c/TR/h … )
★改善点
スマホ縦置きのような狭い画面460px以下では、デザインが変わります。ウィ
ンド幅を縮めてみてください。
★HTMLもスタイルシートも、とっても簡単で分かりやすいと思います。数年後に
手を入れたくなっても楽でしょう。
<!doctype html>
<html>
<head>
_<meta charset="utf-8">
_<title>サンプル</title>
_<meta name="description" content="">
_<meta name="author" content="ORUKA">
<!--[if IE]>
<script
src="http://html5shiv.googlecode.com/svn/trunk/html5. …
<script
src="http://css3-mediaqueries-js.googlecode.com/svn/t …
<![endif]-->
_<style type="text/css" media="screen">
<!--
html,body{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6,p{margin:0;line-height:1.6em;}
p{text-indent:1em;}
header,section,footer{width:90%;min-width:460px;max-width:880px;margin:0
auto;padding:0;}
section{position:relative;min-height:460px;}
section h2,section p{margin:0 150px 0 0;}
section section{width:auto;min-width:0;min-height:0;margin:5px 150px 0 0;}
section section p{margin:0;min-height:0;}
section nav{position:absolute;width:150px;top:0;height:100%;right:0;}
/* 色づけ */
body{background-color:gray;}
header{background-color:aqua;}
section{background-color:white;}
section section{background-color:silver;}
section nav{background-color:fuchsia;}
footer{background-color:orange;}
@media screen and (max-width:460px){
header,section,footer{min-width:200px;}
section{position:relative;min-height:0;}
section h2,section p{margin:0;}
section section{margin:0;}
section nav{position:static;width:100%;height:auto;right:auto;}
}
-->
_</style>
</head>
<body>
_<header>
__<h1>タイトル</h1>
__<p>このページでは・・・・</p>
_</header>
_<section>
__<h2>見出し</h2>
__<p>本文はsection</p>
__<section>
___<h3>項見出し</h3>
___<p>本文項記事</p>
___<p>sectionの階層でレベルが判断される</p>
___<p>HTML4.01でclass名が文書構造を示す物にしてあるため、HTML5にする
ときはそのまま<div class="header"></div>は<header><
/header>とすれば良いです。</p>
__</section>
__<nav id="contentTable">
___<h3>目次</h3>
__</nav>
__<section>
___<h3>チェックすべきこと</h3>
___<ol>
____<li>DTDはstrictであるか</li>
____<li>DOCTYPEは標準モードで動作するよう適切に書かれているか</li>
___</ol>
___<p>
____基本的にこれだけを守っておけば、現行のブラウザでの差は出ないはず
です。
___</p>
__</section>
__<nav id="contentTable">
___<h3>目次</h3>
__</nav>
_</section>
_<footer>
__<h2>文書情報</h2>
__<dl class="documentHistory">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2014-07-02</dd>
__</dl>
_</footer>
</body>
</html>
No.4
- 回答日時:
まず、
下記サンプルを確認してください。
★Ctrl++やCtrl+-で文字サイズを拡大しても縮小しても、ウィンドウ幅をスマホ程度から、超幅広ディスプレイにしても、IE7以降ならどのブラウザでもきちんと配置されるはずです。Ie6では、ナビが一杯にならない。IE5ではセンターに寄らないくらいで使用に問題はありませんね。
★印刷や携帯電話には素のブラウザのもつスタイルで印刷表示されます。
★leftをrightに、marginの値を変更すれば左だろうが右だろうが自在に。もちろん下にしてもよい。
★float使ってないので本文内でfloat,clearが使えます。
★HTMLもスタイルシートも簡単でメンテナンスも簡単なはず。
見よう見まねではなく、ちゃんと基礎から身につけたほうが早いですよ。
<!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" media="screen">
<!--
html,body{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6{margin:0;line-height:1.6em;}
p{text-indent:1em;}
div.header,div.section,div.footer{width:90%;min-width:400px;max-width:880px;margin:0 auto;padding:10px;}
div.section{position:relative;min-height:300px;}
div.section h2,div.section p{margin:0 0 0 160px;}
div.section div.section{width:auto;min-width:0;min-height:0;margin:5px 0 0 160px;}
div.section div.section p{margin:0;min-height:0;}
div.section div.nav{position:absolute;width:150px;top:0;height:100%;left:0;}
/* 色づけ */
body{background-color:gray;}
div.header{background-color:aqua;}
div.section{background-color:white;}
div.section div.section{background-color:silver;}
div.section div.nav{background-color:fuchsia;}
div.footer{background-color:orange;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
__<p>このページでは・・・・</p>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<p>本文はsection</p>
__<div class="section">
___<h3>項見出し</h3>
___<p>本文項記事</p>
___<p>sectionの階層でレベルが判断される</p>
__</div>
__<div class="nav" id="contentTable">
___<h3>目次</h3>
__</div>
__<div class="section">
___<h3>チェックすべきこと</h3>
___<ol>
____<li>DTDはstrictであるか</li>
____<li>DOCTYPEは標準モードで動作するよう適切に書かれているか</li>
___</ol>
___<p>
____基本的にこれだけを守っておけば、現行のブラウザでの差は出ないはずです。
___</p>
__</div>
__<div class="nav" id="contentTable">
___<h3>目次</h3>
__</div>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistory">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2014-07-02</dd>
__</dl>
_</div>
</body>
</html>
No.2
- 回答日時:
CSSをどのように書いているのかを表示しないと、回答ができないのでは?・・・
この回答への補足
nanden1548さん仰る通りです。
縦の隙間は解決しました。
#header { position: relative; width: 100%; height: 160px; }
#content { width: 950px; height: auto; margin-right: auto; margin-left: auto;
padding-right: 6px; }
#main { width: 700px; height: 1020px; float: right; }
#left { text-align: center; width:230px; float: left; height: 1020px; margin-right: 0px; margin-bottom: 5px; margin-top: 0px; }
contentを height: auto; からheight: 1020px;にして、main left 上部は揃ったのですが、
leftが下がっている位置に合わせて並んだので、header との間に意図しない隙間ができています。
こちらのほうが不可解です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
インラインフレーム内の表示位...
-
<li>の黒い点を消したい。
-
書籍を見つつサイト造りの練習...
-
CSS:animation開始位置の設定
-
<div>と<div>の間の10px程の...
-
footer を横幅いっぱいに広げる...
-
footerのmarginが適用されません
-
borderをページの下まで伸ばしたい
-
イメージマップのhoverについて
-
FireFoxでのレイアウト表示崩れ...
-
HTMLで一部だけスクロールする...
-
W3Cのソースコードの検証サービ...
-
h1のみが反映されない!?
-
css初心者 フレックスボックス...
-
floatを使わずに、cssレイアウ...
-
CSSでmargin-left: -20px;とい...
-
htmlのolやulなどlistにtitleや...
-
個別にリンクの色を変える方法
-
【ヒトの神秘】美男美女から何...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
form input テキストを上下中央...
-
W3Cのソースコードの検証サービ...
-
CSS、width100%でもできる余白
-
定義リストに下線をつけたいと...
-
余分な縦スクロールバーが出て...
-
CSSがなぜかfont-sizeだけ効か...
-
divで囲まれたpaddingの指定を...
-
<div>と<div>の間の10px程の...
-
【CSS】ヘッダーの高さが不明の...
-
CSSのposition値の上書き(打消...
-
CSSで背景画像を一番下にもって...
-
スクロールボックスを中央に配...
-
CSSでボックスのheightが0になる
-
背景が下まで表示されないんです。
-
HTMLのiframeの入れ子について
-
HTMLで文字が重なって表示されます
おすすめ情報