Recommended
PDF
PDF
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
PDF
PDF
PPTX
PDF
PDF
PPTX
PPTX
PDF
「html5 boilerplate」から考える、これからのマークアップ
PDF
PDF
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
PDF
PDF
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
KEY
PPTX
PDF
PDF
PDF
PDF
KEY
Webapp startup example_to_dolist
PDF
PDF
PDF
PDF
PDF
KEY
PDF
Self Introduction 20100211
PDF
More Related Content
PDF
PDF
悩まないコーディングをしよう! OOCSS,SMACSSを用いた、読みやすくてメンテナブルなCSS設計(Sass対応)
PDF
PDF
PPTX
PDF
PDF
PPTX
What's hot
PPTX
PDF
「html5 boilerplate」から考える、これからのマークアップ
PDF
PDF
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
PDF
PDF
WordPress3.0 新デフォルトテーマ Twenty Ten 大解剖! ~秋バージョン~
PDF
Nuxt なしで Vue App 作る時に乗り越えるべき5つの壁
KEY
PPTX
PDF
PDF
PDF
PDF
KEY
Webapp startup example_to_dolist
PDF
PDF
PDF
PDF
PDF
KEY
Viewers also liked
PDF
Self Introduction 20100211
PDF
PDF
PDF
PDF
PDF
PDF
File API: Writer & Directories and System
PDF
PDF
PPTX
PPTX
PPTX
PPT
Chp396 Multimedia Project
PPTX
PDF
Similar to CSS Design and Programming
PDF
PDF
jQuery Performance Tips – jQueryにおける高速化 -
PDF
イマドキの「タグ=HTML」とスタイルシート=CSS」を知ろう
PDF
jQueryでiTunes Store風スライドショーを作ってみる
PDF
Flashじゃなくて HTML5で ビュンビュン動くサイトを 作ってと言われたら
PDF
PPTX
PDF
Concentrated HTML5 & Attractive HTML5
PDF
KEY
PDF
PDF
PDF
PPT
PDF
0406web creators night_DeNA
PDF
Webデザイン入門2-HTML5 フォーム,映像再生,音声再生, CSS3, レスポンシブWebデザイン-
PDF
PDF
マルチデバイス対応のコーディング・マークアップのポイント
PDF
メディア芸術基礎 Ⅰ 第4回:CSS入門 情報の形を視覚化する
PDF
CSS Design and Programming 1. CSS Design
and
Programming
〜CSS で何ができるの?〜
天野 卓 @ ToI企画
2011.7.23
2. 3. 概要
HTML5 とは
✓ HTML5 に到るまでの歴史
✓ HTML5 の範囲
✓ HTML5 はもう使えるの?
CSS Design and Programming
✓ CSS とは
✓ CSS3 で出来るようになること
✓ CSS Programming
4. 5. 6. 7. 8. 9. 前身である HTML4 / XHTML について
HTML4のW3C勧告
1997年にHTML4.0
1999年にHTML4.01
SGMLベースのHTMLからXMLベースのXHTMLへ
の移行を計画
パースが簡単になる (プログラム側の都合)
MathMLやSVGなどのXML関連技術と連携しやすい
XHTMLのW3C勧告
1999年にXHTML1.0
2001年にXHTML1.1
10. HTML4 / XHTML の2004年頃の状況 - 1
マークアップとしては、XHTMLは受け入れられ始
めていた
XHTML1.0 と宣言されているページは少なくない
正しくマークアップされている
11. HTML4 / XHTML の2004年頃の状況 - 2
しかし
MIMEタイプについては application/xhtml+xml は使
われておらず、ほとんどのページで text/html が使わ
れていた
XHTML1.1 はほとんど使われていない
なぜ?
XMLは整形式(正しい書式)を要求するがWeb上のほ
とんどのページはXMLとしての誤りを含んでいる
XHTML1.1 では text/html を使うことはできず、
application/xhtml+xml を使う必要がある
12. HTML4 / XHTML の2004年頃の状況 - 3
大多数のページでは依然として HTML4.01が使
われていた
各ブラウザに独自拡張が増えてきた
マルチメディア
embed / object
JavaScript
DOM
ブラウザベンダーは新しい標準化を求めていた
13. WHATWG の発足 - 1
2004年、W3Cのワークショップで Mozilla と
Opera が Web の将来に関する提案を行う
後方互換性と明確な移行手段
適切に定義されたエラー処理
ユーザーがオーサリングエラーに直面しないこと
実用性(実用的なユースケースが盛り込まれているこ
と
など
XHTMLに対する新しいAPIではなく、HTMLやCSS
またDOMへの拡張を開発したい
非公式な投票が行われるが否決
14. WHATWG の発足 - 2
同2004年、Apple、Mozilla、Opera によりHTML
をベースとした規格と関連技術の策定を目的とし
た団体、WHATWGが設立される。
Web Hypertext Application Technology Working
Group
WHATWG の策定している仕様
HTML5
Web Applications 1.0
15. HTML5 / Web Applications 1.0
WHATWG の策定した仕様はブラウザベンダーの
支持を集めた
2006年にはW3Cでもワーキンググループが作られ、
現在は共同で策定作業を進めている
一方 XHTML2.0 は支持を得られず
2009年にワーキンググループは終了した
16. HTML5 の仕様書
WHATWG
✓ http://www.whatwg.org/specs/web-apps/current-
work/multipage/
W3C
✓ http://dev.w3.org/html5/spec/
✓ http://dvcs.w3.org/hg/domcore/raw-file/tip/
Overview.html
✓ http://www.w3.org/TR/DOM-Level-3-Events/
✓ ...
17. 18. 19. 20. 21. 22. 23. HTML5 とは
仕様書の範囲として
✓ WHATWG の HTML5 の仕様書
時には
✓ WHATWG の Web Applications 1.0 の仕様書
バズワードとして
✓ 次世代のウェブ技術の総称
24. 25. HTML5 はもう使えるの?
関連API
使えるものと使えないものがる
Firefox / Google Chrome / Opera HTML5 の範囲はかな
り使えるが、IE は 9 でも実装されていない API は多い
使いたい API を実装されているブラウザでのみ使う
Progressive Enhancement
事例 - Web Storage
Twitter
Amazon
26. 27. 28. CSS とは
カスケーディングスタイルシート
(CSS)は、ウェブドキュメントにスタ
イル(フォント, カラー, 余白など)を
追加するためのシンプルな仕組み
です。
[cited from `http://www.a2ztutorial.com/Style/CSS/']
29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. CSS3 の仕様書
CSS current work & how to participate
http://www.w3.org/Style/CSS/current-work
Selectors
http://www.w3.org/TR/css3-selectors/
CSS Color Module
http://www.w3.org/TR/2011/REC-css3-
color-20110607/
Media Queries
http://www.w3.org/TR/2010/CR-css3-
mediaqueries-20100727/
...
43. CSS2 から CSS3 で変わる所
画像や配色の指定が強力になる
Web フォント
角丸・グラデーション・枠線に画像が使える
レイアウトを柔軟に、シンプルに指定できる
段組
display: flexbox
セレクタが追加され細かく要素を指定できる
複数環境への対応
メディアクエリー
44. 45. 46. 47. サブミットボタン - CSS
.submit-button {
background: -webkit-gradient(linear, left top, left bottom,
color-stop(1.00, #0d5eb5), color-stop(0.20, #3690f0),
color-stop(0.20, #3690f0), color-stop(0.00, #70b6f2));
background: -webkit-linear-gradient(
top, #70b6f2 0%, #3690f0 20%, #3690f0 20%, #0d5eb5 100%);
background: -moz-linear-gradient(
top, #70b6f2 0%, #3690f0 20%, #3690f0 20%, #0d5eb5 100%);
background: -o-linear-gradient(
top, #70b6f2 0%, #3690f0 20%, #3690f0 20%, #0d5eb5 100%);
background: linear-gradient(
top, #70b6f2 0%, #3690f0 20%, #3690f0 20%, #0d5eb5 100%);
48. サブミットボタン - CSS
border: 0;
border-radius: 5px;
box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.5),
inset 0 -1px 1px rgba(0, 0, 0, 0.9);
text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.4),
0 1px 1px rgba(255, 255, 255, 0.1);
font-weight: bold;
font-size: 20px;
padding: 10px 40px;
color: white;
}
49. 50. 角丸 - HTML
<div class="container01">
<div class="container02">
<div class="content">
Firefox
</div>
</div>
</div>
51. 52. 角丸 - CSS - 例1
/* border-radius */
div.content {
border: 1px solid #D7D7D7;
border-radius: 10px;
}
53. 角丸 - CSS - 例2
/* background-image を複数指定する */
div.content {
background-image: url("content-header.png"),
url("content-footer.png")
background-repeat: no-repeat,
no-repeat;
background-position: top,
bottom
}
54. 角丸 - CSS - 例3
/* border-image */
div.content {
border-image: url("border.png")
60 60 60 60 / 60px 30px 10px 30px repeat;
}
55. 56. 57. 58. 59. 60. 61. 62. 63. 64. CSS プログラミングの基本的な要素 - DOM
DOM
input で状態を保存
<input type="checkbox" />
<input type="radio" />
scrollbar を利用する手法もある
65. CSS プログラミングの基本的な要素 - CSS
CSS
セレクタで見た目を定義
:checked > .foo
:checked ~ :checked ~ .foo (CSS3)
クリック対象の input を調整する
z-index
pointer-events (CSS3)
状態の変更時にアニメーションさせる
transition (CSS3)
66. 67. 68. 69. 70. ソースのイメージ - DOM
<div id="panel">
<input type="radio" id="r1-1_1-1" name="1-1" />
<input type="radio" id="r1-1_1-2" name="1-1" checked="checked" />
<input type="radio" id="r1-1_1-3" name="1-1" />
<input type="radio" id="r1-1_2-1" name="1-1" />
<input type="radio" id="r1-1_2-2" name="1-1" />
<input type="radio" id="r1-1_2-3" name="1-1" />
<input type="radio" id="r1-1_3-1" name="1-1" />
<input type="radio" id="r1-1_3-2" name="1-1" />
<input type="radio" id="r1-1_3-3" name="1-1" />
<input type="radio" id="r1-2_1-1" name="1-2" />
<input type="radio" id="r1-2_1-2" name="1-2" />
<input type="radio" id="r1-2_1-3" name="1-2" />
<input type="radio" id="r1-2_2-1" name="1-2" checked="checked" />
<input type="radio" id="r1-2_2-2" name="1-2" />
71. ソースのイメージ - セレクタ
z-index
input {
z-index: 0;
}
#r1-1_3-2:not(:checked) ~ #r1-2_3-2:not(:checked) ~
#r1-3_3-2:not(:checked) ~ #r2-1_3-2:not(:checked) ~
#r2-2_3-2:not(:checked) ~ #r2-3_3-2:not(:checked) ~
#r3-1_3-2:not(:checked) ~ #r3-2_3-3:checked ~
input[for="r3-2_3-2"] {
z-index: 10;
}
72. ソースのイメージ - セレクタ
pointer-events
input {
pointer-events: none;
}
#r1-1_3-2:not(:checked) ~ #r1-2_3-2:not(:checked) ~
#r1-3_3-2:not(:checked) ~ #r2-1_3-2:not(:checked) ~
#r2-2_3-2:not(:checked) ~ #r2-3_3-2:not(:checked) ~
#r3-1_3-2:not(:checked) ~ #r3-2_3-3:checked ~
input[for="r3-2_3-2"] {
pointer-events: auto;
}
73. ソースのイメージ - transition
div#complete {
left: 420px;
-webkit-transition: left 200ms linear 800ms;
-moz-transition: left 200ms linear 800ms;
-o-transition: left 200ms linear 800ms;
}
#r1-1_1-1:checked ~ #r1-2_1-2:checked ~ #r1-3_1-3:checked ~
#r2-1_2-1:checked ~ #r2-2_2-2:checked ~ #r2-3_2-3:checked ~
#r3-1_3-1:checked ~ #r3-2_3-2:checked ~ div#complete {
left: 0;
}
74. 75. 76. いとこ要素を指定したいんだけど...
<div id="board">
<div id="panel_1">
<input type="radio" id="1-1" />
<input type="radio" id="1-2" />
</div>
<div id="panel_2">
<input type="radio" id="2-1" />
<input type="radio" id="2-2" />
</div>
...
77. 78. 要素の関連で指定するセレクタ
コンビネータ
EF E要素の子であ CSS2
るF要素
E>F E要素のすぐ後 CSS2
ろの子であるF
要素
E+F E要素のすぐ後 CSS2
ろの弟であるF
要素
E~F E要素の弟であ CSS3
るE要素
79. 80. input は全て兄弟要素として並べてください
<input type="radio" id="1-1" />
<input type="radio" id="1-2" />
<input type="radio" id="2-1" />
<input type="radio" id="2-2" />
<div id="board">
<div id="panel_1">
<label for="1-1"></label>
<label for="1-2"></label>
</div>
<div id="panel_2">
<label for="2-1"></label>
<label for="2-2"></label>
</div>
...
81. 82. 83. 84. 85. DOMの構造や状態で指定するセレクタ
擬似クラス
E:root ルート要素 3
E:checked チェックされて 2
いるE要素
E:nth-child(n) チェックされて 3
いるE要素
86. DOM に対して擬似的にクラスを設定する
<!-- イメージです -->
<html class=":root">
<input type="radio" checked class=":checked :nth-child(1)" />
<input type="radio" class=":nth-child(2)" />
<input type="radio" class=":nth-child(3)" />
<input type="radio" checked class=":checked :nth-child(4)" />
<input type="radio" checked class=":checked :nth-child(5)" />
87. 88. 89. 90. 91. 92. 93. CSS 8puzzle の戦略
<input type="radio" /> を使用
1 ピースにつき 9 つの input を用意
トグルを簡単に表現できるため
移動可能なピースに対して、クリック可能な label
を z-index で一番手前に表示する
初期状態もあらかじめ作成
終了状態になったら用意しておいた Complete!
画面を表示
94. 95. 96. 97. 98. CSS Noughts and Crosses の戦略
<input type="checked" /> を使用
1 マスにつき 5 個の input を用意
最大で 5 手までなので
コンピューターの手順はあらかじめ全て用意
99. 100. CSS のまとめ
CSS3
✓ 少ない記述で要件を満たしたデザインを実現できる
CSS Programming
✓ 意外と役立つこともあります。
✓ Enjoy!
101. 102. 書き捨てのPHP
CSS 8puzzle
https://
gist.github.com/376d7d0a2f3d7533a2e0
CSS Noughts and Crosses
https://
gist.github.com/2d575af617934eb752ed
103.