divボックスを作るのは簡単でした。
縦に、ボックスを積み上げていくのも簡単です。ただ順番に前回のボックスを書き加えて行けばいいだけです。
では、サイドバーと本文のブロックのように横に並べるには?
箱を横に並べるために必要なのが「float」という命令文(プロパティ)です。
「float : left ;」で、左詰めの箱、
「float : right ;」で、右詰めの箱ができます。
「詰め」というのは、左の場合は左から順番に、右も同様に並んでいくということ。
例えば、以下のようなHTMLを組み上げた場合…
こんな感じでボックスが並んでいきます。
右だと、こんな風に…
横積みモードを解除する
結構簡単に横並びの箱も実現できました。ですが、これ、いちいち解除する命令を送ってやらないと、「float」を指定していないそれ以下の「HTML」もどんどん勝手に隙間に入っていってしまいます。
こんな感じで表示がおかしくなる。(注1*IE以外のブラウザ)↓
これは、「clear : both ;」という命令文で解除することができます。
以下のようにタグを作ります。
☆実際にDIVボックスを、リアルタイムにフロートさせてみよう。
divフロートチェックツール(リアルタイム)
ファイアフォックス系ブラウザのバグ
この「float」を使うと、ファイアフォックス系のブラウザでバグが出ます。フロートさせたボックスが入った親ボックスの背景が無くなる(親ボックスの高さ height が無くなる)というもの。
このバグを回避するには「<br clear="all">」と言うタグを、以下の場所に挿入します。
あまり深く考えず、そこに入れておけば多分大丈夫だと思います。
「<br clear="all">」でなく、「<div style="clear:both"> </div>」でも大丈夫だと思います。(未確認)
そして、必ずフロートを解除する最初のボックスで、基本の「clear : both ;」は、忘れないように入れておいてください。
なんかが変だと思ったら
これが、よくやらかすミスです。よくやるのが「</div>」の閉じタグがどこで抜けているのか訳がわからなくなる場合です。
技としては、「<div style="clear:both;"></div>」という、空のボックスを、フロートの後に置いてみて、プレビュー。
もしもそれで、ブログ本体は正常に表示されれば、clear:both;が上手く働いていないと言えます。
綴りミスや、全角文字、" "忘れを疑ってみます。
空ボックスを入れても正常にならない場合は、大体</div>が上手く働いていない場合。
綴りミスや、全角文字、「<>」忘れを疑ってみます。
正常であれば、</div>を、書き忘れているか、余計に書いているかです。
これが探すのが一苦労なんです…
IE系のデバッグなら
の「Hawkeye」、FX系のデバッグなら、
の「Firebug」をダウンロードして使うのが、オススメかも。
■次のページはコチラです。
ブログの中にブログ?・ブロックでミニブログ(骨格編)
■divボックスフロート徹底講座。
実際にdivブロックを記事で利用する
■CSSメインメニュー
実用的スタイルシート入門
縦に、ボックスを積み上げていくのも簡単です。ただ順番に前回のボックスを書き加えて行けばいいだけです。
では、サイドバーと本文のブロックのように横に並べるには?
フロート
箱を横に並べるために必要なのが「float」という命令文(プロパティ)です。
「float : left ;」で、左詰めの箱、
「float : right ;」で、右詰めの箱ができます。
左
右
「詰め」というのは、左の場合は左から順番に、右も同様に並んでいくということ。
例えば、以下のようなHTMLを組み上げた場合…
<div style="float:left;">
左1ブロック
</div>
<div style="float:left;">
左2ブロック
</div>
<div style="float:left;">
左3ブロック
</div>
左1ブロック
</div>
<div style="float:left;">
左2ブロック
</div>
<div style="float:left;">
左3ブロック
</div>
左1
左2
左3
こんな感じでボックスが並んでいきます。
右だと、こんな風に…
右1
右2
右3
横積みモードを解除する
結構簡単に横並びの箱も実現できました。ですが、これ、いちいち解除する命令を送ってやらないと、「float」を指定していないそれ以下の「HTML」もどんどん勝手に隙間に入っていってしまいます。
こんな感じで表示がおかしくなる。(注1*IE以外のブラウザ)↓
左1
左2
文字だけするすると抜け落ちたり、裏側に重なって表示されたり、消えてしまったり、もうめちゃくちゃな表示になってしまうのですよん。
これは、「clear : both ;」という命令文で解除することができます。
以下のようにタグを作ります。
<div style="float:left;">
左1ブロック
</div>
<div style="float:left;">
左2ブロック
</div>
<div style="clear:both;">
フロートの下のブロック
</div>
左1ブロック
</div>
<div style="float:left;">
左2ブロック
</div>
<div style="clear:both;">
フロートの下のブロック
</div>
左1
左2
clear : both ;
フロートの下のブロック
フロートの下のブロック
☆実際にDIVボックスを、リアルタイムにフロートさせてみよう。
divフロートチェックツール(リアルタイム)
実際に表示確認してみる(編集可)
ファイアフォックス系ブラウザのバグ
この「float」を使うと、ファイアフォックス系のブラウザでバグが出ます。フロートさせたボックスが入った親ボックスの背景が無くなる(親ボックスの高さ height が無くなる)というもの。
このバグを回避するには「<br clear="all">」と言うタグを、以下の場所に挿入します。
<div class="oya">
<div style="float:left;">
左1ブロック
</div>
<div style="float:left;">
左2ブロック
</div><br clear="all">
</div>
<div style="clear:both;">
フロートの下のブロック
</div>
<div style="float:left;">
左1ブロック
</div>
<div style="float:left;">
左2ブロック
</div><br clear="all">
</div>
<div style="clear:both;">
フロートの下のブロック
</div>
あまり深く考えず、そこに入れておけば多分大丈夫だと思います。
「<br clear="all">」でなく、「<div style="clear:both"> </div>」でも大丈夫だと思います。(未確認)
そして、必ずフロートを解除する最初のボックスで、基本の「clear : both ;」は、忘れないように入れておいてください。
なんかが変だと思ったら
症状・状態 | 怪しい場所 |
ファイアフォックス系のブラウザを使っていて、背景のボックスが消えた。バックグランドカラーもボーダーも指定できなくなった。 | この上のように「<br clear="all">」を、フロートの最後の</div>の直前に入れてみる |
ブログが全部崩れた | </div>で、どこかを閉じ忘れている。 |
</div>で、余計な部分を閉めている。 | |
タグのどこかが全角文字になっている。 | |
””の閉め忘れ。class="" とか、style="" とか。 | |
<div>、</div>の綴り間違い。 | |
「clear : both ;」忘れ。 | |
「crear : both ;」になっている。 |
これが、よくやらかすミスです。よくやるのが「</div>」の閉じタグがどこで抜けているのか訳がわからなくなる場合です。
技としては、「<div style="clear:both;"></div>」という、空のボックスを、フロートの後に置いてみて、プレビュー。
もしもそれで、ブログ本体は正常に表示されれば、clear:both;が上手く働いていないと言えます。
綴りミスや、全角文字、" "忘れを疑ってみます。
空ボックスを入れても正常にならない場合は、大体</div>が上手く働いていない場合。
綴りミスや、全角文字、「<>」忘れを疑ってみます。
正常であれば、</div>を、書き忘れているか、余計に書いているかです。
これが探すのが一苦労なんです…
IE系のデバッグなら

*注1
ブラウザがIEの方は、何がおかしいのか分からないと思います。
これ、実はIE以外のブラウザの場合は、殆どが崩れて表示されています。
ブラウザがIEの方は、何がおかしいのか分からないと思います。
これ、実はIE以外のブラウザの場合は、殆どが崩れて表示されています。
■次のページはコチラです。
ブログの中にブログ?・ブロックでミニブログ(骨格編)
■divボックスフロート徹底講座。
実際にdivブロックを記事で利用する
■CSSメインメニュー
実用的スタイルシート入門
スポンサーリンク
Fri.03.26.2010
Comment
208
ありがとうございました。
はじめまして。
ありがとうございました。
とても参考になりました。
自分のWebで起きているエラーとは違っていたようですが、今になって初めて<DIV>の扱いについて知ることができました。
今度HTMLの中に仕込んでみます。
ありがとうございました。
とても参考になりました。
自分のWebで起きているエラーとは違っていたようですが、今になって初めて<DIV>の扱いについて知ることができました。
今度HTMLの中に仕込んでみます。
219
承認待ちコメント
このコメントは管理者の承認待ちです
Trackback
Trackback URL
Comment Form
質問するときは?
やっぱり自分で解決したい時
特定の記事のみでレイアウトが崩れる場合
全ページでレイアウトが崩れる場合
メールフォーム
- 不具合が出ているページのURLを書き込む。
- 使っているブラウザ(IE、Firefoxなど)を書き込む※IE6はサポート外です。
- 次の人が確認できるように、使っているテンプレートの記事ページ、或いは各カスタマイズ記事ページにコメントを書きこむ。

特定の記事のみでレイアウトが崩れる場合
全ページでレイアウトが崩れる場合
メールフォーム