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

添付画像のように画像と文字数がバラバラのテキストをセットにして
なおかつセンタリングしたいのですが
どのようにすればいいのか、教えていただけませんでしょうか?


<div id="waku">
画像+テキスト(文字数がバラバラ)→センタリングしたい
</div>


画像が左寄せになってしまう。
<img src="ImageURL"style="vertical-align: middle; float:left;"><span style="vertical-align: middle;">あいうえおあいうえおあいうえおあいうえおあいうえお<br/>あいうえおあいうえお</span>


画像とテキストが上下にずれる
<ul style="list-style-image: url(ImageURL);"><li>かきくけこかきくけこ<br/>かきくけこかきくけこかきくけこかきくけこかきくけこ</li></ul>


画像が左寄せになってしまう。
<ul style="list-style-type: none;"><li style=" background-image:url(ImageURL); background-repeat:no-repeat; background-position:left center;">かきくけこかきくけこ<br/>かきくけこかきくけこかきくけこかきくけこかきくけこ</li></ul>
※background-position:center center; にすると画像とテキストが重なってセンタリングされてしまう。

「画像の回り込みをしながらセンタリング(画」の質問画像

A 回答 (6件)

<div id="waku" style="display:table; margin:0 auto;">


<div style="display:table-cell; vertical-align:middle">画像</div>
<div style="display:table-cell; text-align:center; vertical-align:middle;">テキスト</div>
</div>

IE7以下はもう切り捨ててしまっていいでしょう。
    • good
    • 0
この回答へのお礼

t_freakさま
回答ありがとうございます!
出来ました!
そうですね!「display:table;」を使用すれば良かったんですね。
なぜかすっかり頭の中から抜け落ちていました。
ありがとうございました。

お礼日時:2015/06/23 21:38

ORUKA1951です。


 了解しました。今日は終日、出たり入ったりですので後でゆっくり説明しましょう。
HTML5だと
<body>
 <header></header>
 <section>
  <ul>
   <li>
    <p></p>
    <p></p>
   </li>
・・・・
 </section>
 <footer></footer>
</body>
とかが、マークアップは楽でしょう。HTML4.01では文書構造を示す要素が用意されていませんので、『id属性及び class属性と併用することで、文書に構造を付加する( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )』ことになるでしょう。
<body>
 <div class="header"></div>
 <div class="section">
  <ul>
   <li>
    <p></p>
    <p></p>
   </li>
・・・・
 </div>
 <div class="footer"></div>
</body>
    • good
    • 0

No.3です.


 まず、具体的な文章と画像を示してください.
>左側に画像+右側にテキスト(文字数はバラバラ)=ひとまとめに見える事
 そうではなく、この二つは一つのグループなはずですから、デザインではなく文書構造を教えてください..先の回答で

___________画像が主要なコンテンツのリスト
(画像)とその説明文
・・・・・・・・・・
(画像)とその説明文
・・・・・・・・・・
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
なのか?
___________記事が主要なコンテンツのリスト
項目
・・・・・・・・・・
項目
・・・・・・・・・・
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
あるいは、単純な記事の連続なのか・・
_____________
画像と記事
・・・・・・・・・・
画像と記事
・・・・・・・・・・
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
さてまた、ヘッダ、本文、フッターとして完結した記事なのか
_____________
ヘッダ
セクション(見出しをもつ)
セクション(見出しをもつ)
セクション(見出しをもつ)
フッタ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
デザインを無視して率直にマークアップしなさいとはそういう意味です.
★差しさわりのないように具体的な内容を示していただけると良いでしょう.
 記事の内容は同じものでなくて良い
★画像のサイズ・・

 また、記事量の多少によってサイズが変わる根拠.一行の文字数が長い場合、短い場合.あるいは段落が多いとき少ないときなど
    • good
    • 0
この回答へのお礼

ORUKA1951さま
回答ありがとうございます。


画像:見た目のみ(ulのリストマークのような扱い)
テキスト:簡易的にまとめた記事

---------
ヘッダ
セクション
 ・・・
 セクション
  <div id="waku"><img 画像>サブタイトルと記事のような内容<br/>あいうえおさしすせそ<br/>かきくけこ</div>
 ・・・
フッダ
---------

動的なので、ページにより画像+テキストのグループが1つのもあれば複数のもあります。
テキストは複数行(2〜3行)で1行文字数は30文字以下。
画像は80×60pxです。

お礼日時:2015/06/23 22:03

ブロック自体をfloat使って配置していませんか?


 floatは、「画像などの周囲にテキストを回りこませる」ためのもので、誤まった使い方をするとclearなどと競合します。
 だからと言ってtableを使用するのは、「角をためて牛を殺す」ことになる・

 それ以前に、質問の意味が良くわかりません。
『画像と文字数がバラバラのテキストをセットにして』
 文書構造と不整合なデザインはできません。セットにして表示と言う事は必ずバラバラではなく関連があるはずです。

1) 率直に文書構造を正確にマークアップします。(この段階ではデザインは一切考えない)
・構造とプレゼンテーションの分離( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
 画像がその文書のコンテンツだったらimg要素を使います。
 そうでないのでしたら、背景やcontentで追加する。
2) スタイルシートで好きにデザインする。

実例を
1) 例えば、それがニュースのタイトルのリストだったとします。
<div id="news" title="新着情報">
 <ol>
  <li>
   添付画像のように画像と文字数がバラバラのテキストをセットにして、なおかつセンタリングしたいのですが、どのようにすればいいのか、教えていただけませんでしょうか?
  </li>

・・・・あるいは、植物の説明だと
<div id="plants" title="道で出会った植物">
 <ol>
  <li>
   <img src="" width="" height="" alt="">
   <p>
    添付画像のように画像と文字数がバラバラのテキストをセットにして、なおかつセンタリングしたいのですが、どのようにすればいいのか、教えていただけませんでしょうか?
   </p>
  </li>

 ここまで出来ていれば、スタイルシートで如何にでもなります。各こまの横幅を何で指定するのかは、状況によって変わるでしょう。とりあえずその抱合ブロックの80%とかにしておいて、文章が短い場合はどうするとか・・
 width:auto;
 max-width:80%;
 min-width:40em;

 まずは、デザインは一切考えずに、検索エンジンやスクリーンリーダーも考慮して、率直にHTMLをマークアップしてください。
 それを示してください。マークアップ自体がわからないときは、
>画像と文字数がバラバラのテキストをセット
 具体的になんなのかを示してください。

 デザインはその後の問題です。
★決してデザインを目的にHTMLを書いてはなりません。
    • good
    • 0
この回答へのお礼

ORUKA1951さま
回答ありがとうございます。
「率直にHTMLをマークアップ」するように心がけていますが、なかなか現実問題難しく悪戦苦闘しています。

「2) スタイルシートで好きにデザインする。」を選択し質問事項のようにテストしている状態です。
[セットにして]というのは、ブラウザで見た際、
左側に画像+右側にテキスト(文字数はバラバラ)=ひとまとめに見える事
です。
抱合ブロックの横幅も、固定サイズ(#waku{width:640px;})や相対サイズ(#waku{width:90%;)等々テストしたのですが
結果は思った通りに出来ませんでした。

お礼日時:2015/06/23 01:17

非常に原始的なのですが、tableタグでレイアウトをつくるとできそうです。


ただ、tableタグを使ってレイアウトをするって、現在では推奨されていないんでよね。というわけで何も回答が付かなかった場合の最終手段として投稿します。
(テキストが縦方向にセンタリングされていますが、そこはtdタグにvalignで属性指定してやればいいです。)

<center>
<table>
<tr>
<td>
<img src="gazou.jpg">
</td>
<td>
<center>
<tt>
センタリングしたいテキストをここに入れる。センタリングしたいテキストをここに入れる。センタリングしたいテキストをここに入れる。センタリングしたいテキストをここに入れる。センタリングしたいテキストをここに入れる。センタリングしたいテキストをここに入れる。
</tt>
</center>
</td>
</tr>
</table>
</center>
</body>
</html>
「画像の回り込みをしながらセンタリング(画」の回答画像2
    • good
    • 0
この回答へのお礼

Ensenadaさま
回答ありがとうございます。
そうですよね。
最終的にはtableを使用しないといけないかな。。と悩んでいました。(;´д`)…
他の方法を探してみます。
ありがとうございました。

お礼日時:2015/06/23 00:11

<div style="text-align:center">


<img src>
<span style="display:inline-block"> text text<br>text </span>
</div>
    • good
    • 0
この回答へのお礼

Ogre7077さま
回答ありがとうございます。
テストをしてみましたが、どうしても画像とテキストの位置がずれてしまいました。
「_display: inline;」なども追加してみたのですが、上手くいきませんでした。
他の方法を探してみます。
ありがとうございました。

お礼日時:2015/06/23 00:05

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