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

その他プログラミング 2018.11.07

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

Tags: ,,

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に空白のテキストノードができる時に確認すること

 


 

普段はほとんど耳にしないような言葉ですが、知らないと思わぬところで時間を取られたりするので是非覚えておきたいところですね。

この記事を書いた人

オガワ シンヤ

合同会社デザインサプライ代表兼CEO / ディレクター・ウェブデザイナー・フロントエンドエンジニアをやっています。「ウェブとデザインでヒト・モノ・サービスを繋げ新しい価値を生み出す」をコンセプトに日々奮闘中!制作中はチョコレートが欠かせない三十路Webクリエイター。

  • Twitter

コメントフォーム

記事に関するご質問やご意見などありましたら下記のコメントフォームよりお気軽に投稿ください。なおメールアドレスは公開されませんのでご安心ください。

内容に問題なければ、お名前・ハンドルネームとメールアドレスを入力いただき、下記の「コメントを送信」ボタンを押してください。

CAPTCHA


この記事もよく読まれています

Scroll to Top
ご質問・ご相談はありませんか ?