• ベストアンサー

回り込みについて(間隔が空く)

下記のような内容(1)のhtmlをcssのfloatを利用して回り込みさせていますが、画像の縦幅より文字が多くなると画像の下にはみ出てしまいます。 tableタグは利用せずに、どのようにcssを指定することで回避できました。(2)既に一度質問をしています。 ​http://okwave.jp/kotaeru.php3?qid=2419373​ しかし画像と文字の間に間隔が入ってしまい困っています。 間隔をあけないようにするにはどうしたら良いでしょうか。 marginやpaddingやwidthをいじりましたがその場しのぎのようでブラウザによってはうまく表示できません。 (1) <img src="■">aaaaa ↓結果 ■aaa aa (2) imgはfloat:left textはfloat:right <img src="■">aaaaa ↓結果 ■__aaa ___aa (アンダーパーはスペースを示す) ■とaaaにあるスペースを、10pxほどにしたい。

質問者が選んだベストアンサー

  • ベストアンサー
  • ratoa
  • ベストアンサー率40% (28/69)
回答No.5

右に寄せるという言い方は、良くなかったですね。 右に寄せる場合はfloat:rightでいいんですが、この場合、左に詰めたものの右に並べて置く訳だから、要素を左上から順番に詰めていってる状態ですよね。 つまり左詰めなので、float:leftです。

ton_jiru
質問者

お礼

ありがとうございます。 いろいろ調べましたが、配置した反対側に後続の要素が回り込むみたいですね。 aaaaaの後続の要素にhrを置いていましたが、この場合hrに対してaaaaaが左に回りこんで、結果として左に詰まったと理解しました。 しかし、上記例では■とaaaaaは1つなのですが、hrを区切りに複数並べており、float:rightで間隔が開くものと開かないものがでるようで、これがバグなんだろうと理解しました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • ratoa
  • ベストアンサー率40% (28/69)
回答No.4

念のため#3の訂正です。 <img src="×××.gif" alt="" width="100" height="50" class="img1" /> この最後の /> はxhtmlの書き方なので、htmlでは普通に > でokです。 いつもの癖でつけちゃいました。

全文を見る
すると、全ての回答が全文表示されます。
  • ratoa
  • ベストアンサー率40% (28/69)
回答No.3

【html】 <img src="×××.gif" alt="" width="100" height="50" class="img1" /> <div class="textbox"> <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p> <p>テキストテキストテキストテキストテキストテキストテキストテキスト</p> </div> 【css】 img.img1{ float:left; } div.textbox{ width:100px; float:left; padding-left:10px; background:#999; } 右に寄せたいからfloat:rightにするのではなく、float:leftに続く要素は同じくfloat:leftでOKです。 floatした要素にはwidthの指定も必須ですが、img要素はそれ自体に幅があるのでcss側では指定してません。 IEには、floatした要素と同じ側のmarginが倍になるというバグがあるのでpaddingにしています。つまりfloat:leftの場合、左側のmarginが倍になります。paddingが嫌な場合は、imgに対してmargin-rightを指定してください。 もうひとつのやり方として、floatに続く要素に画像の幅分のmarginを付けるという手もあります。 【css】 img.img1{ float:left; } div.textbox{ padding-left:110px;/*画像の幅+10px*/ background:#999; }

ton_jiru
質問者

お礼

ありがとうございます。 floatをrightからleftに直して、paddingを調整したら直りました^^ >右に寄せたいからfloat:rightにするのではなく、float:leftに続く要素は同じくfloat:leftでOKです。 なぜ、float:leftに続く要素は同じくfloat:leftでOKなんですか?

全文を見る
すると、全ての回答が全文表示されます。
  • 345itati
  • ベストアンサー率48% (795/1639)
回答No.2

ちょっと丁寧に修正^^; CSS部分 div { width: ボックスの幅px; clear: both; } .left { float: left; margin-top: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; padding-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 10px; border: none; } HTMLソース部分 <div><p><img src="■" class="left">あああああ<br>あああああ<br>ああああああ</p></div> <div><p><img src="■" class="left">いいいいい<br>いいいいい<br>いいいいいい</p></div>

ton_jiru
質問者

お礼

丁寧にありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • 345itati
  • ベストアンサー率48% (795/1639)
回答No.1

<p><img src="■" style="float: left; padding-right:10px; border: none;">ああああ<br>あああああ<br>ああああ</p> という感じでは? padding-right:の記述で間隔調整出来るかと。 img { float: left; padding-right: 10px; border: none; } で <p><img src="■">あああああ<br>あああああ<br>ああああああ</p> と別途記述の方がスマートですが。

ton_jiru
質問者

お礼

ありがとうございます。 間隔で調整できないくらい何故か幅が空いてしまって^^; 無理に調整すればできることはできるのですがNo.3さんの仰るとおりバグのようです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 回り込みについて

    下記のような内容(1)のhtmlをcssのfloatを利用して回り込みさせていますが、画像の縦幅より文字が多くなると画像の下にはみ出てしまいます。 tableタグは利用せずに、どのようにcssを指定すれば回避できるでしょうか。 ちなみに(2)ならばはみ出ません。 (1) <img src="■">aaaaa ↓結果 ■aaa aa (1) <img src="■">aaa ↓結果 ■aaa

    • ベストアンサー
    • HTML
  • 画像の間隔を詰めたい

    以下の画像の間隔を詰めたいのですがb-95.gifとその左右にあるb-305.gifとの間隔が埋まりません。 この画像はアイコンで、提供してくれるサイトにある見本ではちゃんと 感覚が埋まっているのですが、どうすればいいのでしょうか? <img src="hiyo_43.gif"> <img src="b-325.gif"><img src="b-305.gif"> <a href="index.html"> <img src="b-95.gif" border="0" onmouseover="this .src='b-105.gif'"> </a> <img src="b-305.gif"><img src="b-102.gif">

    • ベストアンサー
    • HTML
  • CSSにてfloat:leftを使用して画像を3つ並べたのですが。。

    CSSにてfloat:leftを使用して画像を3つ並べたのですがこの3つの画像をセンターによせることができません。 なんでかまったくわかりません(ToT) 教えてくださいm(__)m 【HTML】 <div class="box2"><img src="images/sum2.gif"></div> <div class="box3"><img src="images/sum3.gif"></div> <div class="box4"><img src="images/sum4.gif"></div> 【CSS】 .box2{ float:left; width:219px; } .box3{ float:left ; width:156px;} .box4{ float:left ; width:195px; }

  • 画像の配置(上下の間隔)で教えて下さい。

    初心者なのですが、本についていたromを使って HPを作成中です。 使用しているフォントの関係で、文字を加工して画像としてUPしたいのですが、その文字(画像)の間隔が広すぎて、どうしたらいいのかわかりません。 <table width="400"border="0 "align="center" cellpadding="0"lspacing="0"> <tr><td> <div align="center"><img src画像1.gif" width="700" height="300"vspace="10"> <img src画像2.gif" width="700" height="300"vspace="10"> </div></tr> </td> </tr> </table> <p align="center"> </p> こういった形になっているのですが、 どう直せば画像の間隔が狭くなるのでしょうか? 宜しくお願いします。

  • 画像リンクの下に文字を付けたいのですが

    画像リンクを複数横に並べ、かつそれぞれの画像の下に文字を表示(それぞれの画像の横幅の範囲内に)させたいのですがどうすればよいでしょうか? 画像と画像の間にスペースを入れることが出来たらなお良いです。 いろいろ調べてみて、 「<div style="float:left"><img src="1.gif"><br>caption 1</div> <div style="float:left"><img src="2.gif"><br>caption 2</div> <div style="float:left"><img src="3.gif"><br>caption 3</div> <div style="clear:both"></div>」 というタグを見つけましたが、これでは画像にリンクがつけられませんし、なぜか画像と画像の間に段が出来てしまいます。 どなたかよろしくお願いします。

    • ベストアンサー
    • HTML
  • カレントディレクトリについて

    カレントディレクトリを表す(.)は必要なんでしょうか? たとえば、HTMLで画像を読み込む際: <img src="./img/aaa.jpg"> <img src="img/aaa.jpg"> 上記はどちらも同じ結果にはなりますが、どちらが良いのでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • フォームで入力画面→確認画面に遷移の際、特定のタグが表示されない

    初めて質問させていただきます。 PHPで簡単なフォームを作成しているのですが、 入力画面に特定のhtmlタグ(span、img)を入力した際、 確認画面に上手く情報が引き継がれず、DBにも登録されません。 -------------------------------------- 【例】 <strong>aaaaa</strong> <span style="color:#999900;">aaaaa</span> <a href="aaa.html">aaaaa</a> <img src="./aaa.jpg" alt=""> このように入力したものが確認画面では aaaaa ←太字になっている aaaaa ←単なる文字列 aaaaa ←リンクが貼られている \"aaaaa\" ←画像が表示されない というふうになり、DBにも上記のまま登録されます -------------------------------------- aタグ、strongタグでは上手くいくのですが…。 お分かりになる方いらっしゃれば、どうかご回答お願いいたします。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • <img src=

    いくつかの画像を表示させたいのですが・・ <img src="1番目の画像URL"border="0"><img src="2番目の画像URL"border="0"> とタグを貼ると、画像同士がピッタリくっついてしまいます、 この間隔を開ける方法? いろいろ調べていますがみつかりません・・ 普通にスペースを入れたら[_]表示になってしまいました、 間隔を開ける方法を教えて下さい。お願いします・・

    • ベストアンサー
    • HTML
  • float で画像が指定サイズより小さくなる

    困っております。 添付の画像なんですが、 float で、370px 幅のdiv を横並びにして、 その中に、それぞれ370px幅の画像を入れたいのですが、 なぜか、勝手に縮小されてしまいます。 これは、画像の詳細を見ると333px になっております。 上の横並びの画像と、下の画像は、全く同じものです。 HTMLとCSSを下記します。 どなたか、お知恵を拝借いただければ、助かります。 宜しくお願いいたします。 <div> <div class="float_370"><img src="image/black370.jpg" alt=""></div> <div class="float_370_2"><img src="image/black370.jpg" alt=""></div> <div><img src="image/black370.jpg" alt=""></div> </div> .float_370 { float:left; margin:0; padding:0; width:370px; } .float_370 img { width: 370px; margin:0; padding:0; } .float_370_2 { float:left; margin:0; padding:0; width:370px; }

    • ベストアンサー
    • CSS
  • テーブルの位置について

    <img src="..." style="float:right" ...> の後に文章とテーブルを書いたところ、 テーブルが画像と重なって表示されてしまいます。 画像を右側に、左側の余白に文章とテーブルを表示させたいです。 XHMLT1.0 で、CSSの指定で解決したいのですが、 どのようにすればよいのか、教えていただけないでしょうか。 なお、テーブルはスペースいっぱいに表示したいので、width=100%と指定してます.

    • ベストアンサー
    • HTML