CSSのselectionを完全ガイド!選択範囲の背景色と文字色をカスタマイズ
生徒
「ホームページの文字をマウスでなぞったとき、青くなるのを好きな色に変えることはできますか?」
先生
「それはCSSのselectionという擬似要素を使えば、簡単に好きな背景色と文字色に変更できますよ。」
生徒
「選択したときの色までデザインできるなんて驚きです!具体的にはどう書くんですか?」
先生
「それでは、初心者の方でもすぐに実践できる基本的な使い方を見ていきましょう!」
1. 選択範囲の背景色を変えるCSSの仕組みとは
普段、パソコンでウェブサイトを見ているときに、文字をコピーしようとしてマウスで左クリックを押したまま横に動かす(ドラッグする)ことがありますよね。この動作を「範囲選択」と呼びます。通常、このときの背景色は青色、文字色は白色になるのが一般的です。
しかし、最新のホームページ制作では、サイトの雰囲気に合わせてこの「選択されたときの色」までこだわってデザインすることが増えています。CSSの::selection(セレクション)という命令を使うことで、特定の場所やページ全体の選択色を自由自在にカスタマイズできます。これはサイトの個性を出し、ユーザーに驚きを与える隠れたオシャレポイントになります。
2. 全体の選択色を一括で設定する基本コード
まずは、ページ内のどこをなぞっても同じ色になるように設定する方法を解説します。プログラミング未経験の方でも、このコードをコピーして貼り付けるだけで、サイト全体の雰囲気が一気にプロっぽくなります。
CSSファイルの中に、コロンを2つ並べて「::selection」と書き、その後に変えたい色を指定します。背景色にはbackground-colorを、文字の色にはcolorを使います。これだけで、ブラウザの標準設定を上書きして、あなただけのオリジナルカラーに変更することが可能です。
<style>
/* サイト全体の選択範囲をピンクの背景に白文字にする */
::selection {
background-color: #ff69b4;
color: white;
}
</style>
<div class="p-3">
<p>この文章をマウスでなぞってみてください。背景がピンク色に変わります!</p>
</div>
ブラウザ表示
この文章をマウスでなぞってみてください。背景がピンク色に変わります!
3. 特定の場所だけ色を変えてアクセントを付ける
ページ全体ではなく、「この見出しだけは特別な色にしたい」という場合もあります。そのときは、特定のクラス名やタグ名と組み合わせて指定します。例えば、重要なニュースや広告エリアだけ色を変えることで、ユーザーの注目を集める効果が期待できます。
パソコンを触ったことがない方でも、「特定の名前(クラス)がついている場所にだけ魔法をかける」と考えると分かりやすいでしょう。このように部分的なカスタマイズをすることで、情報の強弱をはっきりさせることができ、SEO対策においても読みやすいサイト構造を構築する一助となります。
<style>
/* オレンジ色のエリア専用の選択色設定 */
.special-box::selection {
background-color: #ffa500;
color: #000000;
}
</style>
<div class="special-box p-3 border">
<h3>特別なエリアの見出し</h3>
<p>ここだけは、選択するとオレンジ色になります。目立たせたい場所に最適です!</p>
</div>
ブラウザ表示
特別なエリアの見出し
ここだけは、選択するとオレンジ色になります。目立たせたい場所に最適です!
4. 読みやすさを重視したコントラストの選び方
選択色をカスタマイズする際に、最も注意しなければならないのが「読みやすさ」です。専門用語でコントラストと言いますが、背景色と文字の色が似すぎていると、なぞった瞬間に文字が消えて見えなくなってしまいます。
例えば、濃い青色の背景に黒色の文字を指定すると、非常に読みづらいですよね。基本的には「明るい背景には濃い色の文字」「濃い背景には明るい色の文字」を組み合わせるのが鉄則です。ウェブサイトを訪れるすべての人が快適に情報を得られるように配慮することをアクセシビリティと呼びますが、こうした小さな気配りがGoogleからの評価にも繋がります。
5. ブランドカラーを取り入れてサイトに統一感を出す
多くの企業サイトや有名なブログでは、ロゴマークに使われている色(ブランドカラー)を選択色に採用しています。例えば、サイトのメインカラーが緑色であれば、選択範囲も緑色にすることで、サイト全体の統一感がぐっと増します。
プログラミング初心者の方は、まず自分が作っているサイトの中で一番多く使っている色を確認してみましょう。その色を選択範囲に適用するだけで、まるでプロのデザイナーが監修したかのような完成度の高いウェブサイトに一歩近づきます。色選びに迷ったら、まずはメインの色を試してみてください。
6. selectionで変更できるプロパティの制限
実は、::selectionで変更できるデザインにはルールがあります。何でも自由に変えられるわけではなく、基本的には「色」に関する項目が中心です。具体的には、文字色(color)、背景色(background-color)、そしてテキストに影をつける(text-shadow)などが主な対象です。
文字を大きくしたり(font-size)、太さを変えたり(font-weight)することはできません。これは、選択するたびに文字の大きさが変わってしまうと、文章全体のレイアウトがガタガタと崩れてしまい、ユーザーが読みにくくなってしまうからです。決められたルールの中で最大限のオシャレを楽しむのが、CSS上達の秘訣です。
<style>
/* 文字に影をつけて、選択範囲を豪華にする演出 */
.shadow-text::selection {
background-color: #333;
color: #fff;
text-shadow: 2px 2px 0px #ff0000;
}
</style>
<div class="p-3">
<p class="shadow-text">ここを選択すると、文字に赤い影がつきます。少し変わった演出をしたいときに使えます。</p>
</div>
ブラウザ表示
ここを選択すると、文字に赤い影がつきます。少し変わった演出をしたいときに使えます。
7. 入力フォーム内の選択色も忘れずにチェック
意外と忘れがちなのが、お問い合わせフォームなどの「入力欄」の中にある文字です。input(インプット)タグやtextarea(テキストエリア)タグの中にある文字を選択したときの挙動も、::selectionでコントロールできます。
ユーザーが入力した内容を確認したりコピーしたりするときに、サイト全体のデザインと一致した色が反映されると、非常に丁寧なサイトだという印象を与えることができます。こうした細かいディテールへのこだわりが、リピーターを増やす秘訣であり、質の高いコンテンツ作りには欠かせない視点です。
<style>
/* 入力フォームの中専用の選択色 */
input::selection {
background-color: #4b0082;
color: #adff2f;
}
</style>
<div class="p-3">
<label>お名前:</label>
<input type="text" value="ここを選択してみて!" class="form-control">
</div>
ブラウザ表示
8. ブラウザごとの表示確認と注意点
ホームページ制作において、切っても切り離せないのが「ブラウザによる違い」です。Google Chrome、Safari、Microsoft Edge、Firefoxなど、世の中には多くの閲覧ソフトがありますが、ほとんどの最新ブラウザで::selectionは問題なく動作します。
ただし、非常に古いスマートフォンやパソコンで見ている場合、設定が反映されずに通常の青色のままになることがあります。これを「不具合だ!」と焦る必要はありません。装飾が効かなくても、文字のコピー自体は普通にできるため、致命的な問題にはならないからです。このように、最新の技術を使いつつ、古い環境でも最低限使えるようにすることを「プログレッシブ・エンハンスメント」と呼び、プロの世界でも大切にされている考え方です。
9. 画像や動画などの非テキスト要素への影響
最後に、文字以外の要素についても触れておきましょう。::selectionは基本的にテキスト(文字)に対して働くものですが、サイト内の画像(imgタグ)などを選択した際に、薄い色がかかることがあります。これもCSSの設定によって、色の濃淡をある程度調整することが可能です。
しかし、メインの用途はあくまでも「文字の可読性(読みやすさ)を高めること」にあります。画像の上で変な色が出ないように、基本的には文字に対してのみ適用されることを想定して色を決めると良いでしょう。今回の学習を通じて、普段何気なく使っている「選択」という動作に、制作者のこだわりを詰め込めることが分かったはずです。ぜひあなたのサイトでも活用してみてください!
【60分集中】Flexboxを完全攻略!最新CSS3で「崩れない・迷わない」モダンUI構築セミナー
「魅せる力」をコードで実現。CSS3でモダンWebデザインのプロトタイピングを。
本講座では、単に色を変えるだけではなく、「ユーザーを迷わせないUIデザイン」と「崩れないレイアウト設計」の本質を学びます。最新のCSS3とモダンなレイアウト手法を通じて、プロの現場で通用する「美しさと機能性を両立した実装力」を最短距離で習得します。
具体的なワークショップ内容と環境
【つくるもの】
HTMLで作成した骨組みに対し、商用サイトでも採用される「スタイリッシュなカード型UI」や「レスポンシブなナビゲーション」を構築します。色の選定基準や余白(ホワイトスペース)の黄金比など、デザインの理論をコードに落とし込む工程を体験してください。
【開発環境】
フロントエンド開発の標準であるVisual Studio Code (VS Code)を継続使用。CSSの記述を効率化するプラグインや、ブラウザのデベロッパーツール(検証機能)を駆使して、リアルタイムでデザインを微調整するプロのワークフローを再現します。
この60分で得られる3つの技術資産
要素の横並びや中央揃えを自由自在に操り、どんなデバイスでも崩れないレスポンシブな配置術を完全理解します。
後から修正しやすい「壊れにくいコード」の書き方を伝授。プロの現場で必須となる命名規則の考え方を学びます。
画像の最適化や軽量な装飾技法など、ページの表示速度を落とさずに高級感のある演出を行うテクニックを習得します。
※本講座は、HTMLの基礎を終えた後のステップアップ講座です。Webデザイナー、UIデザイナー、フロントエンドエンジニアへの道を切り開く「魅せる技術」を、モクモク独自のパーソナル指導で着実に定着させます。
リラックスしながら、学ぶことが大切です。しっかりと基礎を理解しましょう!
各回少人数・マンツーマン形式で徹底サポート
このセミナーの詳細・お申し込みはこちら