Skip to content

Commit bce6aa4

Browse files
author
Kuniwak
committed
Add stage2
1 parent 963eae6 commit bce6aa4

File tree

1 file changed

+74
-5
lines changed

1 file changed

+74
-5
lines changed

README.md

Lines changed: 74 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,11 @@ JavaScriptTraining リポジトリを fork します。
112112
- Web ブラウザ
113113
- Node.js, io.js
114114

115+
JavaScript の特色のひとつは、ブラウザ上で
116+
動作するということです。ブラウザ上で動作できる
117+
言語はいくつかありますが、一般的に
118+
JavaScript がよく使われます。
119+
115120

116121
### いつ JavaScript を使うのか
117122

@@ -258,8 +263,8 @@ Web ページが構成されていることがよくわかります。
258263
DOM (Document Object Model) は、この HTML のタグを
259264
JavaScript の世界で操作することができる API です。
260265

261-
JavaScript の世界にもってこられた HTML タグは、
262-
DOM 要素と呼ばれています
266+
HTML タグは、JavaScript の世界で
267+
DOM 要素というオブジェクトとして扱われます
263268

264269

265270
[<img src="http://mixi-inc.github.io/JavaScriptTraining/images/github-tree.png" height="300px" style="background-color: white">](http://mixi-inc.github.io/JavaScriptTraining/images/github-tree.png)
@@ -340,13 +345,21 @@ var div = document.querySelector('.foo div:last-child');
340345

341346
というように、CSS クラスセレクタ `.foo`
342347
該当する要素の子要素を子孫セレクタ (スペース) で
343-
取得し、このうち、CSS 疑似セレクタ `:last-child`
344-
マッチするものを取得するという操作になります。
348+
取得し、このうち `div` タグから CSS 疑似セレクタ
349+
`:last-child` にマッチするものを取得する
350+
という操作になります。
351+
345352

353+
図にすると、このようになります。
354+
355+
[<img src="http://mixi-inc.github.io/JavaScriptTraining/images/css-selector-example.png" height="300px" style="background-color: white">](http://mixi-inc.github.io/JavaScriptTraining/images/css-selector-example.png)
346356

347357
CSS セレクタについては、[MDN のCSS リファレンス](https://developer.mozilla.org/ja/docs/Web/CSS/Reference#Selectors)
348358
参考になります。
349359

360+
仕様を見ないと我慢ならぬ!という立派な方は、
361+
[セレクタ Level 3 仕様](http://standards.mitsue.co.jp/resources/w3c/TR/css3-selectors/) を見るとよいでしょう。
362+
350363

351364
#### 実習
352365

@@ -360,7 +373,63 @@ CSS セレクタについては、[MDN のCSS リファレンス](https://develo
360373

361374
### ステージ2
362375

363-
意図通りに DOM 要素のスタイルを変更するトレーニング
376+
意図通りに DOM 要素のスタイルを
377+
変更するトレーニング
378+
379+
380+
#### DOM 要素のスタイル
381+
382+
DOM 要素には、
383+
384+
- 先ほど DOM API に渡した ID 属性
385+
- CSS クラス属性などの目印となる属性
386+
- 見た目を操作するスタイル属性
387+
388+
などが付属しています。
389+
390+
391+
このうち、スタイル属性を編集すると、DOM 要素の
392+
見た目を変化させることができます。
393+
394+
たとえば、Github のヘッダの octocat の
395+
style.color 属性を変更してみました。
396+
397+
[<img src="http://mixi-inc.github.io/JavaScriptTraining/images/octocats.png" width="600px" style="background-color: white">](http://mixi-inc.github.io/JavaScriptTraining/images/octocats.png)
398+
399+
400+
このスタイル属性は CSS の仕様と対応するように
401+
定められています。
402+
403+
ただ、アニメーションを含め、見た目の変更は
404+
CSS クラス名の追加/編集/削除によっておこなう
405+
ことが推奨されてきています。
406+
407+
[レンダリングエンジンによる最適化が効くのです!](https://developer.mozilla.org/ja/docs/Web/Guide/CSS/Using_CSS_animations)
408+
409+
JavaScript は見た目の変更のきっかけを
410+
与えるだけにとどめるのが、上手な
411+
HTML/JavaScript/CSS 分業の基本です。
412+
413+
414+
残念なお知らせですが、
415+
今回のトレーニングは CSS を
416+
書けるようになることが目的ではないので、
417+
レガシーな element.style を編集するやり方を
418+
学びます。
419+
420+
421+
レガシー… &#x1f631;
422+
423+
424+
まあ、肩を落とさないでください。
425+
426+
レガシーとはいえ、レガシーブラウザーを
427+
相手にするライブラリを読み書きするときには、
428+
どうしても必要になります。
429+
430+
ちなみに、「レガシー?帰らせていただきます」は
431+
フロントエンドエンジニアとして大切な感覚ですので
432+
大事にしてください。
364433

365434

366435
#### 実習

0 commit comments

Comments
 (0)