画像やオブジェクトの大きさ
CSSで使用される画像はGIFやJPGなどのバイナリー形式の画像、SVGなどのマークアップ言語、CSSグラデーションのようなCSS固有の形式など多くのソースからもたらされます。また、CSSによって整形される文書にも多くの画像や動画、プラグインや他の文書が埋め込まれ、これらは総称して“オブジェクト(Objects)”と言います。
オブジェクトはその種類や大きさについての多くの情報をCSSで使用するために提供します。
オブジェクトの大きさの種類
自然寸法と自然サイズ
“自然寸法(Natural Dimensions)”はオブジェクトが持つ本質的な大きさです。“自然高(Natural Height)”と“自然幅(Natural Width)”、“自然アスペクト比(Natural Aspect Ratio)”の組み合わせで、オブジェクトはこれらをすべて持っている場合もありますが、このうちいくつか、もしくはすべてが欠落している場合もあります。
ラスター画像は自然高、自然幅、自然アスペクト比のすべてを持ちます。一方、SVG画像のようなベクター画像は自然高と自然幅のみ、もしくは自然アスペクト比のみで他の寸法が欠落している場合もあります。また、CSSグラデーションや“iframe”要素による埋め込み文書などは自然高、自然幅、自然アスペクト比のいずれも持ちません。ほとんどの場合にはオブジェクトが2個の自然寸法を持っていれば残り1個の自然寸法が自動的に算出されるため、オブジェクトが自然寸法を2個だけ持つことはありませんが、フォーム・コントロールなど一部のオブジェクトは自然高と自然幅のみを持ち、自然アスペクト比を持たないことがあります。
オブジェクトの自然アスペクト比に“0”や“∞”が含まれる場合にはオブジェクトは自然アスペクト比がないものとして扱われます。
ICO形式のアイコンである場合などにオブジェクトに複数の大きさがある場合にはその中で最も大きい面積のものを自然寸法として使用します。その大きさとなる複数のアスペクト比があるか、もしくは複数のアスペクト比があって大きさが決まっていない場合にはデフォルト・オブジェクト・サイズのアスペクト比に最も近いものが使用されます。この時、デフォルト・オブジェクト・サイズの中にカバー・コンストレイントによって収まりながら最も大きな面積となるアスペクト比を選択します。もし、複数のアスペクト比がこの条件にあてはまるのであれば最も横幅が大きなものが自然寸法として使用されます。
自然高と自然幅はまとめて“自然サイズ(Natural Size)”と呼ばれます。
指定サイズ
“指定サイズ(Specified Size)”はCSSの“width”プロパティや“height”プロパティ、“background-size”プロパティなどで指定されるオブジェクトの大きさです。指定サイズは絶対的な横幅と高さ、もしくは大きさについての制限の組み合わせです。
コンクリート・オブジェクト・サイズ
“コンクリート・オブジェクト・サイズ(Concrete Object Size)”はオブジェクトの自然寸法と指定サイズ、オブジェクトが置かれたコンテキストでのデフォルト・オブジェクト・サイズを組み合わせた結果生成される長方形状の領域です。
デフォルト・オブジェクト・サイズ
“デフォルト・オブジェクト・サイズ(Default Object Size)”は絶対的な横幅と高さを持つ長方形上の領域で、自然寸法や指定サイズが欠落している場合にコンクリート・オブジェクト・サイズを算出するために使用されます。