• 締切済み

テーブル内のハイフンで改行させない方法(CSS)

いつもお世話になっております。 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で解決したいのですが、手段はありませんでしょうか。

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

みんなの回答

  • k0021
  • ベストアンサー率26% (32/120)
回答No.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
blue-horse
質問者

お礼

k0021様: ありがとうございます。 お礼遅くなりまして申し訳ございません。 やはり<pre>タグになるんですね。 <td>タグ内に入れ子で<pre>が大量に入ることになるので、 ソースが見難くなって嫌だったのですが。orz さもなくばJavaScriptで動的にセル幅指定させるぐらいでしょうか。

  • syagain
  • ベストアンサー率54% (42/77)
回答No.1

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-safari/story/0,3800083423,20382786-2,00.htm

blue-horse
質問者

お礼

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

関連するQ&A

  • CSSのwhite-spaceプロパティについて

    CSSのwhite-spaceプロパティの意味がわかりません。まず、「半角空白、改行、タブ...msmssatさん CSSのwhite-spaceプロパティの意味がわかりません。まず、「半角空白、改行、タブ」という言葉が出てきますが「タブ」とはなんなのかがわかりません。 そしてwhite-spaceプロパティには、normal,pre,nowrapと3つの値があるようですが、その違いが何なのかがわかりません。 ネット上で調べたのですが、どのような違いがあるのかがわからないのです。 CSS初心者です。 是非、お知恵を頂きたいと思っております。わかりやすくご説明をお願いします。 なお、Webクリエイター上級試験の勉強を独学でしております。 そのために、ご協力ください。 大変恐縮ですが、よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • 自動改行無し、スペースまとめも無し。

    テキストと罫線のみで以下のようなツリー構造の表を作ろうとしています (アンダーバーの部分は本来はスペース) ○○○○━┳━○○○━┳━○○○○○ _____┃_____┗━○○○○ _____┃ _____┗━○○○━┳━○○○○○ ___________┣━○○○○ ___________┗━○○○○ 本来はもっと規模の大きなものなのですが簡略化しました。 問題にしているのはウィンドウ端とスペースの処理です。 CSSを調べたのですが、『white-space:nowrap』では自動改行しない代わりにスペースはまとめられてしまいます。 自動改行なし、スペースはまとまらない、と両者を同時に成立させるにはHTMLやCSSをどう記述すると良いのでしょうか? ちなみに、自分で見るためだけに使う仮のファイルなので、ソースの美しさなどは特に気にしません。 また<pre>タグは罫線同士の間に隙間が空いてしまうので使いたくありません。

    • ベストアンサー
    • HTML
  • html上で改行するとスペースが空く現象

    <p> あああ いいい </p> とhtmlに書くとブラウザでは『あああ(半角スペース)いいい』となります。 改行を入れなければ問題ないのですがあまりにもテキストが長い場合など可読性を 考慮すると改行を入れたくなります。 bodyにwhite-space: nowrap;を指定すると<br />も無視されてしまうので困っているのですが 半角スペースをなくするにはどのように対処すればいいでしょうか?

    • ベストアンサー
    • HTML
  • <pre>で折り返させる方法を教えてください(firefox)

    表示枠に収まらない改行が入っていない長い文字列を<pre>タグで表示させると、IEでは表示枠の横幅で折り返して表示してくれるのですが、firefoxだと折り返して表示してくれません。 firefoxでも正常に折り返して表示させる方法はないでしょうか? cssには以下のように書いています。 pre { white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; white-space: pre-wrap; word-wrap: break-word; }

    • ベストアンサー
    • HTML
  • 空白行について(できればCSS)

    こんにちは! デザイン上、どうしても2行分以上の空白行が欲しいときがあります。 現状でやってる方法としては<hr>タグの高さで調節か<pre>タグで間に改行を入れて誤魔化しています <br>タグの連続はいけないと言われました。これは改行タグであって空白行を作るものではないと CSS使ってて、これからなくなるタグなんかも排除しているところなので 間違いのない方法を知りたいのです。 そこで、2行分とか3行分とかの改行をする際に、他にどんな方法があるか教えてください! なんとなく今自分がやってる方法は自信がありません。

    • ベストアンサー
    • CSS
  • cssの改行!!!!!!!!!

    .tarminal{ margin: 18px; margin-right:20%; padding: 7px; border: 1px red dotted; background: black; color: #AAA; font-size: 8px; letter-spacing: 0.12em; line-height: 1.96; } 左から右への普通のテキストの話です。アラビア語ではないです。 これのボックスの右端で改行させたいです。 普通に書くと "/Boryumushadoukopi-/makkubukku/2013-08-18-000119" "/Boryumushadoukopi-/makkubukku/2013-08-25-124532" "/Boryumushadoukopi-/makkubukku/2013-09-01-001555" "/Boryumushadoukopi-/makkubukku/2013-09-16-013322" のようにきりに良いところで改行されてしまいます。 しかし、右側部分に余白が大きくできてしまいますので、 "/Boryumushadoukopi-/makkubukku/2013-08-18-000119" "/Boryumu shadoukopi-/makkubukku/2013-08-25-124532" "/Boryumushadoukopi -/makkubukku/2013-09-01-001555" "/Boryumushadoukopi-/makkubu kku/2013-09-16-013322" のよにワードラップを無視した見た目にしたいです。 " "ここを<span white-space: nowrap; >" "</span>みたいなので囲むとまた別のところで改行がでてしまいます。 手動で改行を入れる方法も考えたのですが、ブラウザごとにフォントが違ったりするとボックスからはみ出たりしそうで怖いです。 素敵な方法を教えてね☆

  • htmlの改行要素をできるだけ教えてください

    自分の知る、改行するhtmlタグは以下の2つ br div cssは display:block white-space このぐらいしか知りません 他にありますでしょうか?

    • ベストアンサー
    • HTML
  • このようなCSS指定はできますか?

    以下のようなスペース区切りの文字列があります。 これらを単語を途中で改行させず、単語の頭から改行させる CSSの指定方法はありますでしょうか? 単語をspanで囲みnowrapを使ったのですが、単語の途中で改行 されないかわりに画面からはみ出してしまいました。 どうかよろしくお願いいたします。 あああああ いいいいい ううううう えええええ

    • ベストアンサー
    • CSS
  • 横並びリストでの改行

    リストをcssでフロートで横並びにした場合の話ですが、 たとえば、項目が5つあって、liのwidthを指定せずに500pxのボックスの中に横並びにすると、5つの合計の幅が500pxでおさまる場合は問題ないのですが、おさまらない場合、IEで項目の途中で改行されてしまいます。 li { white-space: nowrap; } で改行させないようにすることはできるのですが、これだと、1項目の中身が500pxを超えてしまうような長文の場合、逆に突き抜けてしまい困っております。 何かよい方法があればご教授いただけると助かります。

    • 締切済み
    • CSS
  • IE8で</form>タグが改行されない方法ありますか?

    IE8だけ、<td></form>タグで改行されてしまうので・・ <td></form STYLE="MARGIN:0px;padding:0px; ">のように CSSを設定しましたが、改行されてしまいます。 IE8でも改行されない方法はあるでしょうか?

    • ベストアンサー
    • HTML

専門家に質問してみよう