ガレコレ
Garage Collection
 
2019年8月22日(木)
半角スペースの処理 #■子猫の手

 子猫の手sysにおいて、半角スペースを に置き換えています。HTMLでは、半角スペースを何個繋げても、1個として表示するからです。

 パソコンでは等幅半角スペースとして表示されるのですが、スマホではプロポーショナルフォントで表示される為、幅狭いスペースで表示されていました。

 何年待てどスマホで等幅日本語フォントを用意してくれませんが、最新のスマホでは、半角スペースに関しては、 を1/2全角スペースで表示してくれるようです。

--
×iPhone
 
5c:
 
iOS10.3.3
○iPhone
 
XS
 
Max:
 
iOS.12.4
--

 そして、いつの間にか、ブラウザの方でも、style="display:inline-block;"が問題無く使用できるようになっていました。

 ガレコレHPにおいて、インラインブロック方式で表示してみました。すべてのデバイスで、きちんと等幅半角スペースで表示されています。古いスマホが消えるまでの、応急処置です。

-- インラインブロック方式
<style>
.space {
  display:inline-block;
  width:0.5em;
}
</style>

<div class="space">&nbsp;</div>
--

  ┃全角スペースx2
 
 
 ┃半角スペースx2+全角スペースx1
 
 
 
 
┃半角スペースx4

【元】
半角スペース→&nbsp; // 子猫の手sys

【応急処置】
半角スペース→&nbsp; // 子猫の手sys
&nbsp;→<div class="space">&nbsp;</div> // 公開ページ

【将来】元に戻す
半角スペース→&nbsp; // 子猫の手sys


 つまり、『子猫の手』に限らず、ホームページ作成において、等幅半角スペースを1/2全角スペースで表示したい場合、古いスマホにも対応するには『インラインブロック方式』を使用して、古いスマホを切り捨てれば『&nbsp;』で良いということです。


P.S.
 
分かってしまえば簡単なことでしたが、子猫の手sysにおいて、ブログの編集の際、テキストを&nbsp;→半角スペースに戻していないバグがあり、複雑怪奇な現象になっていました。このバグも修正しました。


P.S.2
 
等幅フォント名('Courier
 
New'など)を指定すると、半角文字の幅は揃いますが、全角文字の1/2幅より広くなります。また、○などが半角文字として扱われたり、意図した使い方ができません。なので、『子猫の手』では、family-font:monospace;
 
だけ指定しています。
https://neconote.jp/prg/monospaced_font.html


P.S.3
 
一部のデバイスで、コピー&ペーストすると、一部のアプリで半角スペースが消える現象が起きていました。<div></div>内に、&nbsp;を入れることで解決しました。

○<div class="space">&nbsp;</div>
×<div class="space">
 
</div>
×<div class="space"></div>
 
お問い合わせ

Warning: pg_query(): Query failed: ERROR: duplicate key value violates unique constraint "gc_counter_pkey" in /home/vps100824749/public_html/index.php on line 1313

Warning: pg_affected_rows() expects parameter 1 to be resource, boolean given in /home/vps100824749/public_html/index.php on line 1314
error: insert into counter