cssの基本的な書式

(セレクタ) { (プロパティ) : (値) }
e.g.) h1 { color : blue ; }
color: blue;を宣言(declaration)といい、
{..}の部分を宣言ブロック(declaration block)と言う。

用語等めも

コメント:/*...*/

スタイルの適用要素: 各プロパティはどれもすべての要素に適用されるわけではない。プロパティによって適用される要素が決められる。

スタイルの継承: プロパティには、親要素に指定した値が子要素に継承されるものとされないものがある。また、強制的に継承させるためのキーワード「inherit」がある。

スタイルの優先順位: CSSで指定する優先順位は様々なルールから最終的な優先順位が決定される。適用方法(外部スタイルシートかどうかなど)、制作者(文書制作者のスタイルかどうかなど)、最優先スタイル(!importantしていがあるか)、とか...。

ベンダープレフィックス
策定の草案段階にあるプロパティ/値をブラウザが試験的に実装する場合や、ブラウザが独自に拡張したプロパティ/値については、その前に「ベンダープレフィックス(接頭辞)」を付けることが推奨されている。(IEでは対応済みでも,Chromeは非対応の場合は-webkit-を付けるとか?)
各ブラウザのベンダープレフィックス
ブラウザベンダープレフィックス
InternetExplorer-ms-
Firefox-moz-
Google Chrome,Safari-webkit-
Opera-o-

このベンダープレフィックスは、仕様が草案から勧告候補になった時には外すことが推奨されている。

セレクタ

セレクタのグループ化 : カンマで区切る。e.g.) h1,h2,h3 { color: blue; }

タイプセレクタ : 要素名のみのセレクタ。e.g.) h1 { color: blue; }

ユニバーサルセレクタ : *をセレクタとし、全ての要素に対してスタイルを適用する。e.g.) * { color: blue; }

属性セレクタ :

クラスセレクタ : 要素名.クラス名 の形式をクラスセレクタという。(class属性の値は複数の要素で同じものが指定可能) e.g.) *.pastral { color: blue; }

IDセレクタ : 要素名#id名 の形式。(id属性は文書内でユニーク) e.g.) h1#chapter1 { color: blue; }

擬似クラス(要素の状態や特徴で分類するもの。):

擬似要素(htmlの要素では表せない性質に対してスタイルを適用するもの。擬似クラスは指定要素の集合から特定の要素を選択する形だが、擬似要素は要素としては表せない内容、つまり要素内の部分的な内容を対象とするもの、、でいいのか?)※css2.1ではコロン1つcss3ではコロン2つなんで注意らしい :

セレクタの組み合わせ(親兄弟や前後関係などで適用対象を選べる。擬似クラスと似てるが、組合せなら dev:enabled input:focus { color: red; } などのようにできるってことかね?。。ただし、擬似要素については最後のセレクタにのみ適用されるらしい。つまり適用されるのは最後、一番右側に書いた要素に対して適用されるってことだね。):


html文書への適用方法

その文書のデフォルトのスタイルシートを指定する必要がある。(ということは要素ごとに指定しようと思えばできるってことか)。html文書でcssをデフォとする場合は、head要素内に、<meta http-equiv=“Content-Style-Type” content=“text/css”>と記述する。因みに、html5ではcssがデフォルトのスタイルシート言語となっているため、この記述は不要。

適用方法(推奨は柔軟性の高い外部スタイルシート)

外部スタイルファイルの文字コードは@charsetで指定する。
e.g.)
@charset “UTF-8”;
h1 {
 color:whilte;
}

メディアクエリー

デバイスごとにスタイルを変更する。
メディアタイプ
allすべてのデバイス
brille点字ディスプレイ
embossed点字プリンタ
handheld携帯端末
printプリンタ(印刷プレビュー含む)
projectionプロジェクタなど
speech音声合成装置(スクリーンリーダー、音声ブラウザ等)
screenスクリーン(PCディスプレイ等)
tty文字幅が固定のメディア
tvテレビ

メディアクエリーはメディアタイプなどをcss3で拡張したもの。メディアタイプとメディア特性、論理演算子を利用してより細かくメディア条件を設定できる。

基本的な書式: メディアタイプ and (メディア特性: 値) and (メディア特性: 値) ...
e.g.ⅰ) screen and (color) ※カラー環境のスクリーン
e.g.ⅱ) screen and (min-width: 400px) and (max-width: 700px) ※400ピクセル以上700ピクセル以下

複数指定はカンマ区切り。e.g.) @media screen and (color), projection and (color) {...}
notで否定。これはメディアクエリに指定された条件以外の環境を示すもので、メディアタイプ(screen等)を否定するものでは無いので注意!e.g.) @media not screen and (color) {...} ※カラー環境以外のスクリーンを意味する。
メディアクエリー非対応ブラウザに当該スタイルを適用させない、only。e.g.) @media only screen and (color) {...} 対応しているブラウザではonlyが無視される。恐らくonlyは、初期css勧告時に後々新機能を追加しやすくするためのキーワードで、onlyが付いている宣言(ブロック)は、宣言構文に非対応なら宣言自体を無効とするものとするものだと思う。。

使用例

メディア特性
widthウィンドウの幅
heightウィンドウの高さ
device-widthディスプレイの幅
device-heightディスプレイの高さ
orientationデバイスの方向(横/縦置きか, landscape/portrait)
aspect-ratioウィンドウの縦横比
device-aspect-ratioディスプレイの縦横比
colorカラーの場合、その色のビット数(モノクロなら0)
color-index出力デバイスの持つカラーテーブルのエントリ数
monochromeモノクロの場合、その階調のビット数(カラーなら0)
resolution解像度
(min-/max- の接頭辞をつけて 以上/以下という制限を指定できる ※orientation,scan,gridを除く)

ボックスモデル

cssでは各要素が「ボックス」と呼ばれる四角い領域を生成し、この領域や領域を囲む枠線に対して大きさや色、位置の指定をすることでスタイルを変更する。

ボックスの構成を下記に示す。上にあるものほど、前面に表示される

内容領域
要素の内容が表示される領域。width/heightプロパティで指定したサイズは、この領域に適用される。但し、box-sizingプロパティにborder-boxを指定すると、width/heightの値はボーダーボックスのサイズになる。
パディング
内容領域とボーダーの間の領域
パディングボックス
css3で規定されたパディング辺より内側の領域。パディング領域と内容領域を含む
ボーダー
要素の周りに表示される枠線。ここまでが、要素に指定した背景画像や背景色が適用される範囲。
ボーダーボックス
css3で規定されたボーダー辺から内側の領域。
マージン
ボーダーの外側に設定される空白領域。要素に指定した背景は適用されない(親要素の背景が見える)。

上下に隣接したボックスがある場合、それらのマージンは相殺されて多い方が設定される。が下記のようなルールがある。(ん、つまりマージンは上下で重なるのが前提ってこと?) 。ボックス間の左右のマージンは相殺されない。

単位や色など

単位の指定方法

色の指定方法

以下はcss3で追加。

角度の指定方法

URLの指定方法

CSSでURL(URI)やファイルの位置を指定する場合には、url() を使用し、絶対url,相対urlで記述する。また、引用符("や')で括ることもできる。