プロが教えるわが家の防犯対策術!

Javascriptで開いた子ウィンドウ内のページについて
レイアウトで困っております。

以下のようなブロック要素の配置について

<div>
<div style="float; left">
コンテンツA
</div>
<div style="float; left">
<div>
コンテンツB
</div>
<div>
コンテンツC
</div>
</div>
<div style="clear: both">
</div>

以上のような配置になっており、
コンテンツ3の中身をJavascriptで書き換えています。
その際、コンテンツCの横幅が変動し右に大きく広がる場合があります。

それにより、ウィンドウサイズによってはコンテンツBCがコンテンツAに回りこんでしまいます。
何故こうなるかは理解出来るのですが、対策が思い浮かびません。
●思いついたが避けたい対応策
・親のdivタグに想定出来る最大値のwidthを設定する
・tableタグによるレイアウト

良い対応策はございませんでしょうか?
よろしくお願いします。

A 回答 (4件)

大きなものを小さな箱に入ることはできませんが、


どんな風に対策したいのですか?

横に並べることが出来なければ縦に並べるのも、対策としては十分ではないでしょうか。
    • good
    • 0

スタイルシートの文法では、float:left;ですが、それはタイプミスだとして・・


そもそも、回り込ませたくないブロックをfloatという回り込みをさせるプロパティを使っている意味がわかりません。

 また、「コンテンツ3の中身をJavascriptで書き換えています。」がどの部分を指すのかわかりません。

 また、3つのブロックが内容的にどのようなものかを教えてください。HTMLは、デザインためではなく(意味的な)文書構造をマークアップするものですから。
    • good
    • 0

揚げ足取りだったらごめんなさい・・・


下記2点、気になりました。

・ <div> と </div> の数が合っていない
・ "float; left" ではなく "float: left;"
    • good
    • 0

かなり適当にこんなの作ってみましたが、うちでは再現しませんでした。


そこ以外のスタイルが問題なのでは?
IE9, Chromium


<html>
<body style="width:80px;">


<div id="inputpanel">
<textarea type="text" rows=4 id="vtxt" value="abc"></textarea>
<input type="button" value="Cの入れ替え" onclick='document.getElementById("c").innerText=document.getElementById("vtxt").value' >
<br>

<input type="button" onclick='window.showModalDialog("qa.html")' value="open this as modal"><br>
<input type="button" onclick='document.getElementById("inputpanel").style.display="none";' value="hide"><br>
</div>
<input type="button" onclick='document.getElementById("inputpanel").style.display="block";' value="show"><br>
<br>

<div>


<div style="float; left">
コンテンツA
</div>
<div style="float; left">
<div>
コンテンツB
</div>
<div id="c">
コンテンツC
</div>
</div>
<div style="clear: both">
</div>


</body>
</html>
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!