html & cssemaame.com/images/html_css_js.pdfhtml & css で、できることは何でもok...

48
HTML & CSS + J avaScr i pt

Upload: others

Post on 11-Apr-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

HTML & CSS+

J avaScr i pt

Page 2: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

2

Agenda

★ HTML & CSS☆ HTML + CSS

★ User Stylesheet - Stylish

★ JavaScript☆ Document Object Model☆ Ajax

★ User JavaScript - Greasemonkey

Page 3: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

3

大きく概要だけ喋ります

★ 「ブラウザ間の違い」という魔窟

★ 基本的な概念をおおざっぱに説明

Page 4: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

4

HTML & CSS

Page 5: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

5

文章 : HTMLと

見た目 : CSS

Page 6: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

6

第一回のまとめ

+文章 スタイル

画像工学レポー

Page 7: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

7

HTML & CSS

+HTML CSS<html><head><title</h

Page 8: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

8

H yperT extM arkupL anguage

Page 9: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

9

HTML

★ タグを入れ子にして、木構造を記述

<html> <head> <title>タイトル</title> </head> <body> <h1>見出し1</h1> <p>本文</p> </body></html>

Page 10: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

10

タグとは何か?

★ その部分の「意味」

★ Good☆ strong☆ blockquote

★ Bad☆ font☆ bold

Page 11: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

11

C ascadi ngS t yl eS heet

Page 12: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

12

CSS

★ 見た目を記述する

h1 { font-size: 200%; /* 文字の大きさ */ border: 1px splid #000; /* 枠線 */}

p { line-height: 1.4; /* 行間 */}

Page 13: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

13

i d&

cl ass

Page 14: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

14

id と class

★ id☆ 文書内に一つだけ

★ class☆ 文書内に複数有っても良い

★ タグで囲まれた範囲に意味を付加

Page 15: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

15

id と class の設定方法 - HTML

<div id="main">

</div>

<div class="entry">

</div>

★ タグに埋め込む

Page 16: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

16

id と class の設定方法 - CSS

#main { color: black;}

.entry { color: blue;}

★ #hoge が id、.hoge が class

<div id="main">

</div>

<div class="entry">

</div>

Page 17: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

17

User Stylesheet

Page 18: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

18

スタイルシート

を変えれば

見た目が変わる

Page 19: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

19

User Stylesheet

★ 気にくわないページのスタイルを改造

★ Firefox だと Stylish 拡張☆ http://userstyles.org/

Page 20: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

20

本来のページ

+HTML CSS A<html><head><title</h

Page 21: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

21

スタイルシートを追加する

+HTML CSS A<html><head><title</h

CSS B

Page 22: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

22

+ Javascript

Page 23: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

23

動き、変化のあるページを作る

★ JavaScript がほとんどのブラウザに搭載

★ Gmail や Livedoor Reader など

★ 動きの激しいものには Flash が

Page 24: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

24

D ocumentO bj ectM odel

Page 25: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

25

文章の木構造へのアクセス

body

p#foo p#bar

var foo = document.getElementById('foo');

Page 26: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

26

文章の追加

body

p#foo p#baz p#bar

var bar = document.getElementById('bar');var baz = document.createElement('p');baz.id = "baz"document.insertBefore(baz, bar);

Page 27: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

27

スタイルの変更

★ 木構造だけじゃなくて、スタイルも変更

★ ハイライトしたり

★ デザインが変わったり

var foo = document.getElementById('foo');foo.style.border = "2px solid blue";foo.style.background = "#ffffcc";document.styleSheets[0] // ブラウザ依存大

Page 28: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

28

イベントハンドラ

★ エレメントのイベントから呼ばれる関数☆ onClick : クリック☆ onKeyDown : キーボードを押し下げた

★ 任意の関数を登録できる☆ addEventListener (Opera, Firefox)☆ attachEvent (IE)

Page 29: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

29

大概のことはできる

★ HTML & CSS で、できることは何でもOK

★ イベント周りにブラウザ非互換☆ ライブラリで吸収するのが一般的

Page 30: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

30

A synchronousJ avaScr i ptA ndX ML

Page 31: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

31

通信できたらもっと良いんじゃ?

★ Ajax☆ ページ遷移しない、画面更新☆ IE が最初に実装 XmlHttpRequest☆ XML に限らず、非同期通信全般

★ Google Suggest からブレイク☆ Gmail☆ Google Maps☆ Livedoor Reader

Page 32: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

32

最初は普通

HTML & CSS+

JavaScript

HTTPRequest

Page 33: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

33

JavaScript から通信

XMLor

JSON

HTTPRequest

HTML, CSSの書き換え

JS

Page 34: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

34

セキュリティ

★ 通信はページ読み込み元に限定

★ 回避策☆ script タグ☆ img 埋め込み

Page 35: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

35

User JavaScript

Page 36: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

36

機能を追加したり

改造したり

Page 37: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

37

例1:AutoPagerize

★ 下までスクロールすると次のページを連結☆ http://userscripts.org/scripts/show/8551

★ デモをご覧下さい

Page 38: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

38

例2-1:魔道をキーボードで読む

// キーを押したときのイベントハンドラを登録observe( window, 'keydown', keydownHandler );

// キーを押したときに、呼び出されるイベントハンドラfunction keydownHandler( event ) {

// クロスブラウザ対策event = event || window.event;var code = event.keyCode || event.charCode;

if ( isBackKey( code ) ) { window.location.href = backUrl; }if ( isNextKey( code ) ) { window.location.href = nextUrl; }

}

Page 39: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

39

例2-2:HTML の解析

var links = document.getElementsByTagName( 'center' )[0].getElementsByTagName( 'a' );

// 漫画ページ、目次ページの簡易判定if ( links[0].text == "前のページ" ) {

// 漫画ページnextUrl = links[1].href;backUrl = links[0].href;

} else {// 目次ページvar trs = document.getElementsByTagName( 'tr' );

nextUrl = trs[trs.length-3].getElementsByTagName( 'a' )[0].href;backUrl = trs[trs.length-2].getElementsByTagName( 'a' )[0].href;

}

Page 40: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

40

より情報を

得るには

Page 41: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

41

RSS Reader

★ Livedoor Reader 使ってます☆ だいたい 150 サイトぐらいを登録

★ 更新された記事だけを読む

★ 「読まない」の判断が超高速

★ 一日 30 分ぐらいがつぶれる

Page 42: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

42

Social Bookmark Service

★ 人様のブックマークを RSS Reader に登録

★ 面白いサイトの発見

★ もちろん、自分用にも便利

Page 43: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

43

Firebug 拡張

★ Firefox の拡張☆ JavaScript コンソール☆ JavaScript デバッガ☆ HTML のその場編集☆ CSS のその場編集

Page 44: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

44

書籍 (HTML+CSS)

★ Web標準の教科書 - XHTMLとCSSでつくる“正しい”Webサイト

Page 45: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

45

書籍 (HTML+CSS)

★ 実践 Web Standards Design - Web 標準の基本 と CSS レイアウト & Tips

Page 46: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

46

書籍 (JavaScript)

★ JavaScript 第五版

Page 47: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

47

JavaScript については Web で

★ ライブラリをヒントに探す☆ 歴史が浅い☆ 玉石混淆 → 本に関しても・・・

★ Prototype.js

★ jQuery

Page 48: HTML & CSSemaame.com/images/html_css_js.pdfHTML & CSS で、できることは何でもOK イベント周りにブラウザ非互換 ライブラリで吸収するのが一般的 30

48

ご静聴

ありがとう

ございました