CSSを少しでも軽くする10のワザ

CSSはWebページのデザインを決める重要なファイルです。

近年のリッチなWebデザインを実現するために、CSSも肥大化の一途をたどっています。そこで、普段私が使っているCSSを軽くするちょっとしたワザをいくつか紹介します。

CSSを小さくすることはブラウザの読み込み、解読速度が上がることが期待できます。またお客様に収めた後、ふとCSSを見たときに「ムダのないきれいなCSSだな~。さすがプロ!」と思ってもらえるときが・・・あるかも!?

1、0.xの指定を小数点以下のみにする

0.5em、0.5pt、0.33%などなど。0.いくつかの指定は良く現れます。先頭の0は付いていなくても正しく読み取られます。

ということで

 0.5em > .5em

と置換してしまいましょう。

置換コマンドで、置換対象に「0.」、置換後に「.」と打てば変換できます。

2、2行以上の改行を1つに

2行以上の改行を1行のみにすることで、また少し減らすことができます。

NetBeansでしたら

「編集」 –> 「置換」を開き
検索対象に「\n{2,}」
置換対象に「\n」

と入力し、左下の「正規表現」にチェックを入れて「全てを置換」します。これだけで2行以上の改行が1行になります。
(改行の置換はそれぞれのエディタでクセがあります。\nが$nだったりします。また不可能なエディタもありますのでご注意ください)

image

3、使っていないコメントを消す

最初は注意するためにコメントをしたが、いまは特に見ていない・・・というコメントはありませんか?

ムダなコメントは消してしまいましょう。
(ただし、後のメンテナンスで必要になりそうなコメントまで消さないように・・・)

4、サイズ指定など、同じ数値が4つ並んでいるものをまとめる

 margin: 3px 3px 3px 3px;

な~んてなっている部分はありませんか?

 margin: 3px;

とまとめましょう。

また、上下、左右で同じ数字がある場合もまとめられますね。

 margin: 1em 2em 1em 2em; > margin: 1em 2em;

5、色指定を見直す

#ffffff、#000000など同じ文字が6つの色指定は3文字にしても同じです。

 #ffffff > #fff

6、同じ意味の表現を何度も書いていないか見直す

これはチェックする時間がかかるので気づいたときだけやればいいと思います。

 body{
  margin: 10px 0 10px;
  background-color: #fff;
  margin-bottom: 10px;
 }

という感じで違う表現で同じことを書いてある部分はありませんか?

ひとつにまとまるように削除しましょう。

7、2つ以上の空白を1つに

空白が2つ以上無意味に打っていある部分がよく現れます。たとえばこんな部分。

 margin: 2px     3px  3px    4px;

これをひとつにまとめましょう。

置換コマンドで
 置換対象に「空白を2つ」
 置換後に「空白を1つ」
書けばOKです。ただしこれでは空白3つの部分は空白2つになってしまいますので何度か繰り返すと良いでしょう。

NetBeansでは検索対象に「_{2,}」(赤下線の部分はスペースです)、検索後に空白1つを打てば、2つ以上のスペースが一気に1つになります。

8、一気に設定できるCSS表現をなるべく使う

プロパティの多い項目はよくあります。たとえば「background」などですね。

 .a{
   background-image: url(aaa.png);
   background-position: 0 0;
   background-color: #aaa;
   background-repeat: repeat-x;
  }

なんてなっている部分はありませんか?

 .a{
   background: #aaa url(aaa.png) 0 0 repeat-x;
  }

とまとめることで大幅に文字を削減できます。

9、まったく同じ設定の項目をまとめる

このワザはCSSの適用範囲が変わってしまう場合があるのでむやみに行わないように注意してください。

なるべく近くのCSSのみをまとめるようにしてください。

たとえば

 .a{
   font-size: 10px;
   margin: 10px;
   }

 .b{
   font-size: 10px;
   margin: 10px;
   }

となっていた場合、

.a, .b{
   font-size: 10px;
   margin: 10px;
   }

とすることで同じ設定を与えることができます。

10、0em、0pxなどを0にする

0em、0px、0ptなど、0の数字に単位をつけていませんか?

これは「0」だけでOKです。

 margin: 0px; > margin: 0;

オマケ 1辺だけが違うボーダーの指定を変える

 .a{
   border-top: 1px solid #000;
   border-bottom: 1px solid #000;
   border-left: 1px solid #000;
   }

という右辺のみが不要なborder指定があった場合、以下のようにすることで減らせます。

 .a{
   border: 1px solid #000;  /* まず4辺すべてを指定 */
   border-right-width: 0;  /* 右辺のみを消去 */
   }

こんな風にまとめることができます。

いかがでしょうか?

私が普段使っている小技を紹介させていただきました。

もしあなたがさらに便利なワザをご存知でしたら、ぜひ下のコメント欄から教えてください!

お役に立てば幸いです。