ホームページを作る基本言語は、WEB標準W3C標準に準拠した、 HTMLです。
このHTMLで書いた命令文をブラウザが読み取り、指示通り正しく表示するだけなのです。
HTMLには、数十種類のバージョンがありDOCTYPE(DTD)文書宣言で提示します。
各HTMLバージョンにより記述するHTML文法やタグも多少違ったり、
HTML、XHTMLの違いでもDTDが違うので当然、解釈や表現方法も異なります。
また、HEAD内に、文字コード、lang属性、METAのtitle,description,keywords や
CSS,javascript環境などもブラウザやクローラーに必要に応じて情報伝達します。
以下の全ての説明の勉強も
覚える必要も一切ありませんが、
自分の利用環境に合わせて
コピーペーストで使いまわすと簡単です。
文字化け防止や意図通りに表現する為に
正しいHTML文法で記述しましょう。
<!DOCTYPE
<html>
<head>
</head>
<body>
</body>
</html>
HTMLの構造は、図の通りで、
最初にDTD(DOCTYPE)を記述し(必要ならXML宣言)
<html></html>の全体枠の中に
<head>と<body>の2つの枠を作ります。
html,head,bodyは、開始タグと終了タグがあり
最後の終了タグを </ >
で閉じて、一対にします。
html,head,bodyは、1ページ内に一対のみ。
※ 他のタグも基本的には、開始タグと終了タグがあります。
開始タグと終了タグの間にコンテンツを入れ囲む。
headの中は、titleやmetaなどの隠れた情報。 bodyの中が、内容が表示される部分。
body内には、更にdiv,table,h,p,ulなどで、内容となるコンテンツを割り当てます。
XHTMLは、特定の部分を除き半角小文字で記述する決まりですが、
HTMLは、特定の部分を除き大文字でも小文字でも良いのです。しかし将来を見据え、
今の内に半角小文字に慣れるために小文字統一を推薦します。(DTD,id,colorなどで大文字の場合あり)
HTMLの一行目には、HTMLバージョンのDOCTYPE(DTD)宣言を記述し
HTMLのバージョンを宣言し、その仕様でのHTML文法を利用しなくてはいけません。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<!DOCTYPE html>
<!DOCTYPE html PUBLIC に続く次の
前半の部分 "-//W3C//DTD HTML 4.01//EN"
が「フォーマル公開識別子」で、
後半の部分 "http://www.w3.org/TR/html4/strict.dtd"
が「システム識別子」です。
「公開識別子」と「システム識別子」の間で改行出来ますが、各識別子内での改行は出来ません。
HTML参考書で「システム識別子」は削除しても良いと記されているので、何気なく「システム識別子」を削除していたらブラウザによってデザインの差異に苦労した経験があります・・・。 解釈・表示が変わるので、デザインを重視する場合には、「システム識別子」を削除しない方が良いかもしれません。特にXHMLで削除するのは意味がないです。
過去互換モード (Quirks) と 標準準拠モード (Standards) のどちらかで解釈されます。
また、DOCTYPEは、loose,strict,XHTMLにてHTML文法のルールが違ったり解釈・表現も違います。
各バージョンや仕様で幅や線などの細かい表現が違います。ブラウザの解釈に任されています。
大文字と小文字の違い。HTMLは「DOCTYPE HTML」、XHTMLは「DOCTYPE html」
XHTMLでは、<br> <hr> <img>などの終了タグが無いものは、 />で閉じます。
例: <br /> <hr /> <img />
<?xml version="1.0" encoding="Shift_JIS"?>
<?xml version="1.0" encoding="EUC-JP"?>
<?xml version="1.0" encoding="ISO-2022-JP"?>
<?xml version="1.0" encoding="UTF-8"?>
XML宣言は、HTMLなら不要です。XHTMLの一行目に記述。
XHTML1.0でも1.1でも、XML宣言のバージョン値は、「1.0」。
(XHTMLとXMLのバージョンは無関係)
XML宣言は、IE6で過去互換モード (Quirks) になってしまうので、削除されがちです。
役立たずと言うか、この辺の問題が難しい所です。(「UTF-8」「16」ならXML宣言の省略も可能)
<html lang="ja">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
<html lang="ja">
lang属性及びxml:lang属性は、当該要素の言語を指定する属性です。
html要素として利用する場合が多く他言語を混合させる場合には、部分的に利用。
日本語の場合は、"ja" と言語を記述し、ブラウザや検索エンジンに伝えます。
en (英語) fr (フランス語) de (ドイツ語)
it (イタリア語) es (スペイン語) zh (中国語) ko (韓国語)
国コードlang="ja-JP"
や dir 属性dir="ltr"
は、lang属性があれば一般的には不要です。
<!DOCTYPE
<html>
<head>
</head>
<body>
</body>
</html>
ヘッド(head)の文字通り「頭」の部分です。
<html>の次行から<head>を記述します。
<head>要素は省略しても良い様ですが、
多くのWEBサイトできちんと記述されています。
文字コード と タイトル や CSS、javascript
を結ぶ場合のlinkは、必須になります。
<head>
head開始タグ
<meta
文字コード
<title></title>
タイトル
<meta
metaタグ
<link
CSSやjavascriptのlink
</head>
head終了タグ
ここ数年で文字コードの記述が多くなりました。昔は、文字化け環境も多く
Netscape Navigatorなどが代表的で「x-sjis」や「x-euc-jp」がその名残です。
日本で多い文字コードは、Shift_JIS、UTF-8、EUC-JP の3つです。
head内の最上部に記述する事。文字コードより上部の文字が文字化けする可能性がある。
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<meta http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP">
XHTMLでは、最後の閉めが、 /> 終了タグが無い物は、全て />で閉める。(以下参照)
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" />
一般的なのは、シフトJISです。携帯サイト、Windows、Mac 標準。
増加傾向なのが、UTFです。JAVAやFLASH、LinuxOS環境で標準になってきています。
外国語、プログラム、DBも絡める場合は、昔からのUNIX系でEUCを好む業界人も多い。
テキスト保存時の文字コードもこのMETAの文字コードと合わせる必要がある。
※ 各エディタによって保存形式の表示が微妙に違うようです。
文字コード | シフトJIS | Unicode | Unicode | 日本語EUC | JIS |
---|---|---|---|---|---|
種類 | Shift_JIS | UTF-8 | UTF-16 | EUC-JP | ISO-2022-JP |
メモ帳 | ANSI | UTF-8 | Unicode | … | … |
各エディタ | Shift_JIS | UTF-8 | UTF-16 | EUC-JP | JIS,ISO-2022-JP |
SEO的にも文字化け防止の意味でも文字コードの次に記述したいのが、title です。
<title></title>
<title> と </title> の間にタイトルを記入します。
例1:<title>HEADのTITLE設定 WEBサイトの作り方</title>
例2:<title>HTML構造とHEAD内の設定 - ホームページ作り方</title>
まずは、30全角未満で、そのぺージに見合ったタイトル(余裕があればメインのサイトタイトルも)で、
文の切れ目で空スペースを入れる(または、 - , | などで区切る)。
ブラウザのタイトルバーに表示されたり「お気に入り」の登録名になったり
検索結果のタイトルに表示されたり検索エンジンの最重要キーワードになります。
短か過ぎず長過ぎず、各ページ毎に各タイトルを設定する事。
タイトルを見てクリック(訪問)するユーザーが多いので
キーワードを絡めた魅力的で完結なタイトルにしましょう。
各ページ毎に、そのページのテーマに合ったタイトルを設定します。
検索結果のタイトルの下の説明文になる事が多く、説明文を確認してから
クリック(訪問)するユーザーが多いのでクリックされやすい魅力的な文章にしましょう。
<meta name="description" content="">
content="" の " と " の間に文章を入れる。(以下参照)
<meta name="description" content="説明文章。説明文章・・・。">
descriptionが説明文として必ず掲載される訳では無く、検索キーワードに該当しない場合、
検索結果が本文から抜粋される。80全角から110全角程度で表示(80全角以内程度で記入)
カテゴリ登録サイトなどは、カテゴリの登録内容が掲載される場合もある。
meta には、終了タグがないのでXHTMLは、 />
で閉じる(半角スペースとスラッシュが必要)。
例:<meta name="description" content="" />
検索エンジンにて、キーワードとして重要視されなくなってしまいましたので
最近は、meta name="keywords"を設定しないウェブサイトも多々ある。
ページ内の重要単語を数個(1-10個以内)だけ、半角カンマで区切って記入。
少ない方が、各ポイントが高い。先(左順)から優先順。無関係ワードや多すぎるのも危険。
<meta name="keywords" content="">
content="" の "と" の間に単語を入れる。(以下参照)
<meta name="keywords" content="単語1,単語2,単語3,単語4">
meta には、終了タグがないのでXHTMLは、 /> で閉じる。
<meta name="keywords" content="" />
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<meta http-equiv="refresh" content="10;url=○○.html">
<meta name="author" content="○○">
<meta name="generator" content="notepad">
<meta name="robots" content="all">
<meta name="robots" content="noindex">
<meta name="robots" content="nofollow">
<meta name="robots" content="NONE">
<meta name="robots" content="noarchive">
<meta name="robots" content="noimageclick">
<meta name="robots" content="noimageindex">
<meta name="googlebot" content="unavailable_after: 01-Jan-2009 09:01:23 EST">
<meta name="robots" content="noindex, nofollow, noarchive">
<meta name="robots" content="NOINDEX,NOFOLLOW,NOARCHIVE">
<meta name="revisit_after" content="30 days">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<meta http-equiv="refresh" content="10">
(キャッシュ10秒。自動転送可能)<meta http-equiv="Expires" content="0">
(キャッシュ0秒)<meta http-equiv="Expires" content="Thu, 01 Jan 2009 09:01:23 GMT">
<meta http-equiv="Expires" content="86400">
(24時間後)<meta name="rating" content="general">
上記の「検索避け」「拒否・禁止」のMETA対策をする場合は、
HAEDの<head>のすぐ真下(HEAD内の一番上、文字コードの上)に記述しなければいけません。
nameなどの属性が同じ場合は、カンマで区切って複数を一行にし設置します。
今後の仕様変更や、各社クローラー、各検索エンジン、各UA 、などの対策もありそうですが、
結局は、クロールや更新がなければ意味がありません。 (正直、必ず指定通りになるとは限らないのです)
検索拒否は、METAよりもサーバ側で対処した方が良さそうです。( robots.txtファイル、.htaccess)
<meta name="robots" content="nosnippet">
(各検索エンジン共通)<meta name="Slurp" content="nosnippet">
(Yahoo,YST用)<meta name="googlebot" content="nosnippet">
(Google用)<meta name="robots" content="noydir">
<meta name="Slurp" content="noydir">
<meta name="robots" content="NOODP">
<meta name="googlebot" content="NOODP">
<meta name="googlebot" content="NOODP,nofollow">
class="robots-nocontent"
(METAではないけど参考までに)<meta name="y_key" content="○○○">
<meta name="verify-v1" content="○○○">
<meta name="google-site-verification" content="○○○" />
<meta name="google" value="notranslate">
class="notranslate"
をクラスで割り当てるEmail us at <span class="notranslate">sales at mydomain dot com</span>
XHTMLでMETAを記述する場合は、最後の閉めを /> で終了。
「リンク」とは、連結することです。WEB以外のビジネスの現場でも良く聞かれますが、WEB上では、ハイパーリンクと言われ、HTMLの a要素(アンカー要素)で画像やテキストファイルなどを連結させます。現在地のWEBページからリンクメニューなどをクリックする事で別のWEBページにジャンプする。
HEAD内のLINK要素は、WEBサイトの関連URLを結びつけたり、WEB情報やスタイルシート、代替文書などのリソースと結びつける働きをします。直接クリックする為では無く、HEAD内から誘導や参照する役目があります。
<link rel="stylesheet" href="○○.css" type="text/css">
<link rel="alternate stylesheet" href="○○.css" type="text/css" title="○○">
<link rel="start" href="/" title="○TOP○">
<link rel="index" href="index.html" title="○○">
<link rel="prev" href="○○.html">
<link rel="next" href="○○.html">
<link rev="made" title="管理者にメール" href="mailto:○○@○○">
<link rel="alternate" media="handheld" href="URL/i/">
<link rel="alternate" type="application/atom+xml" title="Atom" href="URI">
<link rel="alternate" type="application/rss+xml" title="RSS" href="URI">
<link rel="shortcut icon" href="○○/favicon.ico">
<link rel="canonical" href="http://www.○○.com">
XHTMLでMETAを記述する場合は、最後の閉じを /> で終了。