2009年5月16日土曜日

WEB Directionsセミナーに参加したログ




■■ HTML5


▽背景
~HTML4.01の時代は、htmlの仕様がとてもゆるく、WEB上の情報が整理されていない混沌とした状態になっていた~

~HTMLをXMLで定義しなおしたXHTMLというものを策定し、htmlタグをもっと厳格なものにし、文章の構造化を進めた~

~本来のHTMLの目的、つまり文書の構造化をより詳細にするため、今のhtmlでは足りない要素を新たなタグとして定義した~

▽主な特徴・仕様
HTML4.01/XHTML1では文章のかたまりやセクションのかたまりをdivタグで組むしかなかったり、
それぞれの要素(ヘッダ、フッタ、コンテンツ、サイドナビ)も、クラスやID名で意味づけるしかありませんでした。

しかし、HTML5では、htmlがもつタグでのみよりWEBの文書を構造化できるよう、タグが増やされています。


▽主なタグは以下に記述していきます。

-header,footer
・サイトのヘッダー、フッターを組むためのタグ
-section
・一つの章、のような意味合いで使用されるようです
・正直、下のarticleとの関係性が微妙です

-article
・ブログの記事のようなもの
・読み物コンテンツ
・意味がsectionよりも多少強い(判断が微妙なものは、sectionが無難)

-nav(ナビゲーション)
・サイト内にある、ありとあらゆるナビゲーションで使用
・SEO上有効なのではないか
・これを元に、googleのsitemap等を自動作成出来たりするのではないかとも言われている

▽DOCTYPE

<!DOCTYPE html>

▽ブラウザ対応状況

-IE
・ver7,8は対応してきているが、IE6はまったくだめなため、実務レベルでの使用は厳しい
・解決方法として、コンディショナルコメントでhtml5.jsを読み込めばOK
・ただjsでarticleタグをcreate elementし、IEでも新要素として認識させているだけらしい。
・jsオフの場合、ユニバーサルセレクタを使う事で対処はできるらしい(微妙)


▽所感

HTML5は、目的はとても有意義だと思いますし、実現すれば、CSSを組む際にクラスやIDが減るなど、
コーディング作業にも大きなメリットがあると思います。
しかし、現実問題、


■■ microfomats

▽目的
・htmlでは足りない要素を補う事で、文書構造をより充実したものにする
・連絡先等、WEB上以外で使用できるような情報を決まった形でマークアップする事で、
他のアプリケーションに引き渡す事が出来るようになる

▽作成ツール

・クラス名等を間違えると意味がないので、作成ツールを使う方が良いのでは

▽例
<div id="hcard-yuichiro-hirata" class="vcard">
<span class="fn">yuichiro hirata</span>
<div class="org">kamonohashi</div>
<div class="adr"><span class="locality">shibuya</span></div>

▽googleの対応
・vCardやreview等はインデックスし始めた★

▽検証サービス

▽その他
・vCardは電子名刺の標準規格フォーマット



■■ CSS3

▽ボックスモデル
・通常、25%width+borderのボックスを4つ並べると、合計が100%を超えるので、
カラム落ちしてしまう。
→-webkit-box-sizing:border-box;

つまり、IEをモダンブラウザに寄せるのではなく、モダンブラウザの動きをIEのボックスモデルの用に扱う、という、
ちょっと実務レベルでは微妙な感じ

・xray

▽specific extention(プレフィックス)

・-moz- Mozilla
・-webkit- Safari
・-o- Opera
・-ms- IE

「progressive enhancement」
優秀なブラウザにはより高い経験を。


▽border-radius

border-radius:1em, .5em;
border-radius:1em;


■■セレクタ

・first-child・・・指定した要素が親要素の中で一番最初の要素として存在する場合(tr>td)
・first-of-type・・・他に何があるにせよ、指定した要素の中で一番最初の要素(tr>th>td)

・nth-of-type(even)

・nth-child(2n+1)

▽3つづつスタイルを変更
-------
nth-child(3n)
nth-child(3n+1)
nth-child(3n-1)
-------

▽属性セレクタ
a[href$=".pdf"]


■■font embed

▽font face

@font face {
font-family:;
src:;
format("truetype") ←IEではこれがあるとムシする
}


■■ その他

・style master
・-webkit-transition: all 2s・・・全ての指定を2秒かけて実行
・background: -webkit-gradient()・・・背景グラデーション