あまり知られていないけれど便利なページ速度を最適化するCSSプロパティ3選
コーディングを一部でも仕事に取り入れているひとであれば経験があるかもしれませんが、主要ブラウザではどんどん新しいCSSプロパティが標準化されていくので、気づかないうちに次々と「新種」が増えてキャッチアップできなくなってしまうことがあります。
もちろん、こうしたプロパティはあらゆる職種のWebデベロッパーの方にとってはよいことです。
便利なプロパティが増えれば、今までJavaScriptなどで実装していたこともCSSで短く記述できるようになり、手間も省け、生産性が向上するからです。
今回は、比較的最近登場したCSSプロパティの中でも、あまり知られていないけれど便利なCSSプロパティをご紹介します。
知らないCSSプロパティを学んでいくのに、ブラウザサポートを心配されている方もいるかもしれません。
その場合は、ぜひCan I use?などのプロパティサポート一覧を一緒にご覧ください。
あまり知られていないけれど便利なCSSプロパティ
Source: pexels.com
1. font-display
Source: pablo
font-displayは、Webフォントをはじめとするダウンロード可能なフォントが完全に読み込まれる前にどのように処理すべきかや、読み込みが失敗してしまったときにどのような挙動にするかを指定するCSSプロパティです。
実際のところ、カスタムフォントが読み込まれるまで、ユーザーは長時間真っ白な画面を見続けるのを余儀なくされることがあります。
当然のことながら、ページの読み込み速度が劇的に遅ければ、ユーザーはページから離れてしまいます。
見えないテキストが表示される時間はブラウザにもよりますが、おおよそ3秒程度です。
3秒は短く感じるかもしれませんが、Webを閲覧しているユーザーにとっては極めて長く感じてしまうものです。
もともとこの問題に対処するために、Webデベロッパーたちの中にはFont Face ObserverやFont Loading Module APIのようなJava Scriptを使った解決策を使うひともいました。
しかしながら、font-displayプロパティのおかげで、外部ファイルを設定してブラウザに読み込むような必要もなくなりました。
font-displayプロパティは「@font-face」の宣言内で記述するのを想定されています。
このプロパティには、次の5つの値が用意されています。
auto
規定値です。
autoは基本的にこのプロパティを全く使わないのと同じ挙動をし、結果的にブラウザのテキストが読み込み時間中は隠れてしまいます。
Webフォントなどが全て読み込まれたあとに、テキストを表示します。
block
blockを使うことで、カスタムフォントをダウンロードする間にブラウザがテキストを隠してしまう時間が、およそ1秒程度短くなります。
しかし、回線が遅いなどの理由でブラウザはカスタムフォントが読み込まれるのをずっと待っている場合は、フォントが閲覧できるまで結局待たされることになります。
swap
swapでは、カスタムフォントが読み込まれる間代替フォント(フォールバック)が表示されます。
カスタムフォントの表示の準備が完了すれば、フォールバックに代わってカスタムフォントが表示される仕組です。
まさにこれこそが多くのWebデベロッパーが待ち望んでいたものではないでしょうか。
fallback
fallbackを設定すると、カスタムフォントが見えなくなっている間のテキストがスタイリングされているわずかな間(およそ100ミリ秒)に表示する代替フォントを設定できます。
カスタムフォントの読み込みが準備されるまで、フォールバックを使ったテキストなどのスタイリングされていないテキストが表示されます。
ただし、もしページの読み込みが極端に長くなってしまえば、フォールバックが永遠に表示されるようになってしまいます。
optional
これはfallbackに似ている値です。
カスタムテキストが見えなくなっている間(100ミリ秒程度)で、カスタムフォントの準備ができていない間だけフォールバックが表示されます。
ただし、この値はブラウザ自体がフォントをダウンロードして使うべきかどうかを判断することになります。
ブラウザがカスタムフォントをダウンロードしないと決定する場合は、例えば回線速度が遅くてページの表示に支障をきたす場合です。
optionalを使うのは、ページのデザインやブランディングにフォントのタイプフェイスが決定的な役割を担っているわけではない時が好ましいでしょう。
さて、具体的には以下のように利用していきます。
@font-face {
font-family: FerretFont;
src: url('/fonts/ferretfont.woff2') format('woff2'), url('/fonts/ferretfont.eot') format('eot');
font-display: swap;
}
h1 {
font-family: FerretFont, Arial, sans-serif;
}
ブラウザサポートは2017年7月現在ではまだ未対応も多いですが、すぐに改善される見通しです。
2. contain
Source: pablo
WordPressサイトなどをはじめとしたブログサイトなどで、たくさんのウィジェットを使った複雑なWebサイト構築を行う場合があります。
その時に、containプロパティは大いに活躍するはずです。
このプロパティを使うことによって、指定されたDOM要素やコンテンツが、ドキュメントツリーの他の場所と独立していることをブラウザに知らせます。
つまり、containプロパティは、WebコンポーネントやReactコンポーネントをたくさん組み込む時に活躍します。
より実践的に使うのであれば、独立したウィジェット部分にcontainを適用することで、高さや横幅を、他のDOM要素に影響させずに変更したりすることができます。
具体的には、次のような値が用意されています。
none
規定値です。
どのコンテナもcontainの適用を受けません。
size
サイズを保持した要素になります。
これは、子要素や孫要素によってサイズが変わることがないという意味です。
layout
レイアウトの封じ込めを有効にします。
封じ込めている要素の内外のレイアウトが互いに影響しあうことがないようにします。
style
スタイルの封じ込めを有効にします。
これは、子要素や孫要素の他にも影響を及ぼす可能性のあるほかのプロパティの効果が、封じ込めている要素の外に波及しないようにするという意味です。
paint
塗りの封じ込めを有効にします。
これは、子要素や孫要素がコンテナの境界線を超えて表示されないという意味です。
例えば、ある要素がコンテナの中で表示しきれなかった場合に、その部分は非表示で見えなくなってしまうということです。
strict
これはsize・layout・style・paintのすべての要素を有効にする値です。
content
strictに近いですが、sizeを除いた形になります。
まだ対応ブラウザはそれほど多くありませんが、何気ない変更でもページが不意に遅い処理にならないようにすることができる便利なプロパティです。
ウィジェットなどを多用している際には、このプロパティを使ってみましょう。
3. will-change
Source: pablo
Webデベロッパーであれば、ページの読み込み速度にはシビアになっているでしょう。
とりわけ、モバイルデバイスにおいてはページの読み込み速度はたとえ1秒であっても命取りとも言えます。
モバイルデバイスの限られたRAMやGPUメモリーでは、デスクトップでの閲覧に比べて、CSSによる処理が極めて遅くなってしまう場合があります(特に格安スマホなどの低スペックなものの場合には起こりやすいです)。
実際、「ブラウザ自身」は、ページがすべて読み込まれるまで、レスポンシブ処理も含めてどんなことが起こるのかを予測することができません。
逆に言えば、ブラウザがこれらを知ることができれば、ある程度の表示速度の改善になるのではないでしょうか。
そこに目をつけたのが、will-changeプロパティです。
このプロパティを使うことで、ブラウザは実際の処理を行う前に表示の最適化を行うので、メモリーアロケーションもスムーズに行われ、表示速度が少し早くなります。
幸運なことに、このプロパティはすでにChrome 53以上・Opera 43以上・Firefox 52以上・Safari 10・ Androidでサポートされています。
ただし、注意したいのは、あまりにも多くの要素がある場合には、このプロパティは意味をなさない可能性もあります。
場合によっては遅延につながるケースもあるので、必ずブラウザテストを行うようにしましょう。
will-changeプロパティには、以下の値があります。
auto
規定値です。
ブラウザは要素に対して最適化を行うことはありません。
scroll-position
名前が示すように、スクロールで表示されるときに正しく表示できるよう準備をしておきます。
contents
要素の中身が変化する場合に指定します。
例えば、will-changeは以下のように使います。
.will-change {
transition: transform 0.3s;
}
.will-change:hover {
will-change: transform;
}
.will-change:active {
transform: scale(1.5);
}
このようにしておくことで、要素のホバー時に「transform」の準備をしておくので、アクティブ時にscaleによる画像処理がスムーズに行われるようになります。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- JavaScript
- JavaScript(ジャバスクリプト)とは、Webサイト上でさまざまなインタラクティブな動きを実現するために用いられる言語
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- テキスト
- テキストとは、純粋に文字のみで構成されるデータのことをいいます。 太字や斜線などの修飾情報や、埋め込まれた画像などの文字以外のデータが表現することはできませんが、テキストのみで構成されたテキストファイルであれば、どのような機種のコンピューターでも共通して利用することができます。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- フォント
- フォントとは、同一の特徴を持った文字の形状を一揃いでデザインしたものです。
- WordPress
- WordPressとは、CMS(コンテンツマネジメントシステム)の1種で、ホームページ管理システムのことです。ブログ感覚で記事の修正・追加が行えるうえ、通常のホームページ並みのデザインを作成することができます。
- ブログ
- ブログとは、ホームページの一種です。運営者はブログシステムに登録し、利用開始をすることで、ホームページ制作のプログラム技術を修得する必要なく、本文のみを投稿しつづければ、公開・表示はおろかページの整理や分類なども効率的に行えるシステムを言います。
- Webサイト
- Webサイトとは、インターネットの標準的な情報提供システムであるWWW(ワールドワイドウェブ)で公開される、Webページ(インターネット上にある1ページ1ページ)の集まりのことです。
- コンテンツ
- コンテンツ(content)とは、日本語に直訳すると「中身」のことです。インターネットでは、ホームページ内の文章や画像、動画や音声などを指します。ホームページがメディアとして重要視されている現在、その内容やクオリティは非常に重要だと言えるでしょう。 なお、かつてはCD-ROMなどのディスクメディアに記録する内容をコンテンツと呼んでいました。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- レイアウト
- レイアウトとは、もともと「配置」や「配列」を指す語です。ここでは、「ホームページレイアウト(ウェブレイアウト)」と呼ばれる、ホームページにおけるレイアウトについて説明します。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- デバイス
- デバイスとは「特定の機能を持つ道具」を表す語で、転じてパソコンを構成するさまざまな機器や装置、パーツを指すようになりました。基本的に、コンピューターの内部装置や周辺機器などは、すべて「デバイス」と呼ばれます。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- デバイス
- デバイスとは「特定の機能を持つ道具」を表す語で、転じてパソコンを構成するさまざまな機器や装置、パーツを指すようになりました。基本的に、コンピューターの内部装置や周辺機器などは、すべて「デバイス」と呼ばれます。
- CS
- CSとはCustomer Satisfactionの略称で「顧客満足度」を意味します。顧客との関係維持、サービスの発展に関するマーケティング戦略に関わる用語です。
- ページ
- 印刷物のカタログやパンフレットは、通常複数のページから成り立っています。インターネットのホームページもまったく同じで、テーマや内容ごとにそれぞれの画面が作られています。この画面のことを、インターネットでも「ページ」と呼んでいます。ホームページは、多くの場合、複数ページから成り立っています。
- Android
- Android OSとはスマートフォン用に開発された基本ソフト(OS)の一種です。米国Google社が中心となり開発されました。
- クロール
- クロールとは、検索エンジン内のシステムであるクローラ(ロボット)が一つ一つのサイトを巡回し、サイトの情報を収集することを指します。
おすすめ記事
関連ツール・サービス
おすすめエントリー
同じカテゴリから記事を探す
カテゴリから記事をさがす
●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・通販・ネットショップ
- 口コミ分析・ソーシャルリスニング