目次 |
---|
・CSS3とは ・背景とボーダー他 ・2D/3D 変形 ・時間的変化 ・アニメーション ・透過色 ・グラデーション ・段組 ・テキスト ・フォント ・セレクタ ・Media Queries |
1996年12月に、「Cascading Style Sheets, level 1 (CSS1)」が勧告されました。
これにより、フォントプロパティ、色および背景のプロパティ、テキストプロパティ、ボックスプロパティなどが策定され、現在のような表現が出来るようになりました。
1998年5月の「Cascading Style Sheets, level 2 (CSS2)」の勧告では、モニターやTV、紙媒体などの表示媒体によって自動的にスタイルシートを変更できるようになりました。
2004年2月に「Cascading Style Sheets, level 2 revision 1 (CSS2.1)」が勧告候補と上がりましたが、マイナーチェンジ止まりでした。
現在のスタイルシートの多くは、1998年勧告のCSS2を基にしています。
今回のCSS3は、約10年以上経ってのバージョンアップとなります。
CSS3は厳密にはHTML5とは別のものになります。
「HTML5とは」で述べたように、狭義の意味では「HTML5」と「CSS3」は別の仕様となっています。
他のAPIと共に、広い意味で「CSS3」も「HTML5と関連API」の集合体の一部、または多くの資料には「HTML5+CSS3」として表現されるものです。
CSS3の仕様は、各機能を分化して管理しようという考え方から、全体がモジュール化されています。
各モジュールは、「中途半端な実装を避けるため」に個別に完成させるようになっています。
CSS3の各モジュールの説明や詳細は大変膨大な資料となりますので、ここではCSS3によって追加された主なものを中心に一部をご紹介致します。
各CSS3モジュールに対応したブラウザでご覧いただけますと、その効果を確認することが出来ます。
なお実装にはばらつきがありますので、ブラウザによっては効果を確認出来ないものもございます。
CSS3から、背景やボーダー、そして影などをスタイルシートで定義出来るようになります。
border-box:
背景をボーダーボックスに適用する(初期値)
padding-box:
背景をパティングボックスに適用する
content-box:
背景をコンテントボックスに適用する
padding-box:
背景をパディングボックスに対して相対的に適用する(初期値)
border-box:
背景をボーダーボックスに対して相対的に適用する
content-box:
背景をコンテントボックスに対して相対的に適用する
auto:
自動的に算出される(初期値)
contain:
縦横比は保持して、背景領域に収まる最大サイズになるように背景画像を拡大縮小する
cover:
縦横比は保持して、背景領域を完全に覆う最小サイズになるように背景画像を拡大縮小する
サイズ:
背景画像の幅・高さを指定する
例) 幅100px 高50px
パーセンテージ:
背景領域に対する背景画像の幅・高さのパーセンテージを指定する
例) 幅100% 高100%
( 左上 右上 右下 左下 ) : ( 20px 0px 30px 10px )
15pxの幅で、イメージを指定。
15pxの幅で、イメージを指定。
CSS3から、要素の変形(2D/3D)などをスタイルシートで定義出来るようになります。
translate():要素を移動させます。(わざとはみ出ています)
translateX(),translateY()など単方向の指定も出来ます。
scale():要素を拡大・縮小させます。
scaleX(),scaleY()など単方向の指定も出来ます。
rotate():要素を回転させます。
rotateX(),rotateY()など単方向の指定も出来ます。
skew():要素を傾斜させます。
skewX(),skewY()など単方向の指定も出来ます。
CSS3から、Javascriptを使用せずスタイルシートだけで時間変化を定義出来るようになります。
但し、2011年6月現在 対応しているブラウザはApple SafariとGoogle Chromeだけです。
マウスカーソルが乗ると背景色と文字色が変化します
※SafariかChromeで確認ください。
CSS3から、Javascriptを使用せずスタイルシートだけでアニメーションを定義出来るようになります。
但し、2011年6月現在 対応しているブラウザはApple SafariとGoogle Chromeだけです。
幅と文字色が変化します
※SafariかChromeで確認ください。
CSS3から、透過色を定義出来るようになります。
このボックスが透けます
この文字だけ透けます
CSS3から、グラデーションを定義出来るようになります。
線形グラデーション
円形グラデーション
これまで段組を行うためには、floatを使用していました。
CSS3から、float以外の方法で段組を定義出来るようになります。
段組の例を示します。
段組をするために、今まではtableを使うか、div+floatを使ってきました。
但し、一括して指定できるのは2011年6月現在 対応しているブラウザはApple SafariとGoogle Chromeだけです。
段組をするためには...
段組の例を示します。
段組をするために、今まではtableを使うか、div+floatを使ってきました。
しかし、CSS3からはテキストの段組をするためのプロパティが追加されました
段組をするためには...
段組の例を示します。
段組をするために、今まではtableを使うか、div+floatを使ってきました。
しかし、CSS3からはテキストの段組をするためのプロパティが追加されました
段組をするためには...
CSS3から、テキストの表現をより豊かに表現する定義が出来るようになります。
新しいテキストのプロパティは多々ありますが、その代表的なものを紹介します。
文字に影がつきます(20px 5px 0px red)
絵でないことをマウスカーソルを当てて確認してください。(5px 5px 2px darkblue)
CSS3から、ブラウザで任意のフォントを定義が出来るようになります。
これを「Webフォント」と言います。
「しねきゃぷしょん」(chiphead氏作)を利用しています。
CSS3では、多くのセレクタ(宣言名)も多く追加されています。
CSS3では、多様なデバイス、表示環境に対応するため「Media Queries」という仕組みが用意されています。
表示媒体のサイズやアスペクト比、カラー表示の可否などscreenやprintなどのMedia Typeだけでは表現できない場合にも対応出来るようになりました。
特にスマートフォンやスマートTVなどにスタイルを適用するために役立ちます。
例えば、幅640pxまでは赤枠、それ以上は青枠になるような場合です。
@media screen { div { border : 1px solid blue; } } @media screen and (max-width : 640px) { div { border-color : red; } }