CSSも軽量化の時代!コーダーが押さえるべきCSSコーディング5つのポイント
SassやLESSなどのCSSプリプロセッサーを使わずにCSSを書いているひとは未だに多いのではないでしょうか。
日常の業務でCSSを記述していると、どうしてもCSSはセレクタやプロパティの繰り返しが多くなってしまい、冗長になりがちです。
CSSだけでなく、あらゆる要素には軽量化が求められます。
ページ速度が遅くなれば、それだけ直帰率が多くなり、また検索エンジンもそのことをマイナスに評価して、結果的にページ全体のアクセス減につながってしまいます。
最近では、idセレクターやHTMLタグのセレクターを取り除く動きもあります。
効率よくCSSを書いていくには、どのようにして書いていけばいいのでしょうか。
今回は、コーダーが押さえるべきCSSコーディング5つのポイントをご紹介します。
シンプルに書くことを意識すれば、ファイル容量が軽量化するだけでなく、だれもが読みやすいファイルになります。
具体的にはどのような点を押さえればよいか見てみましょう。
コーダーが押さえるべきCSSコーディング5つのポイント
1. クラス名だけに徹する
15年も前は数ページほどしかないWebサイトを構築するだけで済んでいましたが、WordPressやMovableTypeのようなCSSを使って100ページ以上のHTMLファイルを(動的に生成するにせよ)扱わなければならないという場合も少なくないでしょう。
そうした場合に、HTMLタグとクラス名、そしてid名が混在しているCSSは、パーツが増えていくと、情報が混雑して何がなんだか分からなくなってしまいます。
そこで選択肢の一つに入れておきたいのは、クラス名だけに徹してスタイリングをするということです。
すなわち、複数の要素に適合されるHTMLタグや、1ページにたった1つにしか適用できないid属性は、思い切って省いてしまうということです。
例えば、次のようなCSSファイルとHTMLファイルがあるとします。
footer { }
input[type='text'] { }
h1 { }
.some-list ul { }
.some-list ul li { }
<footer></footer>
<input type="text" />
<h1></h1>
<div class="some-list">
<ul>
<li></li>
</ul>
</div>
これは、HTMLファイルにはあまり余計な設定がされておらず、綺麗に見えるかもしれませんが、セマンティックであるか(情報構造として分かりやすいか)といえば、そうではありません。
一方、これをクラス名だけに徹してみると、このようになります。
.footer { }
.text-input { }
.title { }
.some-list { }
.some-list--item { }
<footer class="footer"></footer>
<input class="text-input" type="text" />
<h1 class="title"></h1>
<ul class="some-list">
<li class="some-list--item"></li>
</ul>
class名を付したために、さきほどよりHTMLファイルが若干冗長に見えてしまうかもしれませんが、以前よりセマンティックになりました。
そして、CSSはクラス名に徹することで、ずいぶんすっきりと書くことができます。
タグとクラス名を混在させてしまうと、どちらを書けばいいのかを考えるのに結局時間がかかってしまうので、クラス名に徹して書くくとをおすすめします。
新しい要素を付け加えるときにも、これまで通り新しくクラス名を追加すればいいのです。
2. カテゴリごとに分ける
CSSファイルが長くなれば長くなるほど、情報が煩雑になって、素早く必要な情報が探せなくなってしまいます。
CSSの記述が短ければ問題ないのですが、サイトが巨大化すると、修正作業に時間や手間がかかってしまうのです。
そうしたCSSファイルの煩雑さを回避する上で最も簡単な方法は、カテゴリごとにCSSの記述を分け、クラス名で管理することです。
/ reset /
/ general /
/ typography /
/ header /
/ footer /
このようにコメントを上手に活用することで、全体のごちゃごちゃした構造をすっきりさせることができます。
3. 部品を共通化する
CSSの特性でもあり初心者がやってしまいがちなこととして、CSS全体で何度も同じようなコードを書いてしまうことです。
しかし、同じ内容を繰り返すのはファイルサイズが大きくなるだけでなく、かえって読みにくくなってしまうので、避けるべきです。
例えば、2つの異なるボックスをスタイリングしているとしましょう。
一見すると2種類のボックスを作成するのに最低限必要なコードのように見えますが、よく見ると文字色だけが違うだけであとは同じになっています。
.blueContents {
margin: 0 0 10px 10px;
border: 1px solid #eae8e9;
font-weight: bold;
color: blue;
}
.greenContents {
margin: 0 0 10px 10px;
border: 1px solid #eae8e9;
font-weight: bold;
color: green;
}
文字色以外は共通化できそうなので、共通部分と文字色部分に分割してみましょう。
.contents {
margin: 0 0 10px 10px;
border: 1px solid #eae8e9;
font-weight: bold;
color: blue;
}
.blue {
color: blue;
}
.green {
color: green;
}
共通でまとめられる部分は共通化し、同じコードを何度も繰り返すのを避けましょう。
これだけでも、ずいぶんすっきりと見やすいCSSへと変身します。
ちなみに、共通化したCSSはHTML側では以下のように実装します。
<div class="contents blue”>青文字のボックス</div>
<div class="contents green”>緑文字のボックス</div>
上記のコードのように、クラス名は複数実装が可能です。
その特性を活かして共通部分をできるだけ使いまわすと、ちょっとした飾りをつけるだけで似たようなコードを何度も繰り返してしまうのを防ぐことができます。
共通のコードをまとめておけば、汎用性も高まります。
汎用性が高まるということは、似たようなコードを何度も書く手間や行数を圧縮することにつながり、ソースコードの可読性向上や開発効率の向上につながっていくでしょう。
4. 同一プロパティを共通化する
次は、異なるセレクタで同じ設定のプロパティを含んでいる場合について考えてみましょう。
以下のコードでは、異なる複数のセレクタに「margin: 20px 0 30px 0」が設定されています。
.contents-table{
margin: 20px 0 30px 0;
}
.contents-ol{
margin: 20px 0 30px 0;
}
.contents-ul{
margin: 20px 0 30px 0;
}
.contents-dl{
margin: 20px 0 30px 0;
}
ご覧のように、同じようなコードが縦にびっしりと並んでいます。
これだけのコードを書くだけでも正直面倒ですし、同様の設定を行うセレクタが増えれば増えるほど、修正にも時間がかかってしまいます。
そこで、このようなグループ化を行うと、より短いコードになります。
.contents-table, .contents-ol, .contents-ul, .contents-dl {
margin: 20px 0 30px 0;
}
ただ、複数のセレクタを並列してしまうと、セレクタが増えるたびにどんどんと要素を増やさなくてはならず、使い勝手はどこかで悪くなってしまいます。
ある程度共通して使いまわす部分があるのであれば、思い切って以下のようなクラスを作ってみるのも一つの手です。
.margin-t20-b30 {
margin: 20px 0 30px 0;
}
tとbはそれぞれ「top」と「bottom」の頭文字を取っています。
「margin: 20px 0 30px 0」を何度も繰り返してしまうのであれば、これをクラス名として使ってみるのは有効でしょう。
5. GZipを使う
ホームページの読み込み時間を短縮するためにも、CSSファイルはできるだけ小さいほうがよいのは、いうまでもありません。
CSSファイルを小さくするために、空白やコメント、不要なセミコロンなどを除くのは、有効な手段のひとつとしてよく知られています。
圧縮されたCSSファイルは、元のファイルの80%ほどまで小さくなると言われています。
しかし、ファイルサイズを圧縮する方法は、これだけではありません。
GZip形式と呼ばれる、Webサーバーでも読み取ることのできる圧縮形式を使うことで、70%ほどまでファイル容量を減量することができます。
GZipをWebサーバーで読み取れるようにするには、.htaccessファイルに以下のようなコードを追加します。
# BEGIN GZIP
<ifmodule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
</ifmodule>
# END GZIP
CSSファイルをGZip形式に圧縮するには、圧縮ソフトを使うのが最も簡単で確実なやり方です。
Macの場合は、標準でインストールされているターミナルを立ち上げて、
$ gzip (ファイルパス)
を打ち込み、エンターキーを押せば、自動でファイルをGZip形式に圧縮してくれます。
まとめ
冗長で読みにくくなりがちなCSSも、工夫次第で読みやすく、軽量にすることは可能です。
今回はその中でも今すぐ実践できるポイントをご紹介させていただきました。
いずれのポイントにも共通して言えることですが、「ダブりは書かない」かつ「モレのないように書く」というMECEの考え方をCSSに持ち込むことが重要です。
CSSでファイルが重くなってしまう一番の原因はダブりなので、できるだけダブりを発生させずにロジカルに書いていくのを、ぜひ心がけてください。
参考:
MECEって?ロジカルシンキングの基本的考え方を理解して思考の抜け漏れを防ごう
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- 検索エンジン
- 検索エンジンとは、インターネット上に無数に存在するホームページのデータを集め、ユーザーにそれらを探しやすくしてくれるサービスのことです。「検索サイト」とも呼ばれます。代表的な検索エンジンとしては、Yahoo! JAPANやGoogleなどがあります。また、大手検索エンジンは、スマートフォン向けのアプリも提供しており、これらは「検索アプリ」と呼ばれています。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- WordPress
- WordPressとは、CMS(コンテンツマネジメントシステム)の1種で、ホームページ管理システムのことです。ブログ感覚で記事の修正・追加が行えるうえ、通常のホームページ並みのデザインを作成することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- ファイルサイズ
- ファイルサイズとは、コンピューターで扱うファイルの容量のことをいいます。 ハードディスクなどにファイルを転送する際などは、この容量をしっかりチェックしておく必要があります。その数値に応じてデータをコンピューターに保存することができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- HTML
- HTMLとは、Webページを記述するための言語です。"HyperText Markup Language "の略です。"<"と">"にはさまれたさまざまな種類の「タグ」によって、文章の構造や表現方法を指定することができます。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- ファイルサイズ
- ファイルサイズとは、コンピューターで扱うファイルの容量のことをいいます。 ハードディスクなどにファイルを転送する際などは、この容量をしっかりチェックしておく必要があります。その数値に応じてデータをコンピューターに保存することができます。
- .htaccess
- htaccess(エイチティアクセス)とは、サーバソフトウェアのApacheを制御できるファイルのことで、正確には「.htaccess(ドットエイチティーアクセス)」です。htaccessを利用することによって、ページにアクセス制限を設けたり、ページを転送するリダイレクトなどの設定を行うことができます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
おすすめ記事
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●Webマーケティング手法
- SEO(検索エンジン最適化)
- Web広告・広告効果測定
- SNSマーケティング
- 動画マーケティング
- メールマーケティング
- コンテンツマーケティング
- BtoBマーケティング
- リサーチ・市場調査
- 広報・PR
- アフィリエイト広告・ASP
●ステップ
●ツール・素材
- CMS・サイト制作
- フォーム作成
- LP制作・LPO
- ABテスト・EFO・CRO
- Web接客・チャットボット
- 動画・映像制作
- アクセス解析
- マーケティングオートメーション(MA)
- メールマーケティング
- データ分析・BI
- CRM(顧客管理)
- SFA(商談管理)
- Web会議
- 営業支援
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング
- フォント
- 素材サイト
●目的・施策
- Google広告
- Facebook広告
- Twitter広告
- Instagram広告
- LINE運用
- LINE広告
- YouTube運用
- YouTube広告
- TikTok広告
- テレビCM
- サイト制作・サイトリニューアル
- LP制作・LPO
- UI
- UX
- オウンドメディア運営
- 記事制作・ライティング
- コピーライティング
- ホワイトペーパー制作
- デザイン
- セミナー・展示会
- 動画・映像制作
- データ分析・BI
- EC・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング