
応用情報に駆け込んで あってるのかどうか怪しいCSS入門編
はじめに
応用情報技術者試験対策にCSSが出るらしいっていうので追い込まれChatGPTに作ってもらった入門書。
なのでちゃんとWebをやろうって人には役に立たないと思う。
でもって、いかに自分がCSSもHTMLも、そしてこのマークダウン形式ってやつにも慣れてないのかよくわかったヨ…
1. 構文
CSSの基本的な構文はシンプルで、要素にスタイルを適用するために「セレクタ」「プロパティ」「値」を組み合わせます。
セレクタ {
プロパティ: 値;
}
例:
以下のコードでは、p要素に対してテキストの色を青、フォントサイズを16ピクセルに設定します。
p {
color: blue;
font-size: 16px;
}
2. HTMLとCSSの関係
(1)セレクタ
代表的なCSSセレクタには以下のものがあります:
要素セレクタ:特定のHTML要素にスタイルを適用します。
例:h1 { color: red; }
クラスセレクタ:同じクラス名を持つ要素にスタイルを適用します。.を使用します。
例:.button { background-color: green; }
IDセレクタ:一意のIDを持つ要素にスタイルを適用します。#を使用します。
例:#header { background-color: yellow; }
グループセレクタ:複数のセレクタに同じスタイルを適用します。
例:h1, h2, p { color: navy; }
子セレクタ:ある要素の直接の子要素にスタイルを適用します。>を使用します。
例:ul > li { list-style-type: none; }
子孫セレクタ:ある要素内のすべての子孫要素にスタイルを適用します。スペースを使用します。
例:div p { color: gray; }
疑似クラスセレクタ:特定の要素の状態に応じたスタイルを適用します。
例:a:hover { color: orange; }
属性セレクタ:特定の属性を持つ要素にスタイルを適用します。
例:input[type="text"] { border: 1px solid black; }
(2)代表的なHTML要素
HTMLはWebページの構造を定義し、CSSはその見た目をコントロールします。以下は、よく使われる代表的なHTML要素です。
<p>(段落要素):
段落を作成するために使います。
例:<p>This is a paragraph.</p>
CSSカスタマイズ例:
p { font-size: 14px; line-height: 1.5; }
<h1>〜<h6>(見出し要素):
見出しの大きさを定義します。
例:<h1>Main Title</h1>
CSSカスタマイズ例:
h1 { color: darkblue; }
<ul>と<li>(リスト要素):
順序のないリストとリストアイテムを作成します。
例:<ul><li>Item 1</li><li>Item 2</li></ul>
CSSカスタマイズ例:
ul { list-style-type: square; } li { margin-bottom: 10px; }
<a>(アンカー要素):
ハイパーリンクを定義します。
例:<a href="https://example.com">Visit Example</a>
CSSカスタマイズ例:
a { text-decoration: none; color: blue; }
<div>(区分要素):
ページ内のコンテンツをグループ化し、レイアウトを調整します。
例:<div class="container">Content here</div>
CSSカスタマイズ例:
.container { width: 100%; padding: 20px; }
<span>(インライン要素):
インラインのコンテンツをグループ化するために使用します。
例:<span class="highlight">Important Text</span>
CSSカスタマイズ例:
.highlight { background-color: yellow; }
<img>(画像要素):
ページに画像を表示します。
例:<img src="image.jpg" alt="Sample Image">
CSSカスタマイズ例:
img { max-width: 100%; height: auto; }
<input>(入力要素):
フォームにおけるユーザー入力を受け取るための要素です。
例:<input type="text" name="username">
CSSカスタマイズ例:
input[type="text"] { border: 1px solid #ccc; padding: 5px; }
<button>(ボタン要素):
フォームやインタラクティブな操作を提供します。
例:<button type="submit">Submit</button>
CSSカスタマイズ例:
button { background-color: green; color: white; padding: 10px 20px; }
<form>(フォーム要素):
ユーザー入力を送信するためのフォームです。
例:<form action="/submit" method="post"><input type="text" name="name"><button type="submit">Send</button></form>
CSSカスタマイズ例:
form { margin: 20px 0; }
3. 留意点
表のネスト:複雑なテーブルは、スクリーンリーダーでの読み上げに影響を与えるため、アクセシビリティも考慮する必要があります。
インラインスタイルの保守性:HTMLに直接スタイルを指定すると、保守が難しくなります。CSSファイルを使ってスタイルを一元管理しましょう。
ブラウザ間の互換性:主要なブラウザ(Chrome、Firefox、Safari、Edge)で表示の違いを確認する必要があります。
レスポンシブデザイン:画面サイズやデバイスに応じて表示を変えるため、メディアクエリを使います。
ベンダープレフィックス:新しいCSSプロパティには、-webkit-や-moz-などのプレフィックスが必要な場合があります。
CSSのカスケードと継承:スタイルの適用順序に注意しましょう。
Zインデックスの管理:要素の重なり順を管理するため、z-indexを慎重に設定します。
フォントの読み込み:Webフォントの読み込み速度や代替フォントの設定も考慮します。
パフォーマンス最適化:不要なスタイルや複雑なセレクタは避けるべきです。
アクセシビリティ:色のコントラストやフォーカス表示など、視覚に依存しないデザインを心がけます。
4. 外部参照ファイル
PNG:ロスレス圧縮で透明背景をサポート。高解像度向けですが、ファイルサイズが大きくなります。
JPEG:写真など色が豊富な画像に適したロスのある圧縮形式。再圧縮で画質が劣化します。
SVG:ベクター形式で、拡大縮小しても劣化しません。アイコンやロゴに適しています。
GIF:アニメーションをサポートしますが、色数が256色に制限されます。
WebP:Googleが開発した形式で、JPEGやPNGよりも高い圧縮率を提供しますが、互換性に注意が必要です。
ICO:ファビコンに使用される形式で、複数の解像度を含めることが可能です。
TIFF:高品質の画像を保持できる形式ですが、Web向きではありません。
BMP:未圧縮の画像形式で非常に高品質ですが、ファイルサイズが大きくなります。
アニメーションGIF:軽量でアニメーションをサポートしますが、色数に制限があります。
APNG:GIFの代替として使われ、透明背景をサポートしますが、互換性に注意が必要です。
あとがき
生成AIに慌てて作ってもらった結果、どうも抜けが多そうな気がするんだけど、まずはここまでで次行ってみよう。