• ベストアンサー

IEで<td>の全角を有効にする方法

tableの<td>の表示を全角4字で固定したいため、 例えば動物は動△物△(△は全角スペースです)としています。 firefoxなどでは想定した通りの表示になっていますが、 IEでは全角スペースも詰まって動△物と表示されてしまいます。 これを回避するにはCSSで指定するしかないのでしょうか。

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

>例えば動物は動△物△(△は全角スペースです)としています。  HTMLにおいては、決して・・もっとも行ってはならない手法です。目の見えない人の読み上げブラウザは、間を区切って読みます。検索エンジンにも意味が伝わりません。データの再利用が出来ません。 ★14.1 スタイルシートの概説 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/present/styles.html#h-14.1 ) ★構造とプレゼンテーションの分離 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.4.1 ) ★HTMLの略歴 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/intro/intro.html#h-2.2.1 ) などをよくお読みください。 [HTML] <table summary="td:justfy"> <tbody> <tr class="letter-spacing"> <th>letter-spacing</th> <td style="letter-spacing:1em;padding-left:1.5em;">動物</td><td style="letter-spacing:0.5em;padding-left:1em;">微生物</td><td style="letter-spacing:1em;padding-left:1.5em;">植物</td><td style="padding-left:0.5em;padding-right:0.2em">水生動物</td> </tr> <tr> <th>normal</th> <td>動物</td><td>微生物</td><td>植物</td><td>水生動物</td> </tr> </tbody> </table> {CSS} table{border-collapse:collapse;border:solid 1px gray;} th,td{border:solid 1px gray;} td{width:4.5em;} tr.letter-spacing td{padding:0;letter-spacing:0} なお、tdで使用するfont-familyをmonospaceに指定しておくと、良いかもしれません。

noname#147836
質問者

お礼

いつもご丁寧に有り難うございます。 以前に半角スペースはHTMLで特別の意味を持つと聞いたので、 そういう場合は全角にするものだとばかり思ってました・・・ 先方から全角スペース付きでデータが送られてきます。 widthで行うべきですか。ウーン、どうしよう。

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

その他の回答 (3)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

10進数での数値文字参照は、実体に置き換わるようなので <h2>等幅フォント</h2> <ul style="font-family:monospace;"> <li>Word Joiner       (&#x2060;■&#8288;■---) <li>Ideographic space    (&#x3000;■&#12288;■---) <li>Zero width no-break space(&#xfeff;■&#65279;■---) <li>en space         (&#x2002;■&#8194;■&ensp;) <li>em space         (&#x2003;■&#8195;■&emsp;) <li>thin space        (&#x2009;■&#8201;■&thinsp;) <li>zero width non-joiner  (&#x200c;■&#8204;■&zwnj;) <li>zero width joiner    (&#x200d;■&#8205;■&zwj;) <li>left-to-right mark    (&#x200e;■&#8206;■&lrm;) <li>right-to-left mark    (&#x200f;■&#8207;■&rlm;) </ul> <h2>プロポーショナルフォント</h2> <ul style="font-family:sans-serif"> <li>Word Joiner         (&#x2060;■&#8288;■---) <li>Ideographic space      (&#x3000;■&#12288;■---) <li>Zero width no-break space(&#xfeff;■&#65279;■---) <li>en space           (&#x2002;■&#8194;■&ensp;) <li>em space           (&#x2003;■&#8195;■&emsp;) <li>thin space          (&#x2009;■&#8201;■&thinsp;) <li>zero width non-joiner   (&#x200c;■&#8204;■&zwnj;) <li>zero width joiner      (&#x200d;■&#8205;■&zwj;) <li>left-to-right mark      (&#x200e;■&#8206;■&lrm;) <li>right-to-left mark      (&#x200f;■&#8207;■&rlm;) </ul>  これでおかしいなら、&を&に変換する。

全文を見る
すると、全ての回答が全文表示されます。
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.3

スペースの種類ですが、HTMLでは、空白文字は 【引用】____________ここから HTMLでは、次に挙げる文字だけが空白類文字であると定義される。 ・ASCIIスペース (&#x0020;) no-break space &nbsp; 折り返し禁止の空白 ・水平タブ (&#x0009;)     ・書式送り (&#x000C;)     ・ゼロ幅スペース (&#x200B;)  行区切り類もまた、空白類文字である。 ここで、&#x2028; 及び &#x2029; が[ISO10646]では行や段落を明確に分離するものと定義されているが、HTMLでは行区切り類に含まれないし、更に本仕様は両者を空白類文字一般にも含めないという点に、注意されたい。 本仕様は、ここに空白類文字と明示的に定めたもの以外のスペース文字類については、レンダリングその他の挙動を示すことはない。この理由から、著者は、空白類を含む視覚的整形効果を及ぼすためには、 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ スペース類文字ではなく適切な要素あるいはスタイル指定を行う必要がある。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで[9.1 空白類( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/text.html#h-9.1 )]より 上で言う「視覚的整形効果を及ぼすために使えないスペース類文字」とは下記のものです。 (数値文字参照16進 数値文字参照10進 文字実体参照)の順 ・Word Joiner        (&#x2060; ⁠ ---) ・Ideographic space     (&#x12288; &#x3000; ---) ・Zero width no-break space(#65279; &#xfeff; ---) ・en space         (&#x2002;   &ensp; ・em space         (&#x2003;   &emsp; ・thin space        (&#x2009;   &thinsp;) ・zero width non-joiner  (&#x200c; ‌ &zwnj;) ・zero width joiner    (&#x200d; ‍ &zwj;) ・left-to-right mark    (&#x200e; ‎ &lrm;) ・right-to-left mark    (&#x200f; &#8207 &rlm;)  よって&emsp;はMと同じ巾の空白と言うことですから、やはり文字の間隔調整には使えません。  これらの視覚効果は書きソースを表示してみると良いでしょう。 <h2>等幅フォント</h2> <ul style="font-family:monospace;"> <li>Word Joiner       (&#x2060;■⁠■---) <li>Ideographic space    (&#x3000;■ ■---) <li>Zero width no-break space(&#xfeff;■■---) <li>en space         (&#x2002;■ ■&ensp;) <li>em space         (&#x2003;■ ■&emsp;) <li>thin space        (&#x2009;■ ■&thinsp;) <li>zero width non-joiner  (&#x200c;■‌■&zwnj;) <li>zero width joiner    (&#x200d;■‍■&zwj;) <li>left-to-right mark    (&#x200e;■‎■&lrm;) <li>right-to-left mark    (&#x200f;■&#8207■&rlm;) </ul> <h2>プロポーショナルフォント</h2> <ul style="font-family:sans-serif"> <li>Word Joiner         (&#x2060;■⁠■---) <li>Ideographic space      (&#x3000;■ ■---) <li>Zero width no-break space(&#xfeff;■■---) <li>en space           (&#x2002;■ ■&ensp;) <li>em space           (&#x2003;■ ■&emsp;) <li>thin space          (&#x2009;■ ■&thinsp;) <li>zero width non-joiner   (&#x200c;■‌■&zwnj;) <li>zero width joiner      (&#x200d;■‍■&zwj;) <li>left-to-right mark      (&#x200e;■‎■&lrm;) <li>right-to-left mark      (&#x200f;■&#8207■&rlm;) </ul>

noname#147836
質問者

お礼

再度の詳しい回答有り難うございます。 前のお礼に書きましたがデータは向こうから送られてきます。 向こうの考え方では、列幅がだいたい全角4字分の長さで 確保されていればいいという考え方のようです。 見た目そこそこなら良しとしているようです。 widthで対処できましたから、そちらでやりますけど。

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

全角スペースの代わりに&emsp;ではダメでしょうか? HTMLにおいて、「英語や日本語などの文法で空白を意味する文字はいわゆる半角スペースと同じ扱いとする」という文書をどこか(W3Cサイト内)で見たことがあります。 これをそのまま実装するとブラウザのサポートが大変なことになると思いますので、実装していないブラウザの方が多いと思いますが。 &nbsp;を日本語文章の中で使用すると「日本語の文法」として間違うことになります。 AAや私的文書では問題ないと思いますが(私はそこまで文法に厳格ではありませんので)、 この文字(&nbsp;)は、アラビア語か何かの外国語で、空白が入る単語の空白部分を表現するための文字ですので、「二ュ一ス」(カタカナで「ニュース」と書くのではなく、漢数字の二、一を使用)とするような物です。 &emsp;をどこで使わなければならない文字かという記述が見当たらないため、おそらく全角スペースの代わりとして使っても、問題はないと思います。

noname#147836
質問者

お礼

ご回答どうもです。 &emsp;というのは初めて聞きました。 でも今回は使えそうにありません。 全角スペースにしたのはレイアウトを 均一にしようとした向こう側の判断です。 widthで解決できるみたいですから、 そちらで対処したいと思います。

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

関連するQ&A

  • ie7,8でのtdタグ(inline-block)

    下記のhtmlで表示されるのは 縦4×横4のテーブルになります。 <table> <tr><td>1</td><td>2</td><td>3</td><td>4</td></tr> <tr><td>5</td><td>6</td><td>7</td><td>8</td></tr> <tr><td>9</td><td>10</td><td>11</td><td>12</td></tr> <tr><td>13</td><td>14</td><td>15</td><td>16</td></tr> </table> このhtmlを変えずに縦16×横1に変更するcssを作成しています。 今の所cssは <style> table td{ width:50px; display: -moz-inline-stack;   display: inline-block;   zoom: 1;   *display: inline; } </style> この様に記載しています。 この場合だとchromeとfirefoxでは「縦16×横1」で表示されます。 ただIE7,8だと「縦4×横4」で表示されてしまいます。 どなたかIE7,8に対応できるcssが分かる方いませんでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • <tr>タグ、<td>タグ

    テーブルでレイアウトを行い、htmlで背景色・cssで文字のスタイルを適用する場合、<tr>タグと<td>タグのどちらに記述するのがよいのでしょうか。IEだと大差は無いようなのですが、firefoxやNetscapeで違いが出てくるように感じます(特にfirefox)。 (1)cssで文字スタイルの場合、<table>タグに<table class="text">といった感じで問題ないでしょうか(table内の文字すべてclassがtextの場合)。それともやはり<td>タグひとつひとつにクラス指定した方が良いのでしょうか。 (2)テーブルに背景色を指定する場合、<tr>タグ・<td>タグのどちらに指定するのが良いのでしょうか。

    • ベストアンサー
    • HTML
  • IEとFirefoxで表示が違う

    現在WEBサイトを制作しています。 フォームを挿入したのですが、IE(8)で表示すると<form>要素の上部に大きなスペースが空いてしまいます。Firefoxで表示すると問題ないです。 HTMLのフォーム付近は以下のような構成にしています。 <p>フォーム上部の文章</p> <form method="#" action="#"> <table> <tr><td>テキスト</td> <td><input type="text" name="#"></td></tr>   ・   ・ </table> </form> IEでは<p>の文章と<form>テーブルとの間に大きなスペース(約200px)ができてしまいます。 Firefoxではたまたまうまく処理されていて、間違った記述をしていると考えるべきでしょうか。 それとも、IEブラウザの不具合なのでしょうか。 このような症状についてご存知の方がいらっしゃいまいしたらごご教授いただけますようお願い申し上げます。

  • IE8でのバグ?

    IE8でのバグ? テーブル内に設置している <img src="../img/space.gif" width="100%" height="10" />が IE8だけ(mac/win safari,FireFox,IE7は確認)height="10"が20くらいになってしまうのですが どうすれば回避できますか?

    • ベストアンサー
    • HTML
  • 全角スペースを表示する方法

    XHTML、HTMLは全角のスペースを無視することがW3Cで決められていると、本で見ました。 全角スペースは&emsp;にしたのですが、Internet Explorer 6では、タイトルバーに題名(title)が表示されなくなり、Mozilla Firefox 1.5ではタブに全角スペースが?となり、うまく表示されません。 MSN JapanやSo-netのウェブサイトは全角スペースをそのまま入れていることは互換性上のことなのでしょうか。全角スペースを無視するウェブブラウザがあると書いてあったので、どっちにすればいいか困ります。なにかいい方法はないでしょうか。 ご回答お願いします。

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

    TDタグについて、お聞きしたい事があります。 td.td_data_left{ font-family: "MS 明朝"; font-size: 11pt; letter-spacing: -1pt; font-style: normal; color: #404040; background-color: #FFFFFF; text-align: left; } <td colspan="3" class="td_data_left" height="20">&nbsp;あ■■■■■■■■■■い</td> 記載しています。 ■は全角スペースです。 ”あ”と”い”の途中で折り返しが発生するのですが、 折り返しの始めの”い”の文字が先頭から表示されてしまいます。(全角スペースを認識せず) 本来は、 あ■■■■■ ■■■■■い と表示したいのですが、現状、 あ■■■■■ い■■■■■ となってしまいます。 どのように書けばいいのかを教えていただけないでしょうか。

    • ベストアンサー
    • HTML
  • IEで細い線

    こんにちはー。 cssでテーブルの線を細くするために こんな感じでやってみました。 クロームでは出来たのですが IE(バージョン9)で閲覧すると、線そのものが表示されません IEでも表示させるには、どーすればいいですか? ―――― <html> <head> <style type="text/css"> table[summary="WebDesign"]{ border-collapse: collapse; width: 400px; } table[summary="WebDesign"],table[summary="WebDesign"] td{ border:solid 1px #1C79C6; } </style> </head> <body> <table summary="WebDesign"><!-- summaryは必須 TBODY+ -->  <tbody><!-- tbodyはひとつ以上必須 -->   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>   <tr>    <td>Webデザイン</td>    <td>Webデザイン</td>   </tr>  </tbody> </table> </body> </html>

    • ベストアンサー
    • CSS
  • php 全角文字で改行される

    宜しくお願いします。 phpで作ったカレンダーで、 tableのtdの中に、 <?php print $year ; ?>年<?php print $month ; ?>月 を入れて、2009年12月8日と表示しているのですが、 IE6とIE7だけ、全角文字部分で改行されてしまいます。 2009 月 8 日 このような感じです。 全角英字も大丈夫でした。 だめなのは、数字だけです。 どうゆうことでしょうか? どなたか、何卒お願い致します。

    • ベストアンサー
    • PHP
  • firefox、IE8で異なるtableの上部空白

    以下サンプルをfirefox(20.0.1)、IE8で各々表示した場合に IE8では、表の上部に空白行が多くとられてしまいます。 ※複数回改行されているような表示。 以下はサンプルとして簡易にしましたが、 本来作成しているコードでは、対策として <meta http-equiv="X-UA-Compatible" content="IE=emulateIE7" />は記述してます。 変わりませんでしたが。。 IE8の仕様なのでしょうか? firefox等、他のブラウザに影響が波及しないよう対応したいと考えています、 何かいい方法はありますでしょうか? よろしくお願いします。 <html> <head> <style type="text/css"> @CHARSET "UTF-8"; *{ margin: 0; padding: 0; } table.table{ border-collapse: collapse; } table.table td{ border: 2px #808080 solid; } </style> <head> <body> <div class="main"> <div class="content">   <table class="table">    <tr>    <td>    <select> <option>&nbsp;</option> </select>    </td>    <td>    <select> <option>&nbsp;</option> </select>   </td> <td> <select> <option>&nbsp;</option> </select> </td> </tr> </table> </div> </div> </body> </html>

    • ベストアンサー
    • HTML
  • cssで指定した文字の大きさがIE6とIE7で違う

    cssでレイアウトを指定したサイトを作りました。 IE6、Opera9、Firefox2でうまく表示ができました(微妙にFirefoxだけ文字の大きさが小さいですが、ほぼレイアウトにあっています)。 が、先日IE7で確認するとフォントサイズが大きくなっていました。 cssではfont-sizeを、bodyが12px、各id、classはそれぞれ11px、10pxとしました。 IE7だと13pxくらいに見えてしまい、レイアウトをはみ出て表示されています。 IE7をIE6と同じフォントサイズにするにはどのように指定すればよいのでしょうか? ちなみに文字の大きさは固定でブラウザで大きさを変更できないようにしたいのです。 すみませんがよろしくお願いします。