Section 8 : 短縮属性

 実際の CSS の運用においては,性質の似た属性をいっぺんに指定することが多い。このような属性には短縮属性が用意されていて,手間を省くことができる。

短縮属性

 短縮属性は,同時に指定することの多い属性値をまとめて指定するものである。一般に,短縮属性に与える値は複数で,値を並べる順番が問題になるものもある。

 短縮属性に与える値は,必ず指定しなければならないものと,必要であれば指定するもの(以下では [ ] でくくって示す)に分かれる。値それぞれは,短縮される前のもともとの属性に従って指定することになる。

margin 短縮属性

 margin 短縮属性は First step CSS の Section 10 で紹介した margin-top,margin-bottom,margin-left,margin-right の 4 つの属性を同時に指定する。

margin: (長さ);

 このとき与えられる属性値の数は 1 値から 4 値で,その数によってどのマージンがどのように指定されるか決定される。具体的には,次のようになる。

margin: (全方向);
margin: (垂直方向) (水平方向);
margin: (上方向) (水平方向) (下方向);
margin: (上) (右) (下) (左);

当然ながら,値は半角スペースで区切る。たとえば,次の宣言

margin: 1em;

これは,次と等価である。

margin-top: 1em; margin-bottom: 1em;
margin-left: 1em; margin-right: 1em;

また,

margin: 1em 2em;

これは,次と等価である。

margin-top: 1em; margin-bottom: 1em;
margin-left: 2em; margin-right: 2em;

3 値あるいは 4 値でも同様である。

 また,それぞれにキーワード auto を指定してもよい。

 4 方向の値を指定する短縮属性については,値が 4 つに満たない場合,“指定されていない辺は反対側よりコピーする”という原則がある。たとえば,2 値では,4 値のときの“上”“右”が指定された状態で,“下”は“上”の値から,“左”は“右”の値から,それぞれコピーされる。3 値の場合,“左”がない状態なので,“右”からコピーされる。

 値の与え方は,margin 4 属性とまったく同じである。パーセント指定も同様に行ってよい。

 IE3  margin 短縮属性には 3 値までしか与えられない。

font 短縮属性

 font-短縮属性は,font-sizeline-heightfont-familyfont-stylefont-weightfont-variant の 6 つの属性を同時に指定する。

font: [(文字の装飾)] (font-size)[/(line-height)] (font-family);

 文字の装飾は font-style,font-weight,font-variant の 3 属性で,順不同。指定しなくてもよい。ただし,normal は何に対して指定されているかわからない場合があるので,この場合は個別に指定するのがよい。

 font-size は必須。半角スラッシュを続けて line-height を指定してもよい。この line-height が基準にするのは,直前の font-size である。

 font-family も必須。font-family は値を半角カンマで区切ることに注意しよう。

 たとえば,次の場合。

font: 12pt Times, serif;

これは,次と等価。

font-size: 12pt; font-family: Times, serif;

また,

font: italic bold 120%/1.5 Verdana, Chicago, Arial, sans-serif;

上は,次と等価となる。

font-style: italic; font-weight: bold;
font-size: 120%; line-height: 1.5;
font-family: Verdana, Chicago, Arial, sans-serif;

 文字の装飾に関する属性は順不同であるから,font-size より前であれば,先ほどの例で言えば italcbold の順序を変えてもよい。

background 短縮属性

 background 短縮属性background-colorbackground-imagebackground-attachmentbackground-repeatbackground-position の 5 つの属性を同時に指定することができる。

background: (背景属性);

属性値は順不同で,すべての属性を指定しなくともよい。

background: #9CF url(bg.jpg);

これは,次と等価。

background-color: #9CF;
background-image: url(bg.jpg);

また,

background: url(bg.jpg) repeat-x fixed 0% 50%;

上と等価な記述は,

background-image: url(bg.jpg);
background-repeat: repeat-x;
background-attachment: fixed;
background-position: 0% 50%;

である。指定は順不同でよいが,background-position で 2 つの値を並べる場合はそれらを離して書いてはいけないし,順番も問題になる。

 IE3  背景に関するすべての指定は個別の属性では行わず,この background 短縮属性を使う。