CSSでは同種の設定が重複している場合、原則、後から設定したものが有効になります。
この仕様を利用すると、すでにできあがっているデザインを修正するのに便利です。また、モバイルなど画面の小さな端末での表示を考慮したデザインも同時に行うことができます。
以下の指示に従って
rensyu10.html
のデザインを修正しましょう。
下のリンクからサンプルファイルをダウンロードし、rensyu フォルダ内に保存してください。「右クリック」→「対象をファイルに保存」などでダウンロードできます。
rensyu10.zip ←ここからダウンロード
圧縮フォルダの中身を取り出すと、
rensyu10.html
とrensyu10.css
の2ファイルが含まれています
rensyu10.html
とrensyu10.css
を開き、ページの内容を確認します。簡単なリンク集のページになっており、CSSによってすでにデザインがされています。以下のようなデザインになっているはずです。
rensyu10.html の最初の状態このデザインの修正を行います。
新しいCSSファイル
rensyu10plus.css
を rensyu フォルダ内に用意します。下のリンクからファイルをダウンロードすることもできます。「右クリック」→「対象をファイルに保存」でダウンロードできます。
rensyu10plus.css ←ここからダウンロード
関連ファイルは以下のような配置になるはずです。(よく似たファイル名に注意!)
ダウンロードした
rensyu10plus.css
が、rensyu10.html
に読み込まれるようにします。
rensyu10.html
を開き<link>
を探します。すでにrensyu10.css
を読み込むための設定が記載されていると思いますが、その下の行に新たにrensyu10plus.css
を読み込むための行を追記してください。: 省略
<link rel="stylesheet" href="./rensyu10.css" >
<link rel="stylesheet" href="./rensyu10plus.css" >
: 省略必ず既存の
<link>
より下の行に追記してください。rensyu10plus.css
をrensyu10.css
より後から読み込むことで、CSS設定を上書きするためです。
CSSでは後から書かれたルールが、前のルールを上書きします。
同種の設定が重複している場合も同様に、後者の効果で上書きされます。今後は、
rensyu10plus.css
を編集し、デザインの修正を行います。ここでは暗めの色合いにして、目に優しい感じのデザインを目指します。なお例として使用する色合いをそのまま使っても完成できますが、各自の判断で好きな色に変えても構いません。
まず、背景色を変更します。
rensyu10plus.css を開き、
<body>
に対してbackground-color
を設定し、色を変更します。その際、単色で色を塗るのではなく
linear-gradient( )
を使用すると、グラデーションをかけます。詳しくは下の例を参考にしてください。また、合わせて
fixed
の値を追加することで、ページをスクロールしても背景が移動しないように設定します。/* 背景色の変更 */
body {
background-color: #4B4B4B;
background: linear-gradient(to bottom, #4B4B4B, #282828) fixed;
}
実行例上の例では、グラデーションを下に向かって(
to bottom
)、グレー(#4B4B4B
)から濃いグレー(#282828
)になるよう設定しています。また、ページをスクロールしても移動しないように固定(fixed
)しています。飾り枠の白い部分がまぶしく見えるので、暗めの色合いに変更します。
飾り枠は
block
というクラス名であらかじめデザインされているので、block
クラスの設定を追記します。/* 飾り枠のデザイン修正 */
.block {
background-color: #5F5F5F;
}
実行例飾り枠の角を丸くします。
block
クラスに、border-radius
プロパティを追加して、角の丸みを表現します。/* 飾り枠のデザイン修正 */
.block {
background-color: #5F5F5F;
border-radius: 5px;
}リンクの文字が暗く沈んで見にくいので、色合いを変更します。ここでは白色に変更します。
/* リンク色の変更 */
a:link { color: #FFFFFF; }
a:visited { color: #FFFFFF; }
a:hover { color: #323232; background-color: #B0B0B0; }
a:active { color: #FFFF00; }
実行例見出しの部分がまぶしく見えるので、色合いを
color
とbackground-color
を使って変更します。さらにborder-radius
プロパティを追加して、角の丸みを表現します。見出しの部分は
pop
というクラス名であらかじめデザインされているので、pop
クラスにborder-radius
の設定を追加します。/* 見出しのデザイン修正 */
.pop {
color:#5F5F5F; /* ダークグレー */
background-color:#FFB429; /* オレンジイエロー */
border-radius: 5px;
}
実行例参考:別の色を塗る場合
別色のパターンも掲載しておきます。もし余裕があれば、他の色を試してみるのも良いでしょう。
パターンその2
/* 見出しのデザイン修正 */
.pop {
color:#226633; /* ダークグリーン */
background-color:#24C339; /* グリーン */
border-radius: 5px;
}パターンその3
/* 見出しのデザイン修正 */
.pop {
color:#6F5F4F; /* ダークブラウン */
background-color:#FF4B45; /* レッド*/
border-radius: 5px;
}スマートフォンなど、小型の端末でこのページを見ると、文字が小さくて操作しにくいと感じました。また、小さな画面では、ページの右端がはみ出してしまうことに気づきました。確認したい場合は、ブラウザのウインドウの横幅を狭くすると、はみ出す様子が確認できます。(実際にウインドウの横幅を縮めてみましょう)
そこで、画面が小さい端末で表示した場合は、操作しやすいよう、文字を少し大きくし、画面からはみ出さないように調整します(詳しくは下記「解説」コーナーにある「スマートフォンなどへの対応」を参考にしてください)。
以下の設定を追加しましょう。/* 640px以下の解像度を持つ端末用の設定 */ @media screen and (max-width: 640px) { body { margin:0px; padding:0px; font-size: 1em; } .block { margin:4px; padding:4px; width:auto; } }画面幅が
640px
以下の場合は、文章全体のマージンとパディングをゼロにし、文字のサイズを少し大きめ1em
にしています。
また、枠block
クラス については、マージンとパディングを狭め4px
にし、枠幅を自動width:auto;
にすることで、画面からはみ出さないようにしています。ブラウザウインドウの横幅を、再び狭くすると、文字が少し大きくなり、画面からはみ出さなくなった様子が確認できます。
以上でデザインの修正は完了です。後から設定を追加して、最初と全く異なるデザインとなりました。
設定の追加
CSSでは、同種の設定が重複している場合、後から設定したものが有効になるという仕様があります。
この仕様を利用すると、すでにできあがっているデザインの修正も簡単に行なえます。たとえ複雑なデザインがすでに設定されている場合も、後から効果を上書きすれば、簡単に修正できるというわけです。
また、別のCSSファイルに切り替えるなどすれば、簡単にデザインを異なるものに変更することもできます。
スマートフォンなどへの対応
CSS3 で追加された「メディアクエリ」と呼ばれる機能により、スタイルシートを適用する条件を指定することができるようになりました。
具体的には上記の 10. の項目で「
@media
」から始まる部分のCSS記述がメディアクエリです。メディアクエリを使えば、例えばスマートフォンの画面とパソコンの画面で、適用するスタイルシートを変更するといったことができます。
上の例では、「
@media screen and (max-width: 640px) { ~ }
」 の部分で、画面の横幅が640ピクセルを下回った場合に{ ~ }
内のスタイルシートが適用される仕組みになっています。@media screen and (max-width: 640px) {画面の幅が640ピクセル以下の場合に、ここに書いたスタイルシート設定が有効になります。}この課題の場合は、画面の横幅に応じて、ページ全体 (
<body>
) やblock
クラスなどに対して、文字の大きさ (font-size
) や、余白 (margin
) や、内部余白 (padding
) の調整、横幅をフレキシブルに変更(width:auto;
)といった追加設定を行っています。