• ベストアンサー

[ブログ]CSSで画像の回り込み解除をしたい

libedoorで画像中心のブログを作りました。 以前は、画像の下にテキストが流れていたんですが、デザインを変更したところ、テキストが画像の右側に来るようになってしまいました。 色々見て回り、CSSをいじってためしてみたのですが(初心者です)全く解決せず、どこをどうすれば良いのかこんがらがってしまいました。 ちなみに以前(画像の下にテキストが流れていた時に)下記の記述で、回り込みが解除されていたのかと思い、追加してみましたが、ただ足せば良いと言うものじゃないんですね。 HTMLの方もいじらなくてはいけないんじゃないかと思いつつ、どこをいじれば良いのかさっぱり分からず・・・知恵お貸し頂けたら幸いです。 ---------------------------------------- #content:after { content: "."; display: block; visibility: hidden; height: 0.1px; font-size: 0.1em; line-height: 0; clear: both; } ---------------------------------------- CSSで、と書きましたが、画像の回り込みを解除できれば、HTMLでも構いません。 理解しないままで、まとまらず分かりにくい質問かと思いますが、どうぞよろしくお願いいたします。

  • HTML
  • 回答数4
  • ありがとう数4

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

  • ベストアンサー
  • hetare560
  • ベストアンサー率66% (28/42)
回答No.4

ANo.1、ANo.3です。 -------------------------------------------------------------------------------- <div class="article-body entry-content"> <div class="article-body-inner"> <a href="ttp://image.blog.livedoor.jp/***/imgs/7/3/****.jpg" target="_blank"><img src="ttp://image.blog.livedoor.jp/***/imgs/7/3/****-s.jpg" width="550" height="768" border="0" alt="***" hspace="5" class="pict" align="left" /></a><br> <br> CSSノヤイトイ鬚ヌ、ケ<br> ハクサ憘ノ、゜、ヒ、ッ、、、ホ、鯀皃ットセ、キ、ソ、、 </div> -------------------------------------------------------------------------------- この部分を見る限り<$ArticleBody$>には特別なタグが挿入されておらず 画像=<h3></h3>、その下の文字=<p></p>ともされていないので、 clearを指定するなら<br>ですね。 .article-body-inner br { clear:both; } をcssに記述してみてください。 ちょっと文法的な話しをさせてもらうと、今のタグの記述方法だと<$ArticleBody$>(=記事の部分)がわかりにくいタグの記述になっているので、 画像は<h3></h3>で囲みその記事の小見出しにし、画像の下に記述する解説は<p></p>で囲んで段落の意味を持たせるなどとした方がいいと思いますよ。 例えば <div class="article-body-inner"> <h3><a href="ttp://image.blog.livedoor.jp/***/imgs/7/3/****.jpg" target="_blank"><img src="ttp://image.blog.livedoor.jp/***/imgs/7/3/****-s.jpg" width="550" height="768" border="0" alt="***" hspace="5" class="pict" align="left" /></a></h3><br> <br> <p>CSSノヤイトイ鬚ヌ、ケ<br> ハクサ憘ノ、゜、ヒ、ッ、、、ホ、鯀皃ットセ、キ、ソ、、</p> </div> ただし、タグの記述を変えるとそれに伴ってcssも書き換える必要が出てくるので、 一概におススメはできませんけど。 後はあまり<br>は連発しないほうがよいかと・・。

tokiiro
質問者

お礼

で、できました! .article-body-inner br { clear:both; } を記述したところ見事に画像の下に文字が流れるようになりました。 こんな理解力で解決できる自信もないまま質問させて頂きましたが、こんなに親切丁寧に教えて頂けるとは思ってもみませんでした。 後ほどじっくりhetare560様の回答を読み、少しでも理解を深めていきたいと思います。 何度もご足労をかけてしまい申し訳ありません。本当に感謝しています。 三度ものご回答、また、解決まで導いて下さりありがとうございました! レイアウトが決まった画面を見たときは感激しました。

その他の回答 (3)

noname#66720
noname#66720
回答No.3

imgに対してfloatが指定されているのなら、それを消すだけで良いのではないのでしょうか? たいていの場合、 div#MAIN img { float:right; } のような感じで、全体を囲むdivに対してidやclassが振られ、その中にあるimg要素に対してのみfloatが効くような指定がされていると思うので、その記述を消してみてください。

tokiiro
質問者

お礼

明快なお答えをありがとうございます! 【float:***】の記述を全て消してみましたが、デザインが崩れただけで、文字は右に回りこんでしまいました。 と言う事は、いくら【clear: both;】の記述をしたところで無駄だったんでしょうか? 【clear】は【float】を打ち消すCSSですよね? 一歩前進した様な気がしますが、また立ち止まってしまいました。 HTMLに回り込む記述があると言うことでしょうか? それともCSSにfloat以外で回り込ませる方法があるのでしょうか? ?尽くしで申し訳ありません。 他に解決策がありましたら、助言頂けると幸いです。

  • hetare560
  • ベストアンサー率66% (28/42)
回答No.2

ANo.1です。 ソースを拝見させていただいたのですがかなり抽象的なhtmlの為、 具体的なid classが記載されておらず具体的な事はもうしあげられないのですが、 ソースからの推測でアドバイスさせていただきたいと思います。 <div class="article-body entry-content"> <div class="article-body-inner"> <$ArticleBody$> <IfArticleBodyMore><span class="article-continue"><a href="<$ArticlePermalink$>" title="この記事の続きを読む">続きを読む</a></span></IfArticleBodyMore> </div> <$ArticleTagsListInternal$> </div><!-- articleBody End --> たぶん.article-body-inner内のimgにfloat:leftかrightが指定されていると思うので、 その下に記述されるタグ(<p></p>、<div></div>とか)にclear:leftかrightもしくはbothを指定すれば回り込みは解除されます。 <$ArticleBody$>はtokiiro様が利用されているブログサービスの編集画面で表示されているソースだと思いますが、 これはあくまでご利用されているブログサービス独自の変数で、<$ArticleBody$>の部分に自動的に挿入されるソース (=確認方法:tokiiro様のブログのトップページを開く→表示→ソース)がわからなければこれ以上具体的な事は申し上げられません。

tokiiro
質問者

お礼

再度のアドバイスありがとうございます! このような素人に親切に教えて頂き感謝しております。 ブログページのソースを確認して参りました。 関係ありそうなのはこのあたりでしょうか? -------------------------------------------------------------------------------- <div class="article-body entry-content"> <div class="article-body-inner"> <a href="ttp://image.blog.livedoor.jp/***/imgs/7/3/****.jpg" target="_blank"><img src="ttp://image.blog.livedoor.jp/***/imgs/7/3/****-s.jpg" width="550" height="768" border="0" alt="***" hspace="5" class="pict" align="left" /></a><br> <br> CSSノヤイトイ鬚ヌ、ケ<br> ハクサ憘ノ、゜、ヒ、ッ、、、ホ、鯀皃ットセ、キ、ソ、、 </div> -------------------------------------------------------------------------------- 試しに、質問時に記述したCSSの【#content .after】部分を 【div#article-body entry-content.after】【div#article-body-inner.after】【div#pict.after】 と言う様に切り替えてみましたが駄目でした。 (上のお礼欄にありますが、floatを全て消しても駄目でした。) これ以上hetare560様のお手を煩わすのは心苦しいのですが、一応ブログページのソース全文を載せさせて頂きます。 http://space.geocities.jp/web_up_space/blog-top-html.htm 回り込み解除をしたい画像は【ttp://image.blog.livedoor.jp/***/imgs/7/3/****-s.jpg】です。 【align="left"】テーブルで組まれてるのでしょうか? hetare560様の助言が大変参考になっておりますので、何かヒントが見つかりましたら、もう少しお付き合い頂けますと助かります。

  • hetare560
  • ベストアンサー率66% (28/42)
回答No.1

こんにちは。 まず気になったのが、【#content:after】です。 この記述だとスタイルが適用されませんので【#content .after】もしくは 【#content #after】に直してみてください。(たぶん前者だと思いますが) もしこれで解決しない場合はCSSだけではなく、 htmlのソース(画像とテキスト周辺のもの)も提示していただかないと 答えようがありません。

tokiiro
質問者

お礼

アドバイスありがとうございます! hetare560様の仰る様に【#content .after】と【#content #after】に変更してみましたが変化が見られませんでした。 HTMLのソースとはこちらでよろしいでしょうか? http://space.geocities.jp/web_up_space/blog.html トップページのHTMLです。他に【個別記事ページ】【カテゴリアーカイブ】【月別アーカイブ】があります。 どの辺りが必要な部位か分からなかったため、ほぼ丸ごとで恐縮です。 お手数をおかけいたしますが、再度お力添えを頂けますと嬉しいです。

関連するQ&A

  • floatを使って画像にテキストを回り込ませて解除する時

    floatを使って画像にテキストを回り込ませて解除する時 clear:both;などを使うけど、テキストの量が少ないと上手く解除されないですよね。そのとき、下記のようなCSSを書くのですが、これだとMacのIEではうまいこと解除できていません。 どう書いたら良いでしょうか? 【HTML】 <div class="box"> <img> <p>テキスト</p> </div> 【CSS】 div.box { zoom: 100%; background-color: #CCC; padding: 10px; width: 500px; } div.box:after { content: " "; clear: both; height: 0; display: block; visibility: hidden; } div img { float: left; }

    • 締切済み
    • CSS
  • 回り込み解除(clearfixとの違いは!?)

    http://www.u-ziq.com/blog/2007/01/css_1.html こちらのサイトに書かれている回りこみ解除のやり方は、 clearfixとは異なるのでしょうか?? clearfixについて調べると、 以下のように記述するようですが .clearfix:after { content: "."; /* 新しい要素を作る */ display: block; /* ブロックレベル要素に */ clear: both; height: 0; visibility: hidden; } .clearfix { min-height: 1px; } * html .clearfix { height: 1px; /*\*//*/ height: auto; overflow: hidden; /**/ } http://www.u-ziq.com/blog/2007/01/css_1.htmlのサイトのやり方のほうが短く、シンプルですよね?? 考え方が違うからなのでしょうか? 分かる方、ご教授お願いします><

    • ベストアンサー
    • HTML
  • 【CSS】clearとvisibilityについて

    【CSS】clearとvisibilityについて こんにちわ。いつもみなさまのご助言に大変感謝しております。 標記の件ですが、CSSの勉強をしていましたところ、いかのようなコードがあり、気になりました。 .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } この場合、クラス"clearfix"で括られているエリアの末端には「.」が入りますが、visibilityプロパティにより非表示とされることで文字通り画面上にはピリオドが 存在しない形式になっていますが、そもそもなんでこんなcontentプロパティやvisiblity プロパティを使っているのでしょうか。 .clearfix:after { display: block; height: 0; clear: both; } これだけだと何か不都合が生じるのでしょうか。

    • ベストアンサー
    • HTML
  • cssのfloatについて

    cssのfloatを使い横並びを実現していますがoverflowを利用して横並びを実現するという方法を聞きました。 現状の構成は具体的に以下のような感じです。 <div id="main"> <div id="left">レフト</div> <div id="center">センター</div> </div> #main:after { content: "."; display: block; visibility: hidden; height: 0.1px; font-size: 0.1em; line-height: 0; clear: both; } #left {float: left;} #center { float: right} これをoverflowで実現するにはどうすればいいのでしょうか? また、floatを使用しないで実現するメリットはなんでしょうか?

    • ベストアンサー
    • HTML
  • CSSテキストの回りこみ解除について

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> CSSでサイトをつくっています。 写真の右にテキストを回り込ませるのにfoat:leftをimgに指定しているのですが、 <div style="clear: both;"> <br style="clear: both;"> で解除すると、Firefoxで下に200pxくらいの余白ができてしまいます。(IEは問題ありません) そこでbothをallに変えると、Firefoxでもきちんと表示されるのですが、allはHTML 4.01は非推奨とのこと。 テキストの回りこみはどのようにすればうまく行くのでしょうか?

    • ベストアンサー
    • HTML
  • CSSの画像置換

    CSSの画像置換のため、以下の通りに書いています。 PCで見た際には画像が正常に表示されるのですが、 スマホで見た場合、widthが625pxで指定してあるのではみ出してしまうのです。 これを100%等にすると画像が欠けてしまいます。 この場合はどの様にするべきでしょうか? 宜しくお願いします。 .txtint { text-indent: 100%; white-space: nowrap; overflow: hidden; } .txt_btm30 { font-size: 105%; letter-spacing: 0.05em; line-height: 170%; margin: 10px 0 30px; width: 100%; } <p class="txtint txt_btm30" style="background: url('***.gif') no-repeat; width:625px; height:118px">テキスト</p>

    • 締切済み
    • CSS
  • ナビゲーションバーのfloatを解除できない。

    以上二つのソース(HTMLと,CSS)を用意しました。 top_naviのfloatを解除して その下に、画像の表示をさせたいのですが、(添付画像、ピンクエリア) top_naviの続きに、【div class="slideshow"】の画像表示エリアが表示されてしまいます。 (添付画像 水色のエリア。) 【<!--<div class="clearboth"></div>--> を使用すれば、思い通りに表示されるのですが、 clearfixの方法で解除したいと思っております。】 また、IE6~9、firefox10~11で動作させたいと思っております。 ご教授お願いします。 ==HTMLソース=== <div id="container"> <div id="top_navi"> <ul> <li>リンク1</li> <li>リンク2</li> <li>リンク3</li> </ul> </div> <!--<div class="clearboth"></div>--> <div id="show" class="slideshow" align="center"> <img src="photos/1.jpg" alt="画像の説明" width="960" height="300" border="0"> </div> </div> ==HTMLソースここまで=== ##CSSソース## *{ padding : 0px ; margin : 0px ; } #container{ width : 960px; border: 3px solid #FF9900; margin : 5px auto; } //navi設定部分ここから #top_navi { height: 1.3em; background-color: #3399FF; } #top_navi ul { padding: 0px; margin: 0px; list-style-type: none; } #top_navi li { float: left; width: 100px; height: 1em; text-align: center; padding: 0px; margin: 0px; } #top_navi li a { color: #0000FF; display: block; } #top_navi li a:hover { color: #FFFFFF; background-color: #000080; height: 1.3em; } //navi設定部分ここまで //naviとslideshowの間をclearfixする。 .clearfix:after { content: "."; /* 新しい要素を作る */ display: block; /* ブロックレベル要素に */ clear: both; height: 0; visibility: hidden; } .clearfix { min-height: 1px; } * html .clearfix { height: 1px; /*¥*//*/ height: auto; overflow: hidden; /**/ } .clearboth{ clear: both; } ##CSSソースここまで(一部抜粋)

    • ベストアンサー
    • CSS
  • CSS dtの中に画像を入れた時に

    CSS dtの中に画像を入れた時に dtの文字が下にずれてしまいます。 画像を消すと問題無いので、画像の指定に原因があると思うのですが・・・。 ■css ---------------------------------------- .sub{ clear:both; width:420px; } .sub dt{ float:left; padding:0 0 0 0; width:200px; height:38px; line-height:38px; background:url(../img/sub-bg2.jpg) no-repeat; font-size:1em; border-top:1px solid #f4e9bf; border-bottom:1px solid #f4e9bf; } .sub dt img{ padding:0 0 0 0; width:4px; height:38px; } .sub-menu dd{ float:right; width:180px; height:38px; line-height:38px; font-size:1em; background-color:#ffffcc; text-align:right; border-top:1px solid #f4e9bf; border-bottom:1px solid #f4e9bf; } ■html --------------------------------------- <dl class="sub"> <dt><img src="../img/a.png" width="4" height="38" alt="aa" />テキスト</dt> <dd>あいうえお</dd> </dl> お分かりになる方、宜しくお願いします。

    • ベストアンサー
    • HTML
  • IE8で印刷時に背景が出ない(Floatを内包する要素)

    IE8で印刷時に背景が出ない(Floatを内包する要素) 以下の内容のページを印刷の際、IE8で#wrapの内容が複数ページにまたがるときだけ#wrapの背景画像がうまく表示されません(最終ページのみ背景が出ます)。 firefox、IE6、IE7では問題なく印刷されます。 clearfixの仕方に問題があるのかと削除して試しても結果は同じでした。 他に原因が思い当たらず困ってるのですが、アドバイスをいただけないでしょうか? ※css #wrap { width: 850px; background-image: url(../_images/common/wrap_bg.gif); background-repeat: repeat-y; margin-right: auto; margin-left: auto; margin-top: 0px; } #main_contents { width: 600px; float: right; } #side { width: 250px; float: left; } .clearfix:after { content: " "; display: block; visibility: hidden; clear: both; height: 0.1px; font-size: 0.1em; line-height: 0; } .clearfix { display: inline-table; min-height: 1%; } @media print{ .clearfix:after{ content:"."; display:block; height:0; clear:both; visibility:visible; } } ※HTML (前略) <div id="wrap" class="clearfix"> <div id="main_contents">~</div> <div id="side">~</div> </div> (後略)

  • clearfixについて

    clearfixについて .clearfix:after { content: "."; /* 新しい要素を作る */ display: block; /* ブロックレベル要素に */ clear: both; height: 0; visibility: hidden; } .clearfix { min-height: 1px; } * html .clearfix { height: 1px; /*\*//*/ height: auto; overflow: hidden; /**/ } clearfixの:afterとcontentを使ったclearのやり方自体は分かるのですが、IEのバグ直し用の .clearfix { min-height: 1px; } というところがなぜmin-height: 1px;なのか意味がよく分かりません。

    • ベストアンサー
    • HTML