お世話になります。
スタイルシートの勉強中ですが、以下のようなソースを書くものの、左右のサイドメニュー部、メイン部にズレが生じてしまいます。
(XPでIE8を利用していますが、互換表示でもレイアウトが異なる)
何故こうなるのか、アドバイスのほど頂戴出来れば幸いです。
宜しくお願い致します。
#outline{
border: 1px solid #C0C0C0;
width: 804px;
margin: 13px auto 10px auto;
padding: 2px;
}
#main{
margin-top: 0px;
margin-right: 0px;
width:631px;
border: 1px solid #C0C0C0;
padding: 2px;
text-align:left;
float: right;
}
#menu{
margin-left: 0px;
margin-top: 0px;
width:159px;
background: #FFFFFF;
border: 1px solid #C0C0C0;
padding: 2px;
}
<div id="outline">
<div id="main">
メインメインメイン<br>メインメインメイン<br>メインメインメインメインメイン<br>メインメインメインメインメイン<br>
メインメインメイン<br>メインメインメイン<br>メインメインメインメインメイン<br>メインメインメインメインメイン<br>
</div>
<div id="menu">
サイドメニューサイドメニュー
</div>
</div>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
互換表示にしないこと!!鉄則です。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
互換表示は、ブラウザごとに異なる仕様であった(特に古いIE)用に作られたページを見る目的、および古いブラウザ用の指定です。
・DOCTYPEを、どのブラウザでもウェブ標準/標準モードで起動するように書いておけば、ブラウザの差はほとんどなくなります。
・作成されているHTMLの書式が分かりませんが、HTML4.01strictでしたら、すべてのブラウザが標準モードで動作するには
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
になります。Another HTML-lint 5( http://www.htmllint.net/html-lint/htmllint.html )のDATA入力(右上)を使ってチェック。
他の仕様もありますが、HTML4.01strictで学ばれたほうが良いでしょう。
・次期HTML5はHTML4.0strictの改訂版であること
・「HTML文書を作る場合には、・【中略】・strict DTD に適合する文書を作るよう推奨する。( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )」
さて、本題ですが、下記のように記述すると良いはずです。説明はスペースが無駄なので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 rel="START" href="../index.html">
_<style type="text/css">
<!--
div.header,div.section,div.footer{
width:80%;min-width:480px;max-width:900px;
margin:0 auto;
}
h1,h2,h3,p{margin:0 10px;line-height:1.6em;}
p{text-indent:1em;}
div.section{position:relative;min-height:400px;}
div.section h2{display:none;}
div.section div.section{
min-height:0;
min-width:0;
margin-left:162px;width:auto;
border: 1px solid #C0C0C0;
}
div.section div.nav{
font-size:0.9em;
position:absolute;
top:0;left:0;
width:160px;height:100%;
border: 1px solid #C0C0C0;
}
div.nav ul{margin:0 2px;}
-->
_</style>
</head>
<body>
_<div class="header">
__<h1>タイトル</h1>
_</div>
_<div class="section">
__<h2>見出し</h2>
__<div class="section">
___<h3>説明</h3>
___<p>
____IE7以上、他のモダンブラウザで同じように表示されるはず(IE7はheight:100%が利かない)。またリキッドデザインですのでスマホでも幅広ディスプレイでも利用に制約はないでしょう。
___</p>
___<p>
____HTML4.01では、<q><a href="http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 …構造とプレゼンテーションの分離</a></q>が叫ばれながら文書構造を示す要素が不足していたために、<q><a href="http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 …属性及び class属性と併用することで、文書に構造を付加する</a></q>とされていましたが、これは理解されたとは言いがたく、<div id="outline">、<div id="main">のように、idやclass名が文書構造ではなく、プレゼンテーションのために使われていました。
___</p>
___<p>
____HTML5では、この反省から、文書構造を明確にするために、文書構造を示す要素が追加されました。⇒<a href="http://standards.mitsue.co.jp/resources/w3c/TR/h … 新しい要素</a>
___</p>
___<p>
____このサンプルでは、文書構造を示すためにclass名にHTML5の新しい要素名を指定し、<em>その使い道もHTML5のそれに合わせてあります</em>から、<div class="header">は<header>に、<div class="section">は<section>に<div class="nav">は<nav>、<div class="footer">は<footer>に、それぞれ書き換えるとHTML5になります。
___</p>
___<p>
____なお、段落は、<br>必ず<p>段落</p>(pはparagraph(段落)を示す要素)でマークアップするようにしましょう。日本語のように文字の大きいフォントで段落を字下げで示す場合は、スタイルシートで行の高さやtext-indentを指定します。
___</p>
___<p>
____folatは、本来画像の周囲にテキストを回りこませる目的のプロパティで、この様な段組には適していません。⇒9.5 浮動体(Floats)( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … )
___</p>
___<p>
____例えば左右を変更したり、3つ以上の段を並べ変えたり、本文中にfloatさせたい画像が現れたりすると厄介なことになります。絶対配置のほうがデザインの自由度は増しますし、文書構造がデザインに引きずられることもありません。
___</p>
__</div>
__<div class="nav" id="contentTable">
___<h3>目次</h3>
___<ul>
____<li><a href="http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … 4.01仕様書[邦訳]</a></li>
____<li><a href="http://standards.mitsue.co.jp/resources/w3c/TR/h … における HTML4 からの変更点</a></li>
____<li><a href="http://www.swlab.it.okayama-u.ac.jp/man/rec-css2 … 邦訳</a></li>
___</ul>
__</div>
_</div>
_<div class="footer">
__<h2>文書情報</h2>
__<dl class="documentHistry">
___<dt id="FIRST-PUBLISHED">First Published</dt>
___<dd>2013-08-10</dd>
___<dt id="LAST-MODIFIED">Last Modified</dt>
___<dd>2013-07-18 18:00:00 (JST)</dd>
__</dl>
__<address>© ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>
ORUKA1951様
こんにちは。ご親切なのアドバイスをありがとうございます。
また、こちらからのご挨拶が遅れましたことをお詫び申し上げます。
DOCTYPEの指定など、これまでまったく気にしていなかった事でしたが、とても意味あることなのですね。
長文でのアドバイスに感謝いたします。ありがとうございました!
No.1
- 回答日時:
#main に指定している float:right; の回り込みの解除が無いからかと思われます。
<div id="outline">
<div id="main">
メインメインメイン<br>メインメインメイン<br>メインメインメインメインメイン<br>メインメインメインメインメイン<br>
メインメインメイン<br>メインメインメイン<br>メインメインメインメインメイン<br>メインメインメインメインメイン<br>
</div>
<div id="menu">
サイドメニューサイドメニュー
</div>
<div style="clear: both; visibility: hidden; height: 0;"></div>
</div>
上のように、<div id="menu"> のdivタグの後ろに、
回り込みを解除するdivタグを追加してみてください。
blue-goheimochi様
こんにちは。質問投稿後、早速のアドバイスをあろがとうございます。
また、こちらからのご挨拶が遅れましたことをお詫び申し上げます。
的確なアドバイスの感謝いたします。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- HTML・CSS 吹き出し 下記の吹き出しのスタイルシートについて 下記のスタイルシートは左側にアイコンがでる使用にな 1 2022/11/12 17:55
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS CSS のみのタブ切り替えについて 1 2023/01/11 16:47
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS CSSがなぜかfont-sizeだけ効かない...記述がまちがっているんでしょうか 5 2022/04/09 17:52
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
関連するカテゴリから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とは
おすすめ情報