「
HTML5/CSS3
」を編集中
2011年1月14日 (金) 18:10時点における
Hamana
(
トーク
|
投稿記録
)
による版
(
差分
)
← 古い版
|
最新版
(
差分
) |
新しい版 →
(
差分
)
ナビゲーションに移動
検索に移動
警告: このページの古い版を編集しています。
公開すると、この版以降になされた変更がすべて失われます。
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。
スパム攻撃防止用のチェックです。 けっして、ここには、値の入力は
しない
でください!
2010年代のWeb制作に欠かせなくなるであろう、HTML5とCSS3についてまとめてみる。 <div id="manual"> ==HTML5 概要== 1999年に勧告されたHTML4.01の後継にあたる。FlashやSilverlight等のリッチインターネットアプリケーションのプラットフォームを置き換えることを標榜としており、<br>様々な要素を追加・廃止、そして一部定義変更もしている。<br> 2012年3月頃に正式に勧告される予定である。 ==HTML4.01と異なる点== <p>前述した通り、様々な要素が追加・廃止・定義変更されている。※以下は、2010年2月23日版 WHATWG Draft Standardに基づく。今後変更の可能性あり。<br> 廃止要素:'''basefont'''、'''big'''、'''center'''、'''font'''、'''s'''、'''strike'''、'''tt'''、'''u'''、'''frame'''、'''frameset'''、'''noframes'''、'''acronym'''、'''applet'''、'''isindex'''、'''dir'''<br> 新要素については次項を、定義変更された要素については次々項を参照されたい。要素の追加・廃止によってマークアップがより厳格になったため、注意が必要である。<br> また、DTDが存在しないためDOCTYPE宣言が簡略化された。記述方法は以下の項目を参照。</p> <br> ===【head要素内記述】=== head要素内の記述はかなりシンプルになる。<br> '''<!DOCTYPE html>'''<br> <html lang="ja"><br> <head><br> <meta''' charset='''"UTF-8">←charsetが属性化<br> <meta''' name'''="description" content="●●●">←属性名がnameに変更<br> <meta''' name'''="keywords" content="●●,●●">←┘<br> <title>●●●</title><br> '''<link rel="stylesheet" src="css/import.css">'''←type属性が不要になった(scriptについても同様)<br> </head><br> また、従来meta要素でhttp-equiv属性にContent-Typeを指定したりしていたが、HTML5ではこれらの記述は一切不要になった。<br> ==新要素== <p>特に「セクショニング」と「埋め込みコンテンツ」は実務的なニーズが高いとされている。<br> ※以下は、2010年6月24日版 WHATWG Draft Standardに基づく。今後変更の可能性あり。</p> <br> ===【セクショニング】=== '''・section''' <p>div要素の区分け的存在。見出しを付けられるような内容ごとに、このsection要素で区切ることが出来る。<br> コーディングの都合で区切る場合などは、従来通りdiv要素を用いる。</p> '''・nav''' <p>従来の<div id="navi">等の代替として使用できる。nav要素の中にul要素を用いるのが一般的のようである。<br><s>また、パンくずリストやページネーション等に用いるのも効果的。</s> [http://www.cybergarden.net/ 益子さん]によると、主要なナビゲーションのみに用いるのが正しいらしい。</p> '''・header''' <p>従来の<div id="header">の代替として使用できる。また、ドキュメント内に1つしか書けないということはないので、セクションの先頭に用いることもできる。</p> '''・footer''' <p>従来の<div id="footer">の代替として使用できる。また、ドキュメント内に1つしか書けないということはないので、セクションの最後に用いることもできる。</p> '''・aside''' <p>メインコンテンツではないが、それと直接関連のある内容をマークアップする際に用いる。<br> 例えば[http://www.dokidokivisual.com/ きららのTOPページ]であれば、「うごうご4コマ」「Web限定連載」の部分にこれを用いるのが適していると言えそうである。</p> '''・article''' <p>他の部分と切り離してもひとつの文書やページとして体裁が成り立つ部分に用いる、とされている。<br>が、この定義の解釈は難しく、誤った使い方をしてしまいがちなので注意が必要である。<br>※トップページには存在しないケースも多い。迷ったら「section」を用いる。</p> '''・hgroup''' <p>その名の通り、見出しをグループ化する要素。多くの場合、ページのタイトルとサブタイトル(タグライン)各々をh1~h6要素でマークアップしたものを<br>グループ化するのに用いられる。</p> <br> ===【グルーピング】=== '''・figure''' <p></p> <br> ===【埋め込みコンテンツ】=== '''・video''' <p>文字通り、動画を埋め込むための要素。従来のやり方ではFlashが必要であったりしたが、video要素では不要になった。<br> video要素には様々な属性が存在する。自動再生させる'''autoplay'''、ページ読み込みと同時にバッファを開始させる'''autobuffer'''、<br> 万が一動画が読み込まれなかった場合に画像を表示させる'''poster'''など。<br> ただ、このvideo要素にはコーデックやIE対策など、様々な問題点が指摘されているため、実用できるようになるにはまだ時間がかかるとされている。</p> '''・audio''' <p>文字通り音楽を埋め込むための要素だが、ブラウザ間でサポートしているコーデックに差があるため、実装する際はやや複雑を要する。<br> 詳細については[http://www.html5.jp/html5doctor/native-audio-in-the-browser.html html5doctorの記事]を参照されたい。</p> '''・source''' <p>他のメディア要素と組み合わせて使用する。例えば、audio要素の中にsource要素を用いて音楽ファイルをロードする、など。</p> '''・canvas''' <p>JSと組み合わせて使用することによって図を描いたりできる。詳しくは[http://www.html5.jp/canvas/ HTML5.JPの解説ページ]を参照されたい。</p> '''・embed''' <p></p> <br> ===【テキストレベル】=== '''・mark''' <p>テキスト部分をハイライトする際に使用する。イメージとしては、蛍光ペンなどでテキストをマークするように、このmark要素を用いることができる。</p> '''・wbr''' <p>英文やURL表記などのアルファベットで、折り返し可能な文字がない連続したテキストの場合指定した幅に収まらなくなり、<br> IEやSafari、Chromeでは折り返されずにはみ出てしまう。<br> FirefoxやOperaでは折り返されるが、折り返し位置が各々のブラウザの判断によるので適切でない位置で折り返す場合がある。<br> それを解決するために、折り返してもかまわない箇所にこのwbr要素を指定する。</p> '''・time''' '''・ruby/rt/rp''' <p></p> <br> ===【フォーム】=== '''・meter''' <p>最大値のある数量に用いる。体重や長さなど、最大値が明確にならない数量には適していない。<br> meter要素にはいくつかの属性がある。実際の値となる'''value'''、最小の許容値を示す'''min'''、最大の許容値を示す'''max'''など。<br> 例:<meter value="1" min="1" max="20">20件中1件目</meter></p> '''・datalist''' '''・keygen''' '''・output''' '''・progress''' <p></p> <br> ===【インタラクティブ】=== '''・details''' '''・summary''' '''・command''' '''・menu''' '''・device''' <p></p> ==定義変更要素== '''・address''' <p>基本的にはサイト管理者や制作者の連絡先だけとなり、住所や店舗情報に使うのはNGとなった。</p> '''・em、strong''' <p>従来はem=強調、strong=より強調 であったが、HTML5ではem=強調(制作者目線)、strong=重要(ユーザー目線) となった。</p> '''・small''' <p>従来は装飾的な意味合いが強く、用いるのにはあまり好ましくないとされていたが、HTML5からは著作権表示や注釈などに用いることが出来るようになった。</p> '''・i、b''' <p>これらの要素も用いるのにはあまり好ましくないとされていたが、i要素はイタリック表記、b要素はボールド表記が一般的なテキストに用いることができるようになった。<br>が、特に用いる機会はあまりなさそうである。</p> '''・s''' <p>非推奨要素であったが、HTML5では非推奨ではなくなったので、打ち消し線が気軽に作れるようになった。(2010年10月19日更新の草案より)</p> <br> ==CSS3 概要== 事実上現在の「標準」となっているCSS2.1の後継にあたる。2010年6月現在、策定中にあるため実用段階ではないという考えが強い。<br> しかし、一部プロパティやセレクタはすでに様々なブラウザでの実装が進んでいる。が、IEでの実装具合は言うまでもない。 ==CSS2.1と異なる点== 新プロパティや新セレクタが登場し、CSS2.1では実装できなかった角丸や細かいセレクタ設定などが可能となった。<br> また、従来はJSを用いないと実装出来なかったこともこのCSS3では一部実装可能となっている。<br> すなわち、CSS3の登場によってWebの表現技法が広がったわけである。 ==新プロパティ== いくつかの実装の進んでいないプロパティは以下のように先頭にベンダープリフィックスをつけたプロパティを併記する必要があるので注意。<br> '''-moz-プロパティ:'''<br> '''-webkit-プロパティ:'''<br> <br> '''・background:rgba(R,G,B,a);''' <p>バックカラーをRGBで指定できるようになり、かつ不透明度(値は1.0~0.0)も指定できるようになった。</p> '''・opacity:a;''' <p>こちらはボックス全体の不透明度を指定する。バックカラーだけでなくテキストなどの包含要素も影響する。値は同じく1.0~0.0。</p> '''・text-shadow:x y z c;''' <p>文字通りテキストにシャドウを付ける。xにはX方向のズレ、yにはY方向のズレ、zにはぼかし距離を、それぞれpx単位の値で指定する。cにはシャドウの色を16進数で指定する。</p> '''・box-shadow:x y z c;''' <p>こちらはボックスにシャドウを付ける。値の指定方法は text-shadow と同様。 また、このプロパティはベンダープリフィックスが必要となる。</p> '''・border-radius:r;''' <p>ボックスに角丸を作ることができる。rには角丸の半径をpxで指定。親要素の背景が画像の場合、角丸部分が白抜けになってしまうことがあるので注意。<br> また、このプロパティもベンダープリフィックスが必要となる。</p> '''・background-image:gradient();''' <p>ボックスの背景色にグラデーションをつけられる。-moz-と-webkit-で記述法が異なるので注意。<br> [-moz-]<br> background-image:-moz-linear-gradient(グラデ方向, 開始色, 終了色);<br> グラデ方向はtopで縦方向、leftで横方向。色は16進数で指定する。<br> [-webkit-]<br> background-image:-webkit-gradient(linear, 開始位置, 終了位置, color-stop(位置, 色), color-stop(位置, 色));<br> グラデ方向は開始位置と終了位置の関係で決まる。<br> 縦グラデ:left top, left bottom 横グラデ:left top, right top 斜めグラデ:left top, right bottom<br> color-stopは、開始色と終了色が必要になるため最低2つは必要で、中間で色を変えたりする場合には3つ以上に増やすことも可能。<br> 位置には0~100%(開始が0で終了が100)、色は16進数で指定する。</p> '''・transform:動作(値);''' <p>要素の位置移動、拡大縮小、回転、ねじれを指定できる。動作によって値の指定方法が異なるので注意。<br> 位置移動:動作=translate、値=X方向の距離, Y方向の距離<br> 拡大縮小:動作=scale、値=X方向への倍率, Y方向への倍率(0.1~1.0)<br> 回転:動作=rotate、値=回転角度(単位はdeg、マイナスで反時計回り)<br> ねじれ:動作=skew、値=X軸の傾斜角度, Y軸の傾斜角度</p> ==新セレクタ== '''・:nth-child( )''' <p>( )内には任意の数値などを指定する。例えば p:nth-child(3) とすると、3番目に出てくるp要素を指定することができる。<br> 数値以外では、3n+1で3つごと、oddで奇数番目、evenで偶数番目を指定できる。</p> '''・:nth-of-type( )''' <p>前述のnth-child( )とほぼ同じ働きをするが、入れ子構造になっている場合では子要素全体で数えるnth-child( )に対し、nth-of-type( )は同じ要素ごとに数える。<br> 例えば、div要素の中にp要素とdiv要素が存在する場合に、'''div:nth-of-type(even)'''とすると、親のdiv要素の中のp要素とdiv要素それぞれで偶数番目に出てくる要素を指定する。<br> 一方、'''div:nth-child(even)'''とすると、親のdiv要素の中全体で数えるので、子のp要素とdiv要素は関係なく偶数番目に出てくる要素を指定することになる。</p> ==プログレッシブエンハンスメント== 前述の通り、IEはCSS3に殆ど対応していない。そこで、Web Designing 2010年4月号に以下のような考え方が掲載されていたので紹介する。<br> IEユーザーにはローリテラシーユーザーが多く、一方でFirefoxやSafari、Chrome、Operaのユーザーには、ハイリテラシーユーザーが多いという傾向がある。<br> そのため、前者にはCSS2.1による最低限のビジュアルデザインを提供し、後者にはCSS3によるビジュアルデザインとインタラクション(よりリッチなユーザー体験)<br>を提供しようという考えだ。<br> 今後この考え方が普及することも考えられる。 ==資料== このページを作成するのに参考にしたページ等をリストアップ。 ===【Webサイト】=== [http://www.html5.jp/html5doctor/index.html HTML5.JP > html5doctor]<br> [http://www.apple.com/html5/ HTML5 Showcase] - AppleがHTML5・CSS3などのWeb標準で構築したサイト<br> [http://web.g.hatena.ne.jp/keywordlist http://web.g.hatena.ne.jp/keywordlist] <br> ===【雑誌・書籍】=== ・Web Designing 2010年4月号 特集「実践・CSSコーディングの新常識」 公式サイト:[http://book.mycom.co.jp/wd/ http://book.mycom.co.jp/wd/]<br> ・Web Designing 2009年11月号 特集「HTML5&CSS3でWebは変わるのか?」 公式サイト:同上<br> ・実践 Web Standards Design 公式サイト:[http://gihyo.jp/book/2009/978-4-7741-3684-4 http://gihyo.jp/book/2009/978-4-7741-3684-4] </div>
編集内容の要約:
Wiki@KDSへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
Wiki@KDS:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
キャンセル
編集の仕方
(新しいウィンドウで開きます)
案内メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWikiについてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報