owned mediaウェブ制作に役立つコンテンツを発信中!

DOMに空白のテキストノードができる時に確認すること

最終更新日: Update!!
HTMLコーディングをしている時にブラウザで確認すると、要素の間に謎の空白ができているのに気づいた経験はありますか?これらはソースコード内に改行やスペース、タブなどが含まれていることが原因となる場合もあるのですが、それが当てはまらないケースもあります。そんな時に確認すべき点をまとめていきます。  
エンコードが「UTF-8 BOM付き」になっている
ブラウザ上で要素の間に空白が発生しており、ソースコードを見ても問題が見当たらない、、そんな時にはブラウザのデベロッパーツールを開いて検証してみましょう。そうすると空白の部分に「」と謎のコードが表示されているのが確認できます。
…</main>
<!-- main end -->

"
&#65279;   "   ←このコード

<footer>…
  どうやらこのコードが空白の原因のようです。調べてみるとこのコードは「ゼロ幅ノーブレークスペース」というものを表しているようなのですが、別の意味も併せ持つようです。その別の意味が「バイトオーダーマーク」(BOM)というものです。   このバイトオーダーマークはUnicodeの文字列であることを示す符号で、BOMと呼ばれたり表記されたりする場合もあります。UTF-8やUTF-16などのテキストエンコーディングに用いられており、種類によって数バイトほどのバイト列を持っています。このBOMは文字としては見えないものになりますので、エディタのソースコード上では確認することができません。プログラミングをする上では、このBOMが原因となり文字化けやバグが起こったりしますので注意が必要です。   そんなBOMですが、エディタによってはUTF-8の文字コードを指定した時に自動的に付与されるものもあるようなので注意しましょう。ですので、文字のエンコーディングには「BOMなしのUTF-8」を指定するようにします。このような問題が発生する場合には、一度文字のエンコーディングを確認してBOMが付いていないかどうかをチェックしましょう。   DOMに空白のテキストノードができる時に確認すること  
  普段はほとんど耳にしないような言葉ですが、知らないと思わぬところで時間を取られたりするので是非覚えておきたいところですね。
  • はてなブックマーク
  • Pocket
  • Linkedin
  • Feedly

この記事を書いた人

Twitter

sponserd

    keyword search

    recent posts

    • Twitter
    • Github
    contact usscroll to top
      • Facebook
      • Twitter
      • Github
      • Instagram