dポイントプレゼントキャンペーン実施中!

いつもお世話になっております。
blue-horseと申します。

テーブル内の文字列に半角ハイフンがあるのですが、
そこで強制的に改行されてしまいます。
これを回避する方法として以下の方法を試しました。

環境:
OS:WindowsXP Professional SP2
ブラウザ:Internet Explorer 6.0

1)CSS white-space:nowrap; -> ×
2)実態参照 - -> ×
3)実態参照 ­ -> ×
4)<pre>タグ -> 成功(※)
5)<nobr>タグ -> 成功

<pre>タグは改行は抑制できたのですが、フォントサイズが指定と変わってしまいました。
<nobr>タグが最も要求に近いのですが、HTMLが見難くなります。

出来ればCSSで解決したいのですが、手段はありませんでしょうか。

A 回答 (2件)

<nobr>タグと</nobr>タグで挟まれた範囲内に<wbr>を入れることで改行制御します。


テーブル内で使用した事は無いですが。
<nobr>は、見栄えを定義するタグとして、HTML4.0 には採用されませんでした。
<pre> (整形済みテキスト) を下記のように指定して使用したら
pre {margin:0;font:xxpx/1xx% "MS 明朝",serif;} font指定は Safariの対策です
ゴシックを使用する場合「MS ゴシック」かな

参考URL:http://www.tohoho-web.com/html/nobr.htm
    • good
    • 0
この回答へのお礼

k0021様:
ありがとうございます。
お礼遅くなりまして申し訳ございません。

やはり<pre>タグになるんですね。
<td>タグ内に入れ子で<pre>が大量に入ることになるので、
ソースが見難くなって嫌だったのですが。orz

さもなくばJavaScriptで動的にセル幅指定させるぐらいでしょうか。

お礼日時:2009/11/03 08:46

OS,ブラウザが違うので確認はできないのですが、


禁則処理,改行のCSSなど、試してみる価値はあるんじゃないでしょうか。

word-break:
normal; ……英文のみ単語の切れ目で改行(既定値)
break-all;……英文も和文も単語の途中でも改行
keep-all;……英文も和文も単語の切れ目で改行

単語の途切れ目として[-]が認識されているようならば、
break-allで、単語の途中でも改行にすれば、
ハイフンで改行されることはないのではないか、という推測です。

また改行自体を抑えたいのであれば、以下のようなCSSもあります。
word-wrap:
normal; 単語の途中で改行しない。(表示幅を広げる)
break-word; 単語の途中でも改行する。

参考URL
http://www.htmq.com/style/word-break.shtml
http://builder.japan.zdnet.com/sp/css-firefox-sa …
    • good
    • 0
この回答へのお礼

syagain 様:
ご回答ありがとうございます。

提示頂いた方法を試してみましたが、残念ながら駄目でした。(T-T)
1)word-break:normal; -> ×
2)word-break:break-all; -> ×
3)word-break:keep-all; -> ×
4)word-wrap:normal; -> ×
5)word-wrap:break-word; -> ×
6)white-space:nowrap; + 上記1~5の同時適用 -> ×

現在のところ<td>のwidth値を明示的に指定することで回避しています。
が、この場合、内容によって幅を可変としたい場合に不便です。

引き続き良案ございましたら、回答を頂きたく思います。
以上、失礼いたします。m(_ _)m

お礼日時:2009/10/29 10:25

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