CSS の圧縮と整形
Web処理はすべてブラウザ内で完結します。データは送信されません
CSS を 1 行に圧縮したり、読みやすい複数行に整え直したりできます。規則・宣言・セレクターの数、圧縮前後のバイト数と削減率も表示します。小さな文字単位のスキャナーで処理し、正規表現で乱暴に削りません —— `content: "}"` の波括弧、`url("a;b.png")` のセミコロン、`[data-x="a,b"]` のカンマを構造記号と誤認しません。圧縮時、最後の宣言の後のセミコロンは既定で削除され、残すこともできます。コメントも削除・保持を選べます(`/*!` のライセンス表記は常に残します)。すべてブラウザー内で完結します。
機能
- 3 つのモード:圧縮・整形・統計のみ
- 整形モードのインデントは 2 スペース・4 スペース・タブから選択
- 規則・宣言・セレクターの数を集計
- 圧縮前後のバイト数と削減率を表示
- 最後の宣言の後のセミコロンを残すか削除するか選択
- コメントを削除可能。`/*!` のライセンス表記は常に保持
- 文字列・コメント・url()・角括弧の中の `{};:,` は変更しない
- `a :hover` と `a:hover` の違いを正しく保持
- 全体をコピーすることも、統計を 1 行ずつコピーすることもできます
使い方
- CSS を入力欄に貼り付けるかドロップします
- モードを選び、必要に応じてインデント・セミコロン・コメントを調整します
- 処理結果と統計が入力に合わせて更新されます
- 処理後の CSS をコピーするか、数値を 1 行ずつ取り出します
よくある質問
- 正規表現で圧縮しないのはなぜですか?
- CSS では `{};:,` が構造ではなくデータであることが多いためです。`content: "}"` の波括弧は文字列の中身、`url(a;b.png)` のセミコロンは URL の一部、`[data-x="a,b"]` のカンマはセレクターの中にあります。正規表現ではこれらを切り分けてしまい、見た目は正常なのに意味が変わったスタイルシートが出来上がります。しかも多くの場合は解析自体は通るため、誤りは描画の乱れとしてしか現れません。そこで文字単位のスキャナーを使っています。
- 「統計のみ」では圧縮後の CSS を計算していないのですか?
- 計算しています。バイト数と削減率はどちらも圧縮後の結果から算出し、その CSS を表示しないだけです。どれだけ削減できるかだけを確かめたいときに、びっしりした出力を見ずに済みます。
- コメントを削除するとライセンス表記も消えますか?
- いいえ。`/*!` で始まるコメントはライセンス表記として残すのが業界の慣例で、「コメントを削除」の有無にかかわらず保持します。
- CSS はアップロードされますか?
- いいえ。分割・圧縮・集計はすべてブラウザー内で実行し、ページは一切要求を送りません。
関連ツール
CSS 整形
整形CSS をオンラインで整形・圧縮:ルールブロックを展開し、宣言は1行ずつ、セレクタのリストは1項目ずつ改行。圧縮は構造上の空白だけを削除します。
CSS 単位換算
変換CSS の長さを px・rem・em・vw・vh・vmin・vmax・pt・in・cm・mm で相互換算。ルート文字サイズとビューポートを調整でき、各行が何を基準にしたかを明記します。
HTML 整形
整形HTML をオンラインで整形・圧縮:タグの階層ごとにインデントし、テキストとインライン要素は同じ行のまま。script と pre の中身はそのまま保持します。
URL 解析
WebURL を解析し、スキーム・ホスト・ポート・パス・クエリパラメータ・アンカーに分解します。パラメータは元の値とデコード値を並記。すべてブラウザ内で処理します。
UA 解析
WebUser-Agent を解析し、ブラウザ・バージョン・OS・デバイス種別・エンジンを判定します。判定はパターン照合による概算です。すべてブラウザ内で処理します。
HTTP ステータスコード
WebHTTP ステータスコードの検索。番号から意味を、キーワードから番号を引けます。1xx〜5xx の分類・利用場面・確認のポイント付き。すべてブラウザ内で処理します。