• 締切済み

<div>内のテキスト

safariで見ると以下のページのように<div>内のテキストが はみ出して表示されます。 http://okwave.jp/qa3178306.html divの幅を指定しているときに中のテキストがちゃんと折り返すための タグはありますでしょうか。 IEやfirefoxなどはちゃんと折り返します。

みんなの回答

  • harawo
  • ベストアンサー率58% (3742/6450)
回答No.1

解説を後回しにして、対処法を先に述べるなら、「適宜スペースを入れる」となります。 欧文では、行末に長い単語がくると、ワープロの場合、内蔵しているハイフネーション辞書にしたがって、適宜ハイフンを入れて、改行します。ウェブブラウザは、いまのところハイフネーションしてくれるものはありません。テーブルのセル内などに、極端に長い単語を挿入すると、セルの領域を超えてしまい、セル外のテキストやイメージと重なってしまいます。 単語と単語の間を、Safariは、スペースで判別します。対して、Internet Explorer、Firefoxは、それに加えてパーレン(かっこ)の前ないし後ろで、単語の区切りと判別します。 例示のページのソースを見ると、スペースがまったくない一行があるために、Safariで改行されないという結果になるようです。 HTMLの規則として、スペースが必要とされない箇所で、スペースを使うと、無視されることになっています。スペースを二個以上連続して入力すると、二個目以降無視されるのは、ご存じのとおりです。 閉じパーレンと、開始パーレンの間に、スペースを入れると、Safariはそこで改行してくれるでしょう。

big7980
質問者

お礼

white-space : normal を、記述することで解決できました。 どうも、ありがとうございました。

big7980
質問者

補足

ご回答ありがとうございます。 ただ、逆に言うと、おっしゃられている条件でなくても、決まった幅で折り返しているサイトは多く存在するので、CSSなどでなんとかなりませんでしょうか。 ちなみにテーブルだと同じ条件で折り返してくれます。 ある事情で、スペースやBRなどは使いたくない部分でして。 何か情報があれば教えてください。

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

関連するQ&A

  • <div> で テキストを下揃えにすることはできますか?

    CSSでレイアウトを指定しています。 <div>内のテキスト表示位置についてご存知の方がいらしたら教えて下さい。 言葉では分かりづらいかと思いますのでサンプルのページも用意しました。 どうぞよろしくお願いいたしますm(_ _)m 【やりたいこと】 画像の横に長めのテキスト(折り返しあり)を入力する。 テキストを画像の下部に合わせて(下揃えで)表示させたい。 【できないこと】 テキストが上揃えになってしまう。 【避けたいこと】 テキストの上に透明GIFを入れてスペースを空けることは避けたいと思っています。 画像とテキストは<div>タグでくくっていますが、できれば<div>の縦サイズを固定したくないと思っています。 なるべくシンプルな指定方法だととても嬉しいです。 【サンプルページ】 http://question.oteage.net/090426.html

    • ベストアンサー
    • HTML
  • テキストのみの場合はinnerHTMLを使うべきか

    innerHTMLはIE,Firefox,Chorme,safariでも対応しています。 innerTextやtextContentはブラウザによって対応が違いので、 /*@cc_on @if(1) innerText @else@*/ textContent /*@end@*/ のようにして対応させます。 <div></div>の中がテキストのみの場合は、どちらを使った方がよいでしょうか。 innerHTMLはよろしくないと聞いたことがあるのですが、それは <div></div>の中にタグが含まれる場合に問題が起きてくるということでしょうか。 <div>テキストテキストテキスト</div> <div>テキストテキストテキスト</div> <div>テキストテキストテキスト</div> getElementsByTagName('div')[1].innerHTML getElementsByTagName('div')[1]./*@cc_on @if(1) innerText @else@*/ textContent /*@end@*/

  • CSS・DIVについて

    CSS初心者ですが、質問させていただきます。 <やりたいこと> 同一ページ内にて、下記の(1)(2)をCSSで指定したい。上から(1)(2)(1)の順で表示したい。 (1)幅700、文章中央揃え (2)幅600、文章左揃え <私が作成したもの> (関係ない部分は省略しています。) (実際は、(1)(2)の部分は半角英字の名前をつけています) <head> <style type="text/css"> body { text-align: center; } div#(1) { width: 700px; margin: 0 auto; text-align: center;       } div#(2) { width: 600px; margin: 0 auto; text-align: left; } </style> </head> <body> <div id="(1)">タイトル</div> <div id="(2)">説明文</div> <div id="(1)">ホームに戻る</div> </body> <表示のされ方> (1)は正常に表示されているのですが、(2)にはCSS自体が適用されていないのです。 ちなみにIE9では私の思うように表示されるのですが、IE10になって表示されなくなりました。 なぜこのようになったか、お教えいただけますでしょうか。よろしくお願いいたします。

    • 締切済み
    • CSS
  • htmlで成形したフォームにPHPを組み込むとテキストがおかしくなります

    検索仕方が下手なせいなのか思った回答が探せませんでした。 それでお恥ずかしいのですが、皆さまのお力をお借りしたいと思います。 htmlでフォームを作った後、プログラマーさんがPHPを組み込んだのですが、その際IE6(7では確認してません)で<input>タグに囲まれていないテキストがおかしな表示になります。 おかしなというのは<input type="text">で表示された部分の幅と同じくらいの幅でテキストが折り返してしまうという状態です。 ↓このような状態です -------------     | テキストボックス      |  -------------    あいうえおかきくけこさしすせ そたちつてとなにぬねのはひふ へほ SafariやFirefoxではちゃんとほどよい幅で折り返してます。 ↓Safari・Firefox -------------     | テキストボックス      |  -------------    あいうえおかきくけこさしすせそたちつてとなにぬねの はひふへほ htmlの組み方がおかしいからだとプログラマーさんから修正依頼をされましたが普通にhtmlで作成しただけで特に特殊なことをした訳ではありません。 強いて言う変化といえばテーブルを使わずにデザインしてあったものをプログラマーさんがテーブルタグの中にそれらを入れてしまったことでしょうか。 プログラムを使ったフォームは初めて扱うのでよく分かりません。 みなさま対処方法をお教えください。よろしくお願いします。

    • ベストアンサー
    • HTML
  • ブラウザ間でのdiv幅の違い

    次のようなdivの入れ子を作ったのですが、 IEとFirefoxで大きさが違って表示されてしまいます。 FirefoxでもIEと同じ幅、同じ見ためで表示させるには 何をどのように指定してやれば良いでしょうか。 よろしくお願いします。 <html> <head> <style type="text/css"> <!-- .blue {width:200px; padding:10px; background-color:#0000ff;} .green {width:180px; padding:5px; background-color :#00ff00;} --> </style> </head> <body>  <div class="blue">   <div class="green">ここが180px</div>  </div> </body> </html>

  • リンクで違うページの指定箇所へ飛ばそうとしています。

    リンクで違うページの指定箇所へ飛ばそうとしています。 IEやsafariでは問題なく指定箇所に飛ぶのですが、 Firefoxだと何故か指定箇所ではなく、そのページの一番下に飛んでいきます。 IEは6、7、8 safariは4.0.2で、 Firefoxは3.6.6を使用しています。 Firefoxのバグなのでしょうか? (同じページ内の指定箇所だとちゃんと飛びます) 急ぎの為大変困っております。 ご回答お願い致します。 HTML-------------------------------------------------------------- <a href="http://~~~/●●.html#abc" /> 飛ばしたい場所 <div id="abc"> <img src="画像URL" border="0" alt="" /> </div>

  • div内のテキストと画像の配置について

    お世話になります。 現在CSSを勉強中なのですが、参考サイトを見てテーブルを使わずにdivとC SSで同じようなレイアウトが可能と知り、試してみたのですが、div内に配 置したテキストや画像の表示が思い通りになりません。 ソースは以下のような形です。 【HTMLの内容】 <div class="main"> <div class="main-menu">一行目テキスト<br />二行目テキスト</div> <div class="main-content"><img src="xxx.jpg"></div> </div> 【CSSの内容】 div.main { width: 500px; } div.main-menu { float: left; width: 300px; } div.main-content { float: left; } 上記に、以下の指定を追加したいと考えています。 1)main-menu内の「二行目テキスト」だけを右寄せにする。 2)main-content内の画像が常に縦位置の中央に表示されるようにする。 (main-menu内のテキストが複数行になり、divの縦幅が大きくなった場合に 画像も縦幅に合わせ中央に表示したいです。) この場合、どのような方法があるでしょうか? 勉強不足で大変恐縮ですが、よろしくお願いします。

    • ベストアンサー
    • HTML
  • DIVタグについて

    DIVタグのstyleで二つの画像を左右の端に標示することは可能でしょうか? floatでleftを指定すると当然、二つの画像が左端に寄ってしまいました。 DIVのwidthで指定した幅の左右に標示させたいんです。

  • div要素を綺麗に並べたいのですが困っています。

    CSSのレイアウトで困っています。 現在ショッピングサイトを作っているのですがCSSの表示で困っています。 item_boxというdiv要素の中に更にitem_aというdivタグで包んだ商品写真とテキストのBOXをfloatで左に回りこみ させ横3列に並べています。 1段目だけなら表示に問題ないのですが2段目以降になると1段目の商品BOXの高さによっては横一列に綺麗に並びません。 何か良い解決策は無いでしょうか? item_aにheightを指定すればいいのですが文字数によってはテキストが切れたり、または下に空洞が空きすぎたりするのでheight指定は避けたいです。

    • 締切済み
    • CSS
  • div要素を綺麗に並べたいのですが困っています。

    CSSのレイアウトで困っています。 現在ショッピングサイトを作っているのですがCSSの表示で困っています。 item_boxというdiv要素の中に更にitem_aというdivタグで包んだ商品写真とテキストのBOXをfloatで左に回りこみ させ横3列に並べています。 1段目だけなら表示に問題ないのですが2段目以降になると1段目の商品BOXの高さによっては横一列に綺麗に並びません。 何か良い解決策は無いでしょうか? item_aにheightを指定すればいいのですが文字数によってはテキストが切れたり、または下に空洞が空きすぎたりするのでheight指定は避けたいです。

    • 締切済み
    • CSS