to write a better html

76
よりよいHTMLを書くために

Upload: aotak

Post on 21-Jun-2015

169 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: To write a better HTML

よりよいHTMLを書くために

Page 2: To write a better HTML

HTMLの話をしよう

Page 3: To write a better HTML

…の、前に

Page 4: To write a better HTML

ファイルシステムの話をしよう

Page 5: To write a better HTML

「何それ難しそう…」

Page 6: To write a better HTML

「何それ難しそう…」そんなことはありません

Page 7: To write a better HTML

ファイルシステムは難しくない● 詳しい話は確かに難しい● おおざっぱな話は単純● おおざっぱに分けてコンピュータのファイルは二種類だけ

● テキストファイルとバイナリファイル

Page 8: To write a better HTML

テキストとバイナリの違いテキスト

● .txt / .csv● .html / xml● .js● .css● .php● .ini● .htaccess● ...

バイナリ● .bmp / .png / .gif / .jpg● .swf● .wav / .wma / .mp3● .avi / .wmv / .mpg● .doc / .pdf / .xls● .exe / .dll / .lib● .zip● ...

Page 9: To write a better HTML

テキストとバイナリの違いテキスト● テキストエディタで開ける

● 生のデータのままで人間が読める

バイナリ● 専用のプログラムが必要

● 生のデータのままでは読めない

とりあえず今は名前だけ覚えておけばOK

Page 10: To write a better HTML

HTMLの話に戻る

Page 11: To write a better HTML

HTMLはテキストファイル● テキストエディタで開ける● 生のデータのままで人間が読める● 普通のテキストファイルとどこが違う?

Page 12: To write a better HTML

HTMLはテキストファイルHTMLは…● タグを使って文字を大きくしたり画像を表示したりできる

● 別の場所にリンクを張れる→普通のテキストファイルでは無理

Page 13: To write a better HTML

HyperText Markup Language

HyperText● 別の場所にリンクを張れる

Markup

● タグを使って文字を大きくしたり画像を表示したりできる

Page 14: To write a better HTML

HyperText Markup Language

「リンクを張れて」「タグ付けできる」から、HTML

→それ以外はテキストファイルと同じ

Page 15: To write a better HTML

ところで…

Page 16: To write a better HTML

HTMLと見栄えの話昔のHTML● fontタグで文字の大きさや色を変えよう● tableタグで配置を調整しよう

Page 17: To write a better HTML

HTMLと見栄えの話昔のHTML → 昔は昔、今は今!● fontタグで文字の大きさや色を変えよう → CSSで!● tableタグで配置を調整しよう → CSSったらCSSで!

今のHTML● 文字の見栄えや体裁はCSSでやろう● HTMLは文書構造を示すためのもの!

Page 18: To write a better HTML

とはいえ

Page 19: To write a better HTML

人間は見栄えから文書構造を読み取る● 斜体や太字

Page 20: To write a better HTML

人間は見栄えから文書構造を読み取る● 斜体や太字 → 重要そう!

Page 21: To write a better HTML

人間は見栄えから文書構造を読み取る● 斜体や太字 → 重要そう!● 大きな文字

Page 22: To write a better HTML

人間は見栄えから文書構造を読み取る● 斜体や太字 → 重要そう!● 大きな文字 → 重要そう!

Page 23: To write a better HTML

人間は見栄えから文書構造を読み取る● 斜体や太字 → 重要そう!● 大きな文字 → 重要そう!● 文章の先頭

Page 24: To write a better HTML

人間は見栄えから文書構造を読み取る● 斜体や太字 → 重要そう!● 大きな文字 → 重要そう!● 文章の先頭 → 重要そう!

Page 25: To write a better HTML

人間は見栄えから文書構造を読み取る● 斜体や太字 → 重要そう!● 大きな文字 → 重要そう!● 文章の先頭 → 重要そう!● 例:新聞記事の見出しは左上が一番大きい

Page 26: To write a better HTML

人間は見栄えから文書構造を読み取る● 斜体や太字 → 重要そう!● 大きな文字 → 重要そう!● 文章の先頭 → 重要そう!● 例:新聞記事の見出しは左上が一番大きい

見栄えと構造は切っても切れない関係

Page 27: To write a better HTML

けれども

Page 28: To write a better HTML

コンピュータのためのHTML

● コンピュータもHTMLを読む● 例:Google検索エンジンのクローラ● コンピュータは見栄えから文書構造を読み取れない

● どうやって読み取る?→ そのためのHTML

Page 29: To write a better HTML

コンピュータのためじゃないHTML

span要素にCSSでfont-weight:bold(太字)

span要素にCSSでcolor:red(赤字)

Page 30: To write a better HTML

コンピュータのためじゃないHTML

span要素にCSSでfont-weight:bold(太字)

span要素にCSSでcolor:red(赤字)

コンピュータ「どっちが重要なの???」

Page 31: To write a better HTML

コンピュータのためじゃないHTML

span要素にCSSでfont-weight:bold(太字)

span要素にCSSでcolor:red(赤字)

コンピュータ「どっちが重要なの???」コンピュータ「どっちもspanだ!

じゃあ重要じゃないんだね!」

Page 32: To write a better HTML

強調したかったのに……

Page 33: To write a better HTML

強調したかったらstrong要素を使おう!

Page 34: To write a better HTML

コンピュータのためのHTML

strong要素にCSSでfont-weight:bold(太字)

span要素にCSSでcolor:red(赤字)

Page 35: To write a better HTML

コンピュータのためのHTML

strong要素にCSSでfont-weight:bold(太字)

span要素にCSSでcolor:red(赤字)

コンピュータ「どっちが重要なの???」

Page 36: To write a better HTML

コンピュータのためのHTML

strong要素にCSSでfont-weight:bold(太字)

span要素にCSSでcolor:red(赤字)

コンピュータ「どっちが重要なの???」コンピュータ「片方strong使ってるね。

こっちの方が重要なんだね」

Page 37: To write a better HTML

strongいいじゃん

Page 38: To write a better HTML

コンピュータのためじゃないHTMLstrong要素にCSSでfont-weight:bold(太字)

ここは太字にしよう、こっちも太字にしたいな

strong要素にCSSでcolor:red(赤字)

あっちもこっちも赤字にしよう

Page 39: To write a better HTML

コンピュータのためじゃないHTMLstrong要素にCSSでfont-weight:bold(太字)

ここは太字にしよう、こっちも太字にしたいな

strong要素にCSSでcolor:red(赤字)

あっちもこっちも赤字にしよう

コンピュータ「このサイトstrongだらけだ…」

Page 40: To write a better HTML

コンピュータのためじゃないHTMLstrong要素にCSSでfont-weight:bold(太字)

ここは太字にしよう、こっちも太字にしたいな

strong要素にCSSでcolor:red(赤字)

あっちもこっちも赤字にしよう

コンピュータ「このサイトstrongだらけだ…」コンピュータ「こんなに多いなんておかしい!

詐欺かも…?」

Page 41: To write a better HTML

タグは適切に使いましょう

Page 42: To write a better HTML

適切なタグは適切な文書構造から

Page 43: To write a better HTML

コンピュータのためのHTML

● 適切な文書構造でHTMLを書くとコンピュータにとっても理解しやすい

Page 44: To write a better HTML

コンピュータのためのHTML

● 適切な文書構造でHTMLを書くとコンピュータにとっても理解しやすい

● コンピュータが理解しやすいHTMLはコンピュータが評価しやすいHTML

Page 45: To write a better HTML

コンピュータのためのHTML

● 適切な文書構造でHTMLを書くとコンピュータにとっても理解しやすい

● コンピュータが理解しやすいHTMLはコンピュータが評価しやすいHTML

● コンピュータが評価しやすいHTMLは検索エンジンで検索しやすい

Page 46: To write a better HTML

コンピュータのためのHTML

● 適切な文書構造でHTMLを書くとコンピュータにとっても理解しやすい

● コンピュータが理解しやすいHTMLはコンピュータが評価しやすいHTML

● コンピュータが評価しやすいHTMLは検索エンジンで検索しやすい→ SEOで有利!

Page 47: To write a better HTML

文書構造の話をしよう

Page 48: To write a better HTML

文書構造って何だろう● 見出しと本文● 箇条書き● 本文と結びつかない情報

Page 49: To write a better HTML

文書構造って何だろう● 見出しと本文 ← イマココ● 箇条書き● 本文と結びつかない情報

Page 50: To write a better HTML

たとえば、こんなふうに文章をひたすら長く書いているだけだと、文のまとまりがどこからどこまでなのか、一見しただけでは分かりにくく、何を目的にしているのかも読むまで分からない。今ここで「昨日はラーメンを食べたから今日は麺類はいやだな」……ということを突然書かれるとびっくりする。おそらく文章と文章とが適切に分かれているほうが自然なのではないか。

Page 51: To write a better HTML

見出しと本文文章は適切に分けようたとえば、こんなふうに文章をひたすら長く書いているだけだと、文のまとまりがどこからどこまでなのか、一見しただけでは分かりにくく、何を目的にしているのかも読むまで分からない。今ここで「昨日はラーメンを食べたから今日は麺類はいやだな」……ということを突然書かれるとびっくりする。おそらく文章と文章とが適切に分かれているほうが自然なのではないか。

この文も、適切な見出しによって文章の目的が明確化されている。

今日の昼は何にしよう昨日はラーメンを食べたから今日は麺類はいやだな……と思ったけれどもあんかけスパゲッティを食べたい気分だったのであんかけ屋に行ってきました。おいしかったです。

という内容も、「今日の昼は何にしよう」という見出しがあれば、ごくごく自然に受け入れられる。

Page 52: To write a better HTML

見出しと本文構造立てて文章を書こう文章は適切に分けよう文章を適切に分ければ読みやすくなる。

目的を持って文章を書こう見出しは文章の目的地を表す道しるべ。ここを見るだけで読み手は「何についての話なのか」すぐに理解できる。見出しを眺めるだけで文章全体の構成が見えてくる。

順序立てて文章を書こう文章を並べる順番も重要。最初に目的地を示すのが大事なのは見出しに限らない。文章を並べるときも、一番最初に目的をはっきりさせると読みやすい。補足的な内容は後の方に書く。小さな見出しと小さな章立てを組み合わせると、より分かりやすい構成になる。

Page 53: To write a better HTML

見出しと本文● HTMLでは、h1要素からh6要素で見出しを表現する

● 本文はp要素で表現する

Page 54: To write a better HTML

文書構造って何だろう● 見出しと本文● 箇条書き ← イマココ● 本文と結びつかない情報

Page 55: To write a better HTML

このページではHTMLに関する説明を掲載しています。CSSの話もあります。JavaScriptについても書いています。

Page 56: To write a better HTML

もっと分かりやすく!

Page 57: To write a better HTML

このページについて

このページでは下記のことについて説明しています。● HTML● CSS● JavaScript

Page 58: To write a better HTML

箇条書きで階層も表現できる

Page 59: To write a better HTML

HTMLに関する説明● HTMLとは何か

● HTMLを使う目的● HTMLにできること・できないこと

● HTMLの書き方● ブロック要素とインライン要素● 要素と属性

● 付録:HTMLタグ一覧

Page 60: To write a better HTML

箇条書き● 文章中にキーワードを並べるよりも、箇条書きで項目を並べた方が見通しやすい

● 文章中にキーワードを並べたときは階層構造を表現できない

● 箇条書きなら階層構造も表現できる

Page 61: To write a better HTML

箇条書き● HTMLでは、ul要素で箇条書き全体を囲って、個々の項目をli要素で表現する

● 項目に順序をつけるときはul要素ではなくol要素を使う

● 項目に説明をつけるときはdl要素とdt要素、dd要素を使う

Page 62: To write a better HTML

文書構造って何だろう● 見出しと本文● 箇条書き● 本文と結びつかない情報 ← イマココ

Page 63: To write a better HTML

本文と結びつかない情報● 本文の内容そのものと関係がないまたは関係性が薄い情報

● ページ番号や文書全体のタイトルなど● Webサイトの場合、サイト内メニューや著作権表記などがある

● 独立した要素● 見出しがつかないなど、扱いが特殊

Page 64: To write a better HTML

HTMLの弱点

● サイト全体の見出し● グローバルナビゲーション● パンくずリスト● サイドメニュー● 著作権表記

…などを表現するタグはまだ「ない」

Page 65: To write a better HTML

HTMLの弱点● HTMLでは表現する方法がない● div要素で囲って、classに名前をつけることで表現してきた

● これまでHTMLではうまく表現できない● 旧来のHTMLがWebサイトの変化に対応しきれていない

Page 66: To write a better HTML

HTMLの弱点● classはCSSだけのためのものじゃない● classはHTMLの要素に意味を持たせるためのもの

● 適切なマークアップのために、適切なclass名を!

Page 67: To write a better HTML

もうすぐできる● HTML5では

● header要素 / footer要素● nav要素● section要素 / aside要素

など、本文と本文から独立した情報とを、別々に取り扱いやすくなる

Page 68: To write a better HTML

もうすぐできる● div要素のclass名にHTML5の要素名を使うと

HTML5への移行がスムーズになる● div class="header" や div class="footer"● コンピュータは今後HTML5に対応していく方向

● ゆくゆくはWebサイトに適した文書構造をHTMLで表現できるようになっていく

Page 69: To write a better HTML

HTML5も完全じゃない● HTML5でもパンくずを表現するタグはない● ページングを表現するタグもない● 著作権表記を表現するタグもない

● 前はaddress要素で表現できたのに…● チャットログやコメントなど会話を表現するタグが追加されるはずだったのになくなった

● しかもそれまで推奨されてきたdl要素は不適当になった(代わりにp要素を使う?)

Page 70: To write a better HTML

HTML5も完全じゃないけど● b要素、i要素、small要素は非推奨から復活

● それぞれ「強調ではないけど差別化したい」ときに使う

● hr要素がセクション区切り要素として復活● 「p要素の中のbr要素」に対する「div要素や

section要素の中のhr要素」というイメージ?● 表現の選択肢が増えるのはいいこと

Page 71: To write a better HTML

適切な文書構造を適切なマークアップで

● 文書構造があってそこにマークアップが乗る

● 文書構造に合わせたマークアップが必要● でもHTMLだけでは不充分● 今はdivとclass名を使い分けて表現する

Page 72: To write a better HTML

適切なマークアップは難しい…

Page 73: To write a better HTML

よいclass名のすゝめ● 形状や色など見た目に由来するclass名はやめよう

● redやgreen、leftやrightはあまりよくない例

● 汎用的すぎるclass名だけを使うのはやめよう

● よく被る

Page 74: To write a better HTML

よいclass名のすゝめ● パンくずリスト

● topicpathかbreadcrumbか●好みもあるけどtopicpathの方が論理的な名前の気がする

● ページング● pager、pagination、paging…● せめて自分が使う分は統一したい

Page 75: To write a better HTML

よいclass名のすゝめ● サイドバー

● HTML5的にはasideになるらしい● sidebarはbarが形状由来でイケてない

● シングルカラムサイトのフッタナビゲーションはsidebarと中身が一緒なのにclassはfooterって何か違う…ということが起きる

● 赤文字の注意書き、緑文字の補足● redとかgreenはやめよう● caution(注意)、note(補足)など

Page 76: To write a better HTML

悩んだらGoogle!