Webデザイン初心者がランクアップするためのCSSのコツ10選
ブログを始めたりホームページを自作したりするために勉強しはじめると、さらにデザインを凝ったものにしたくなります。
また、ある程度カスタマイズが進めば、表示速度をもっと早くしたり、より短いコードでコーディングしたりしたくなります。
そこで必ず話題に上るのが、CSSです。
もちろん、LessやSassのようなCSSプリプロセッサー(関数を使ったりしてプログラミングコードのように書くことができるCSS)が誕生したことで、より複雑なデザインをできるだけ少ないコードで書くことができるようになりました。
しかし、フロントエンドエンジニアとしてレベルアップするためには、どのように書けばレイアウトが改善されたり表示速度が速くなるのかをしっかりと理解しておいたほうがよいでしょう。
今回は、Webデザイン初心者がランクアップするためのCSSのコツをご紹介します。
これから紹介する、多くの初心者を泣かせたCSSの疑問を解決するための10のコツを理解すると、デザインの可能性もさらに広がります。
1. クリーンなCSSリセットの書き方
マージンやパディングなど、ブラウザによってデフォルトの表示設定が異なっているために、従来はnormalize.cssに代表されるCSSリセットライブラリを使用するWebデザイナーやフロントエンドエンジニアが多かったのではないでしょうか。
これらのライブラリはブラウザ間の表示誤差をできるだけ少なくしてくれるので、長年にわたり人気を保ち続けてきました。
しかし、normalize.cssの中身を開いたことがある人なら分かるかもしれませんが、ほとんどのプロジェクトではライブラリに入っている全てのルールが必要ではなく、すべての要素のマージンとパディングだけ調整すれば事足りるケースがほとんどです。
そこで今回、下記のようなCSSリセットの書き方を紹介します。
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
box-sizingの宣言はオプションです。
次のbox-sizingの継承に関するポイントを実践している場合は、この宣言を飛ばしても大丈夫です。
参考:
2016年で最もダウンロードされたリセットCSSランキングトップ5
2. box-sizingの継承
*「box-sizing」*は要素のwidth(横幅)・height(縦幅)の計算方法を指定するためのプロパティです。簡潔にいえば、paddingやborderを縦横の幅に含めるかどうかを指定することができます。
box-sizingを正しく定義していないと、ブラウザによってはboxのサイズがpaddingを含んでいて、別のブラウザではpaddingを含めずに計算しているために、レイアウト崩れの原因になってしまうことがあります。
また、アイコンフォントなど、外部のCSSライブラリを読み込んでしまうと、そのbox-sizingを継承してしまって、意図したデザインが表示されないケースもあります。
そこで、下記のコードを挿入してみましょう。
html {
box-sizing: border-box;
}
, :before, *:after{
box-sizing: inherit;
}
border-boxを指定すると、widthやheightは*「paddingやborderを含めた値」*となるので、デザインする上でのピクセルの計算の仕方がシンプルになります。
htmlにborder-boxを指定して、それをほかの全ての要素に継承することで、ピクセルの計算方法に一貫性を持たせることができます。
参考:
意外と盲点!? あまり知られていないけど"知ると便利"なCSSプロパティ19選
3. 上下中央揃えのシンプルな書き方
ページ全体で、左右中央揃えにするには*「text-align: center;」*を指定すればよいというのはすぐに思いつきますが、上下に中央揃えしたいとなると、タイプする手が止まってしまいますよね。
CSSグリッドシステムを使う予定がない場合には、次のコードを使ってみてはどうでしょうか。
html, body{
height: 100%;
margin: 0;
}
body{
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
display: -webkit-flex;
display: flex;
}
現在、ほとんどすべてのモダンブラウザがFlexboxに対応しているので、この方法だと簡単に上下中央揃えができます。
4. 最もシンプルなバーティカルリズムの取り方
バーティカルリズムとは、縦方向に並んだ要素の行間やマージンをある一定の倍率で取って、文章や図をリズミカルにバランスよく見せて可読性を上げるデザイン上のテクニックのことです。
しかし、すべての要素に逐一マージンを設定するのは面倒ですよね。
そこで、ユニバーサルセレクタ(¥*)を使ってバーティカルリズムを生み出す方法を書いてみました。
.intro > * {
line-height: 1.25rem;
margin-bottom: 1.25rem;
}
こうすることで、すべての要素の行間が1.25remに統一されるので、まるでグリッドラインのノートに書くかのようにすっきりと要素が並ぶことになります。
5. カレンダー幅を均等にする
WordPressをはじめとしたCMSでカレンダーを表示するとき、通常はtableタグを使ってレイアウトを行います。
しかし、曜日ごとに横幅が若干ずれてしまうのは、非常に気になるものです。
そこで、このような書き方を学びましょう。
.calendar{
table-layout: fixed;
}
*「table-layout: fixed;」*を指定するだけで、横幅を統一することができるのですね。
もちろん、カレンダー以外のテーブルレイアウトでも有効な技です。
6. 空のリンクにurlを表示させる
CMSでリンクを挿入するときなどに便利なのですが、まれにテキストエディタで編集するときに空リンクが入ってしまうことがあります。
例えば、タグの間にテキストが挟まっていないのに、href属性は付いている場合です。
a[href^=”http”]:empty::before{
content: attr(href);
}
contentプロパティによって、強制的にhref属性を表示させるということをしています。
これによって、テキストなしの空リンクでもURLがしっかりと表示されるようになります。
7. 「デフォルト」のリンクスタイルを設定する
同じくCMSネタになりますが、WordPressなどのCMSでは、テーマに同梱されている強制的に生成されるリンクには何かしらのclass属性がくっついてきます。
しかし、ブログなどの記事を書く際のclass属性の付いていない*「デフォルト」のリンク*のスタイルだけを設定したい場合には、どのようにすればいいのでしょうか。
答えは次の通りです。
a[href]:not([class]) {
color: #999;
}
aタグだけに設定してしまうと、テーマ上のリンクも全て影響を受けてしまいます。
以上のように書くことで、単純なデフォルトのリンクにのみスタイリングを行うことができます。
8. 読み込みに失敗した画像のスタイルの書き方
画像の読み込みに失敗する理由はいくつかありますが、画像が見られなくなることでユーザーに与えるデメリットは計り知れません(ユーザーには空の四角い箱だけが表示されてしまいます)。
そんなときに、ここにどんな画像があったのかが分かるだけでも、親切なものです。
img {
display: block;
font-weight: 300;
height: auto;
line-height: 2;
position: relative;
text-align: center;
width: 100%;
}
img:before {
content: "すみません、画像が読み込めませんでした。。。";
display: block;
margin-bottom: 10px;
}
img:after {
content: "(url: " attr(src) ")";
display: block;
font-size: 12px;
}
9. フォントサイズの最適化を自動化する
レスポンシブレイアウトにおけるフォントサイズはViewportによって自動的に調整されるようにすると便利です。
メディアクエリによってフォントサイズを書き分けるという手間が省けるからです。
そこで、Viewportの縦幅と横幅を計算して、フォントサイズを決定させるやり方を書いてみました。
:root {
font-size: calc(1vw + 1vh + .5vmin);
}
「:root」によってデフォルトのフォントサイズが決定されれば、あとは「rem」を使ってフォントサイズを指定してあげればいいです。
body {
font: 1rem/1.6 sans-serif;
}
10. CSSで変数を使う裏技
ワンランクアップするために最後にご紹介したいのが、CSSで変数を使う方法です。
通常、CSSで変数を使う場合にはSassやLessを使いますが、ネイティブのCSSでも、共通のキーワードを宣言して変数のように使うことができます。
例えば、以下のようなコードです。
:root {
--main-color: #06c;
--accent-color: #999;
}
h1, h2, h3 {
color: var(--main-color);
}
p {
color: var(--accent-color);
}
配色を変更する場合に、わざわざすべての箇所を修正するのは大変面倒です。
上の例のように、もしメインカラーとアクセントカラーがあるのが分かっていたら、このように変数を使ってみるのもいいかもしれませんね。
- ブログ
- ブログとは、ホームページの一種です。運営者はブログシステムに登録し、利用開始をすることで、ホームページ制作のプログラム技術を修得する必要なく、本文のみを投稿しつづければ、公開・表示はおろかページの整理や分類なども効率的に行えるシステムを言います。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- WordPress
- WordPressとは、CMS(コンテンツマネジメントシステム)の1種で、ホームページ管理システムのことです。ブログ感覚で記事の修正・追加が行えるうえ、通常のホームページ並みのデザインを作成することができます。
- CMS
- ホームページを作成するための様々な作業を、一元的に管理できるシステムのことをCMS(コンテンツ マネージメント システム)と言います。ホームページを作成するには文章や画像などのコンテンツの作成からHTML、CSSを使った構成・装飾の記述、リンクの設定などが必要ですが、CMSを使用すればこれらの作業を自動的に行なうことができます。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- CMS
- ホームページを作成するための様々な作業を、一元的に管理できるシステムのことをCMS(コンテンツ マネージメント システム)と言います。ホームページを作成するには文章や画像などのコンテンツの作成からHTML、CSSを使った構成・装飾の記述、リンクの設定などが必要ですが、CMSを使用すればこれらの作業を自動的に行なうことができます。
- リンク
- リンクとは、インターネット上では、あるページの中に記された、他のページの所在を表す情報のことを「ハイパーリンク」と呼び、これを略した言葉です。リンクのある場所をクリックすると、他のページにジャンプするようになっています。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- リンク
- リンクとは、インターネット上では、あるページの中に記された、他のページの所在を表す情報のことを「ハイパーリンク」と呼び、これを略した言葉です。リンクのある場所をクリックすると、他のページにジャンプするようになっています。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- リンク
- リンクとは、インターネット上では、あるページの中に記された、他のページの所在を表す情報のことを「ハイパーリンク」と呼び、これを略した言葉です。リンクのある場所をクリックすると、他のページにジャンプするようになっています。
- URL
- URLとは、「Uniform Resource Locator」の略称です。情報がどこにあるのかを示すインターネット上の住所のようなものだと考えるとわかりやすいでしょう。各ページのURLは、インターネットブラウザの上部に文字列として表示されています。日本語では「統一資源位置指定子」という名称がついていますが、実際には日本でもURLという語が使われています。
- CMS
- ホームページを作成するための様々な作業を、一元的に管理できるシステムのことをCMS(コンテンツ マネージメント システム)と言います。ホームページを作成するには文章や画像などのコンテンツの作成からHTML、CSSを使った構成・装飾の記述、リンクの設定などが必要ですが、CMSを使用すればこれらの作業を自動的に行なうことができます。
- WordPress
- WordPressとは、CMS(コンテンツマネジメントシステム)の1種で、ホームページ管理システムのことです。ブログ感覚で記事の修正・追加が行えるうえ、通常のホームページ並みのデザインを作成することができます。
- リンク
- リンクとは、インターネット上では、あるページの中に記された、他のページの所在を表す情報のことを「ハイパーリンク」と呼び、これを略した言葉です。リンクのある場所をクリックすると、他のページにジャンプするようになっています。
- ブログ
- ブログとは、ホームページの一種です。運営者はブログシステムに登録し、利用開始をすることで、ホームページ制作のプログラム技術を修得する必要なく、本文のみを投稿しつづければ、公開・表示はおろかページの整理や分類なども効率的に行えるシステムを言います。
- リンク
- リンクとは、インターネット上では、あるページの中に記された、他のページの所在を表す情報のことを「ハイパーリンク」と呼び、これを略した言葉です。リンクのある場所をクリックすると、他のページにジャンプするようになっています。
- タグ
- タグとは、原義では「モノを分類するために付ける小さな札」のことです。英語の「tag」を意味するものであり、荷札、付箋といった意味を持っています。特にインターネットに関する用語としてのタグは、本文以外の情報を付与するときに用いられます。
- リンク
- リンクとは、インターネット上では、あるページの中に記された、他のページの所在を表す情報のことを「ハイパーリンク」と呼び、これを略した言葉です。リンクのある場所をクリックすると、他のページにジャンプするようになっています。
- リンク
- リンクとは、インターネット上では、あるページの中に記された、他のページの所在を表す情報のことを「ハイパーリンク」と呼び、これを略した言葉です。リンクのある場所をクリックすると、他のページにジャンプするようになっています。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- 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・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング