@@ -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 ページが構成されていることがよくわかります。
258263DOM (Document Object Model) は、この HTML のタグを
259264JavaScript の世界で操作することができる 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
347357CSS セレクタについては、[ 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+ レガシー… 😱 ;
422+
423+
424+ まあ、肩を落とさないでください。
425+
426+ レガシーとはいえ、レガシーブラウザーを
427+ 相手にするライブラリを読み書きするときには、
428+ どうしても必要になります。
429+
430+ ちなみに、「レガシー?帰らせていただきます」は
431+ フロントエンドエンジニアとして大切な感覚ですので
432+ 大事にしてください。
364433
365434
366435#### 実習
0 commit comments