• ベストアンサー

&nbspで空白を入れたいのですが、文字間隔がおかしい

htmlで文字列を整形したいです。 12345,67890 12345<5文字空白>67890 というような感じです。 で&nbsp;というのがあるということで 12345&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;67890 としてみました。 ところが&nbspを5個いれても5文字にならないようです。 ためしに以下のようにやってみました。 123456789<br> 1&nbsp;&nbsp;456789<br> やっぱり変です。&nbspは半角の半分???なのでしょうか。 半角の空白を決めた数入れる方法を、ほかの方法でも良いので教えてください。

  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

等幅のフォントを指定する必要があります。 例えば <div style="font-family:monospace"> 123456789<br> 1&nbsp;&nbsp;456789<br> </div> とかしてみて下さい。

azicyan
質問者

お礼

わざわざ具体例をありがとうございます。

その他の回答 (2)

noname#22222
noname#22222
回答No.3

全角ブランクを使えばある程度はカバーできますが、奇数バイトですと半角ブランクが1個入るますので多少狭くまります。完全に制御するには、No1さんの言われるように非プロポーショナル文字(MS ゴジック、MS 明朝)を使うか文書整形機能を使うしかありません。

azicyan
質問者

お礼

回答ありがとうございます。 文書整形というとテーブル化何かで、ということでしょうか。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

ちゃんと空白文字は入っています。 ただ、フォントによっては文字に応じて幅を変えるので、思うように表示されないのです。 日本語だと、頭にPのつくフォントがそうなので、それ以外のフォントを指定してみてください。 検索キーワード:プロポーショナルフォント

azicyan
質問者

お礼

フォントを変えないといけないんですね。 そこのところが変更OKかどうかわからないのですが、 とりあえず理由がわかりました。 ありがとうございます。

関連するQ&A

  • 「半角スペース」と「&nbsp;」の違い、を教えて

    「半角スペース」と「&nbsp;」の違い、を知りたいです。 ■背景 ・HTMLを秀丸エディタに貼ったりすると、「半角スペース」と「&nbsp;」を別認識します ・「&nbsp;」があると、色々不都合があるので、認識しやすいようにしたいです ・具体的には、「半角スペース」は目立つのでいいのですが、「&nbsp;」は分かりにくいので、これを目立たせたいです ■疑問 ・「半角スペース」と「&nbsp;」の違い、は何ですか? ・「改行されない空白文字」? ・「HTMLで使用可能な文字参照」てことは、HTMLではないのでしょうか? ・HTMLだとしたら、秀丸エディタとかにコピーした際、認識されるのはおかしいと思うのですが ■今の認識 ・HTMLで利用可能な「改行されない空白文字」 ・コピーされると認識されるので、HTMLではない ・だけど、「半角スペース」とも「全角スペース」とも違う ・??? ・もしかして「空白文字」と「スペース」は違う意味??

  • 文字間の空白(スペース)の使い方について

    HTMLで文字と文字の間にスペースを入れたい場合、どのようにするのが一般的なのか教えて頂けますでしょうか。 (初心者なのですみません・・・) (例)「あ」と「い」の間にスペースを入れたい場合。 (1)「&nbsp;」で空白を作る。 <p>あ&nbsp;い</p> (2)半角スペースキーで空白を作る。 <p>あ い</p> (1)、(2)はどちらでも良いのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • HTML
  • HTML &nbsp; の繰返し法???

    HTML文で文字列の左側に空白を入れたい時には &nbsp; を使用しています 短い空白なら数回 &nbsp; を連続して記入すれば良いのですが、例えば全角空白10ケの際には &nbsp;&nbsp;&nbsp;~&nbsp;&nbsp; と20回も書かなくてはなりません リストの外見上もブザマですし、メンテの面からも好ましくありません &nbsp; を繰り返す文法表現はありませんか? また何らかの代替表現はありませんか? 色々調べましたが分かりません、ぜひ教えてください、お願い致します

    • ベストアンサー
    • HTML
  • HTMLで空白を入れるには?

    HTMLの勉強をしております。 文字と文字の間に「空白」を入れる場合は、「&nbsp;」を書き込んだほうが良いのでしょうか? それとも、全角や半角の「スペースキー」を、上手に使い分けたほうが良いのでしょうか?

  • 秀丸を利用して、空白から空白の間で、正規表現を使う

    秀丸を利用して、空白から空白の間で、正規表現を使いたいのですが、 やりかたが分かりません。 ^半角スペース.+?半角スペース と思ったのですが、違いました。 正規表現を使いたいところは、 こんな感じになってます。 謎の空白 半角空白 文字列 謎の空白 半角空白 (行頭からここの文字列の前だけ切りたい)  謎の空白 半角空白 文字列 謎の空白 半角空白 (行頭からここの文字列の前だけ切りたい)          : てっきり、全角空白かと思い、記号表示させてみたけど、違いました。 次に、タブかな、と思い、記号表示させてみたけど、違いました。 空白って、全角と半角とタブしか思いつかないのですが、 それ以外に何かあるのでしょうか? また、それは、正規表現で、どう扱うのでしょうか?

  • 連続した空白を入れたい時は<pre>と&nbsp;

    連続した空白を入れたい時は<pre>と&nbsp; こんにちは、サンタと申します。 連続した空白を入れたい時は<pre>と&nbsp;は、どのようにして挿入することが、適宜なのでしょうか? ソースですが、ul,listタグを使用して、2列にしております。 りんご□□□□□\50 メロン \10 ぶどう□□□□\3000 ミカン \10000 最後の「0」を揃えたいと思います。 ご覧のとおり、りんごと葡萄と比べましたら半角2つ分、りんごの方が空白が多いです。 こういう時に、 &nbsp;&nbsp;などと、&nbsp;の連続はしても宜しいのでしょうか? または、 <pre></pre>タグを使用したほうが良いのでしょうか? ソースですが、ul,listタグを使用して、2列にしております。 宜しくお願い致します。 xhtml -------------------------- <ul> <li>りんご/&yen30</li> <li>メロン/&yen;10</li> <li>ぶどう/&yen;3000 </li> <li>みかん/&yen;10000</li> </ul> ---------------------------- css ---------------------------- #con_main ul { font-size:90%; margin-left:10px; padding: 0; width: 350px; float:left; list-style: none outside; text-align:left; } #con_main ul li { margin: 0; padding: 0; float: left; width:174px; }

    • ベストアンサー
    • CSS
  • 半角スペース&nbsp;の文字化けに対処したい

    普段半角スペースを&nbsp;にしています PHP(初心者です)で&nbsp;を使うと文字化けしてしまいます \をいろんなところに入れてみたのですが、うまくいきません 文字化けを回避する方法はありませんか? 「 」だと2つ以上連続したら読んでもらえないので困ってます

    • 締切済み
    • PHP
  • 文字の最後に半角空白が勝手に入ってしまう

    こんにちは 文字の最後に半角の空白が勝手に入っていることに気が付きました。 例えば <html> こんにちは </html> ごく簡単なHTMLですが、これをブラウザで見てみると こんにちは ←ここに半角空白が入力されてしまっているのです。 そこで質問させていただきます。   1、この半角空白はなぜ入力されてしまうのか?   2、この半角空白を無くすにはどうすればよいのか? どなたかご存知の方、よろしくお願い致します。

    • ベストアンサー
    • HTML
  • 文字列前後の「全角空白/半角空白/改行文字」を取り除く

    PHPで、「文字列の前後に付加されている全角空白/半角空白/改行文字を取り除く」 という処理をしたいのですが、以下のように置換処理を書くとうまくいきません。 $after = preg_replace('/^[  \r\n]*(.*)[  \r\n]*$/u', '$1', $before); // [  \r\n]→[半角空白、全角空白、改行文字]です どううまくいかないのかといいますと、入力として半角スペース+全角文字が入ったときに、全角文字の先頭文字が文字化けしてしまいます。 たとえば、 <半角スペース>あああ をこれにかけると、 <よくわからない文字>ああ となります。 以下のように2回に分けてみると、正常に動きます。 $tmp = preg_replace('/[  \r\n]*$/u', '', $before); $after = preg_replace('/^[  \r\n]*/u', '', $tmp); 最初のように1回の正規表現による置換で済ませたい場合、 どのように書くのが適切なのでしょうか? PHPのバージョンは5.2.3です。

    • ベストアンサー
    • PHP
  • 一文字づつ<br>を入れる方法はありますか?

    文字を縦に表示したいのですが、HTMLで縦に表示するのは難しそうなので、一文字づつ<br>を入れようと思います。 全角半角が混じった任意の文字列に1文字ずつ <br>を入れる方法はありますでしょうか? <? $midashi = "縦書きFont"; ?> ■期待する出力 縦<br>書<br>き<br>F<br>o<br>n<br>t

    • ベストアンサー
    • PHP

専門家に質問してみよう