このツールの動作
読みやすい HTML が、同じように表示される最小の HTML になります。
<div>
<p> こんにちは </p>
</div>
<div><p> こんにちは </p></div>
続いた空白はひとつになり、ブロック要素のあいだの空白は落ち、コメントも落ちます。条件付きのものは別です。読み手への覚え書きではなく、古いブラウザーへの指示だからです。
行内要素のあいだの空白は内容
<span>a</span> <span>b</span>
<span>a</span> <span>b</span>
ここに取り除くものはありません。この空白は表示され、消せば「a b」が「ab」になります。以前は消していました。小さくするどころか、ページを変えていたわけです。本物の欠陥で、このページを書く過程で見つけ、直しました。ブロック要素のまわりでは、同じ空白は表示に現れないので落とします。
<div>a</div> <div>b</div>
<div>a</div><div>b</div>
属性の値は体裁ではない
<input value="a b">
<input value="a b">
空白は二つのまま残ります。以前はひとつにまとめられていました。空白をまとめる処理が属性の中まで通っていたからです。フォームが送る値、title の文言、alt の中身はデータであって、字下げではありません。引用符で囲まれた値は、まとめる前に脇へ置き、手を触れずに戻します。
けっして踏み込まないもの
<pre>と<textarea>。 書かれたとおりに表示され、送信されます。<script>と<style>。 中身は JavaScript と CSS です。それぞれの圧縮ツールはこの場所に別に用意してあり、かけるかどうかはあなたの判断であって、こちらの副作用ではありません。- 条件付きコメント。
<!--[if IE]>…<![endif]-->はブラウザーが読むので残します。
知っておくとよい限界がひとつ。守られた区域は、模様で見つけた閉じタグで終わります。JavaScript の文字列の中に書かれた </script> は、したがって区域を早く閉じてしまいます。その場合まで正しく扱うには、本物の HTML 解析器が要ります。空白を落とす道具とは別のものです。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。