6月2008

Google|Google と相性の良いサイト

以下はGoogleのウェブマスター向けガイドラインの引用文です。

行っていただきたいこと

ユーザーが探している情報を提供する
サイト内、特にホームで質の高いコンテンツを提供することが、最も重要です。サイトを訪れるユーザーにとって有用な情報が含まれていれば、サイトの人気が上昇して他のサイトからリンクされるようになります。情報に富んだサイトを作成するには、それぞれのページでトピックをわかりやすく正確に記述します。ページを検索するときにユーザーがどのような言葉を入力するかを考慮して、その言葉をサイトで適切に使用します。

他のサイトからリンクが貼られるようにする
他のサイトからリンクが貼られていると、クローラがサイトを見つけやすくなり、Google の検索結果で表示される可能性が高くなります。Google では、検索結果の表示において、ページの重要度を示す独自の指標 PageRank と高度なテキスト マッチ技術を組み合わせて使用し、それぞれの検索に重要かつ関連性のあるページを表示しています。PageRank 評価の一環として、ページ A からページ B へのリンクをページ A からページ B への票として解釈し、1 つのページが獲得した票数を計算します。「重要度」の高いページによって投じられた票はより高く評価され、それを受け取ったページを重要なサイトとして判断します。

Google のアルゴリズムでは、自然リンクと人工リンクが区別されます。 サイトへの自然リンクは、ウェブの動的な性質の一環として、他のサイトがユーザーにとって便利で価値があると判断した場合に増えていきます。人工リンクは、検索エンジンに対してサイトの人気を高める目的で配置されます。リンク プログラムや誘導ページのような、これらのタイプのリンクについてはウェブマスターの向けのガイドラインをご覧ください。

サイトのインデックス登録やランキングで有効なのは、自然リンクのみです。

サイトを簡単にアクセスできるようにする
サイトを論理的なリンク構成で作成します。各ページには、少なくとも 1 つの静的なテキスト リンクからアクセスできるようにします。

Lynx などのテキスト ブラウザでサイトを確認します。Lynx で表示できるサイトであれば、ほとんどのスパイダーで検出できます。JavaScript、cookie、セッション ID フレーム、DHTML、Flash などの機能が使われていると、テキスト ブラウザではサイト全体が表示されません。この場合、スパイダーによるクロールが困難になる可能性があります。

動的なページがある場合は出来るだけ静的なバージョンも作成してください。Google のインデックスには動的なページも登録されますが、動的なページは Google インデックスのほんの一部です。URL に疑問符を含むページなど、動的に生成されるページによってクローラの問題が発生していると考えられる場合は、これらのページの静的なコピーも作成することをお勧めします。 静的なコピーを作成した場合、robots.txt ファイルに動的なページを忘れずに追加してください。追加されていないと、重複したページとして扱われることがあります。

避けていただきたいこと

ページにキーワードを一覧で表示したり、クローキングを行ったり、「クローラ用」のページを用意しないでください。ユーザー向けでないページ、リンク、テキストがサイトに含まれる場合、Google ではそれらを不正と判断し、サイトを登録しないことがあります。

不正な検索エンジン最適化サービスを購入しないでください。Google の検索結果の上位にサイトを掲載することを「保証」すると宣伝しているサービスがありますが、その中には、サイトのフローとコンテンツを改善するアドバイスを提供する合法的なコンサルティングがある一方で、検索エンジンにとって不正な方法を使用している場合もあります。ドメインに不正なサービスが関係している場合は、Google のインデックスから除外される可能性もあります。

重要な名前、コンテンツ、リンクの表示に画像を使用しないでください。 Google のクローラでは、画像に含まれるテキストを認識できません。ページの主要なコンテンツとキーワードを通常の HTML 形式で記述できない場合は、ALT 属性を使用してください。

同じページのコピーを複数作成して別の URL で公開しないでください。画像の多いページに対して同じコンテンツのテキストのみのバージョンと印刷用のバージョンを用意していることがあります。ページが検索結果に掲載されるようにするには、スパイダーが重複ページと認識することのないように、robots.txt ファイルに URL を設定してください。robots.txt ファイルを使用するための詳細については、Googlebot のブロックに関する情報をご覧ください。

Google|品質に関するガイドライン

以下はGoogleのウェブマスター向けガイドラインの引用文です。

  • 検索エンジンではなく、ユーザーの利便性を考慮してページを作成する。ユーザーを騙すようなコンテンツや、「クローキング」を行って検索エンジン用とは異なるコンテンツを表示しないでください。
  • 検索エンジンでの掲載位置を上げるための不正行為を行わない。ユーザーや、ランクを競っているサイトに対して自分が行った対策を明確に説明できるかを判断の目安としてください。その他にも、ユーザーにとって役立つかどうか、 検索エンジンがなくても同じことをするかどうか、などのポイントを確認してみてください。
  • サイトの順位や PageRank を上げるように設計されたリンク プログラムに参加しない。特にウェブスパマーや不正なウェブサイトへのリンクは行わないでください。これらのリンクにより、サイトのランクが下がることがあります。
  • プログラムの送信や掲載順位の確認に不正なコンピュータ プログラムを使用しない。このようなプログラムはリソースを消費し、Google の利用規約に違反します。 Google は、自動化またはプログラム化されたクエリを Google に送信する WebPosition Gold™ のような製品の使用は推奨していません。

具体的なガイドライン

隠しテキストや隠しリンクを使用しない。

コンテンツに隠しテキストや隠しリンクが含まれていると、ユーザーに対するものと異なる情報が検索エンジンに提示されるため、信頼できないサイトと見なされる可能性があります。過度のキーワードといったテキストは、以下のような複数の方法で隠すことができます。

  • 白の背景で白のテキストを使用する
  • テキストを画像の後ろに含める
  • CSS を使用してテキストを隠す
  • フォント サイズを 0 に設定する

隠しリンクとは、Googlebot でクロールされることを意図しているが、下記のようにユーザーからは読み取れないリンクのことです。

  • リンクが隠しテキストで構成されている (たとえば、テキストの色と背景色が同じ)。
  • CSS を使用して、高さが 1 ピクセル程度の非常に小さいハイパーリンクが作成されている。
  • リンクが小さな文字 (たとえば、段落中のハイフン) に組み込まれている。

偽装目的の隠しテキストや隠しリンクが含まれていると判断されたサイトは、Google のインデックスから削除され、検索結果ページに表示されなくなります。隠しテキストや隠しリンクが含まれていないかを評価する際は、サイトのユーザーから見にくい部分がないかをご確認ください。また、ユーザーではなく検索エンジンだけを対象としたテキストやリンクがないかどうかもご覧ください。

テキストを使用して、JavaScript、画像、Flash ファイルといった、検索エンジンがアクセスできないコンテンツを記述する場合は、スクリーン リーダー、携帯電話のブラウザ、プラグインのないブラウザ、低速の回線を使用するユーザーの多くがそのコンテンツを表示できないことにご注意ください。これらのアイテムについて説明テキストを使用すると、サイトのアクセス性は向上します。アクセス性のテストは、JavaScript、Flash、画像をオフにしたり、Lynx などのテキスト ブラウザを使用して行えます。サイトのアクセス性を高めるためのヒントを以下に示します。

  • 画像: alt 属性を使用して説明テキストを含めます。また、画像の近くにわかりやすいキャプションや説明テキストを入れることもお勧めします。
  • JavaScript: JavaScript と同じ内容を noscript タグに含めます。 この方法を使用する場合は、タグの内容が JavaScript とまったく同じであり、ブラウザで JavaScript を無効にしているユーザーに表示されることを確認してください。
  • Flash: 説明テキストとサイト ナビゲーションを Flash の外側に配置します。
  • 動画: 動画の説明テキストを HTML に含めます。 キャプションや字幕を含めることもできます。

サイトで隠しテキストや隠しリンクを見つけた場合は、削除してください。サイトのユーザーに関連する場合は、見やすくしてください。サイトが検索結果から削除された場合は、Google のウェブマスター向けガイドラインで詳細をご覧ください。 変更を加え、サイトが Google のウェブマスター向けガイドラインに従っていることを確認できたら、再審査用にサイトを送信します。

Page Top

クローキング、JavaScript リダイレクト、誘導ページ

クローキング

クローキングとは、ユーザーと検索エンジンとで異なるコンテンツや URL を表示することです。user-agent に基づいて異なる結果を表示するサイトは、偽装の意図があると見なされ、Google インデックスから削除される場合があります。

クローキングの例を以下に示します。

  • 検索ページには HTML テキストのページを表示し、ユーザーには画像や Flash のページを表示する。
  • ユーザーに対するものとは異なるコンテンツを検索エンジンに表示する。

Flash、JavaScript、画像など、検索エンジンがクロールできない要素がサイトに含まれている場合、クローキング コンテンツを検索エンジンに提供するのではなく、サイトのユーザーにもそれらの要素を表示できない可能性があることを考慮して対応してください。たとえば、下記のように対応します。

  • スクリーン リーダーを使用したりブラウザで画像をオフにしているユーザーのため、画像を説明する alt テキストを含める。
  • JavaScript のテキスト内容を noscript タグに含める。

JavaScript と noscript タグに同じテキストを含めるなど、両方の要素に同じ内容を含めるよう、注意してください。実質的に異なる内容が代替要素に含まれている場合は、Google がそのサイトに対して処置を取る可能性があります。

不正な JavaScript リダイレクト

Googlebot は JavaScript を含んでいるページもインデックスに登録しますが、JavaScript そのものに含まれているリンクをたどったりインデックスに登録することはできません。JavaScript の使用は完全に正当なウェブ処理ですが、検索エンジンをだます目的で JavaScript を使用することはそうではありません。たとえば、JavaScript と noscript タグとに異なるテキストを含めることは、ユーザー (JavaScript ベースのテキストを見る) と検索エンジン (noscript ベースのテキストを見る) とで異なるコンテンツが表示されるため、Google のウェブマスター向けのガイドラインに対する違反になります。同様に、検索エンジンに対するものとは異なるページをユーザーに表示する目的でユーザーを別のページにリダイレクトするリンクを JavaScript に埋め込むことは、ウェブマスター向けのガイドラインに対する違反となります。リダイレクト リンクが JavaScript に埋め込まれている場合、検索エンジンは元のページをインデックスに登録し、リンクをたどることはありませんが、ユーザーはリダイレクト先に移動します。クローキングと同様、ユーザーと Googlebot に異なるコンテンツが表示され、ユーザーが意図しない場所に移動することになるため、これは偽装行為となります。

ただし、JavaScript 内にリンクを入れること自体は偽装行為ではありません。サイト上の JavaScript が Google のガイドラインに従っているかどうかを検証する際は、目的を考慮してください。

一般に、検索エンジンは JavaScript の内容にアクセスできないため、JavaScript 内の正当なリンクにもアクセスできない可能性があります。これは、JavaScript に対応していないブラウザを使用するユーザーにも当てはまります。リンクは JavaScript の外部に配置するか、noscript タグ内に複製することができます。

誘導ページ

誘導ページは、特に検索エンジン用に作成されたページです。このページには、ユーザーにとってほとんどまたはまったく役に立たない、しばしば数百に及ぶ多数のリンクが含まれ、価値のある内容が含まれることはありません。HTML サイトマップはユーザーにとって価値のあるリソースですが、これらのリンク ページはユーザーにとって移動しやすいものにする必要があります。多数のリンクを含める場合は、カテゴリに分類するか複数のページに分けることができます。その場合も、単に検索エンジンを対象としたものではなく、ユーザーがサイトのセクションを移動するのに役立つページにしてください。

Google の目標は、最も関連性の高い、価値のある検索結果をユーザーに提供することです。そのため、検索エンジンを操作したり、ユーザーをだまして意図しないサイトにリダイレクトする処理や、検索エンジンだけを対象にしたコンテンツを提供する処理などには反対しています。こういった処理を行うサイトは Google インデックスから削除され、Google 検索結果に表示されなくなる可能性があります。

サイトが検索結果から削除された場合は、Google のウェブマスター向けのガイドラインで詳細をご覧ください。変更を加え、サイトが Google のウェブマスター向けのガイドラインに従っていることを確認できたら、再審査用にサイトを送信します。

Page Top

キーワードの乱用

「キーワードの乱用」とは、Google の検索結果におけるサイトのランキングを操作する目的で、ウェブページにキーワードを詰め込むことです。ページにキーワードを詰め込むと、ユーザーの利便性が低下し、サイトのランキングに悪影響が及ぶ可能性があります。情報に富んだ有用なコンテンツの作成に焦点を合わせ、キーワードは文脈に合わせて適切に使用してください。

この問題を修正するには、サイトで乱用されているキーワードがないかどうかを調べます。通常、これはキーワードのリストや段落で、ランダムに繰り返されています。キーワードはしばしば隠しテキストの形式になっていたり、title タグや alt 属性に含まれていることがありますので、注意して確認してください。

Page Top

重複するコンテンツ

一般に、重複するコンテンツとは、ドメイン内または複数ドメインにまたがって存在する、他のコンテンツと完全に同じであるか非常によく似たコンテンツのブロックを指します。 多くの場合、偽装を意図したものではありません。 悪意のない重複するコンテンツの例には、以下のものがあります。

  • 通常ページと携帯デバイス用の簡易ページの両方を生成するディスカッションフォーラム
  • 複数の異なる URL で表示またはリンクされる商品ページ
  • ウェブ ページの印刷用バージョン

しかし、検索エンジンの操作やトラフィックの増大を意図して、コンテンツが複数ドメインにまたがって複製されることもあります。この種の偽装行為は、ユーザーが検索結果で実質的に同じコンテンツを何度も見ることになり、利便性の低下につながります。

Google は、固有の情報を持つページをインデックスに登録して表示するよう努めています。 たとえば、サイトの各記事に「通常」バージョンと「印刷用」バージョンがあり、そのどちらも robots.txt でブロックされておらずnoindexメタ タグも設定されていなければ、フィルタリングによっていずれか 1 つがリストに登録されます。ごくまれなケースとして、Google でのランキングの操作やユーザーへの偽装を意図した重複コンテンツが表示される可能性が認識された場合も、Google では関係するサイトのインデックス登録とランキングに対して適切な調整を行います。その場合、該当するサイトはランキングが低下するか、Google インデックスから完全に削除されて検索結果に表示されなくなる可能性があります。

重複するコンテンツに関する事前の対策を行い、ユーザーに意図したとおりのコンテンツが表示されるようにするための手順を以下に示します。

  • ページがインデックスに登録されないようにする: Google のアルゴリズムに文書の「最善の」バージョンを判断させる代わりに、優先するバージョンを Google が判別しやすくすることができます。 たとえば、サイトの記事の印刷用バージョンがインデックスに登録されないようにするには、該当するディレクトリを除外するか、robots.txtファイルで正規表現を活用します。
  • 301 を使用する: サイトの構造を変更した場合は、301 リダイレクト (“RedirectPermanent”) を .htaccess ファイルで使用して、ユーザー、Googlebot、他のスパイダーを適切にリダイレクトすることができます (Apache の場合は .htaccess ファイルを使用し、IIS の場合は管理コンソールを使用します)。
  • 一貫性を保つ: 内部リンクの一貫性を保つように努力します。 たとえば、http://www.example.com/page/、http://www.example.com/page、http://www.example.com/page/index.htm の中から、どれか 1 つに絞ってリンクします。
  • トップレベル ドメインを使用する: Google で文書の最も適切なバージョンが表示されるよう、国別のコンテンツを扱う場合は可能な限りトップレベル ドメインを使用します。 たとえば、www.example.de を使用すれば、www.example.com/de や de.example.com の場合よりも、ドイツを対象としたコンテンツが含まれることを Google で認識できる可能性が高くなります。
  • シンジケーションは注意して行う: コンテンツを他のサイトでシンジケーション提供している場合、お客様の判断とは無関係に、Google で最適と判断されたバージョンが常に表示されます。 ただし、コンテンツがシンジケーション提供される各サイトに元記事へのリンクを含めると、役に立ちます。また、シンジケーション提供されたコンテンツを使用するユーザーに、自身のサイト上のバージョンを robots.txt でブロックするように依頼することもできます。
  • ウェブマスターツールを使用して、サイトをインデックスに登録する方法を Google に伝える: www.example.com と http://example.com のどちらを使用するかなど、使用するドメインを Google に伝えることができます。
  • 決まりきった内容の繰り返しをできるだけ少なくする: たとえば、著作権に関する説明をすべてのページの下部に含める代わりに、短い要約文を含め、詳細情報のページにリンクします。
  • スタブの公開を避ける: ユーザーは「空の」ページが表示されることを好まないので、プレースホルダーはできるだけ使わないようにします。たとえば、実際のコンテンツがまだ存在しないページは公開しません。プレースホルダー ページを作成した場合はrobots.txt を使用してクロールをブロックします。
  • コンテンツ管理システムについて理解する: コンテンツがウェブ サイトで表示される仕組みをよく理解しておきます。ブログ、フォーラムなどのシステムでは、同じコンテンツがしばしば複数のフォーマットで表示されます。たとえば、ブログのエントリはブログのホームページ、アーカイブ ページ、および同じラベルを持つ他のエントリのページに表示されることがあります。
  • 類似する内容をできるだけ少なくする: 類似するページが多数存在する場合は、各ページに内容を追加するか、1 つにまとめます。たとえば、旅行サイトで 2 つの都市を別々のページで紹介しているが、ページ内の情報は同じである場合は、両方の都市を紹介する 1 つのページにまとめるか、各ページに内容を追加して、それぞれの都市に関する独自のコンテンツを含めます。

サイトに重複するコンテンツが存在しても、偽装や検索エンジンの結果を操作する意図がうかがえない限り、そのサイトに対する処置の根拠とはなりません。重複するコンテンツが問題になっていて、上記のアドバイスが適用されていない場合、Google の検索結果に表示されるコンテンツのバージョンは Google で選択されます。

Google|技術関連のガイドライン

以下はGoogleのウェブマスター向けガイドラインの引用文です。

  • Lynx などのテキスト ブラウザを使用してサイトを確認する。ほとんどの検索エンジン スパイダーがサイトを認識する場合、Lynx と同様の形式で認識しています。 テキスト ブラウザで、JavaScript、cookie、セッション ID、フレーム、DHTML、Flash などの特殊な機能を使用して作成されたサイトの一部が表示されない場合は、検索エンジン スパイダーがサイトをクロールするときに問題が発生する可能性があります。
  • セッション ID やサイト内のパスを追跡する引数がなくても、検索ロボットがサイトをクロールできるようにする。 これらの技術は個々のユーザーの行動を追跡する場合には便利ですが、ロボットがアクセスするパターンとはまったく異なります。 これらの技術を使用すると、実際は同じページにリンクしている、異なる URL をロボットが排除できず、そのサイトのインデックスが不完全なものになる可能性があります。
  • ウェブ サーバーが If-Modified-Since HTTP ヘッダーに対応していることを確認する。この機能を使用すると、Google が前回サイトをクロールした後にコンテンツが変更されたかどうかをサーバーから Google に通知し、帯域幅や負荷を軽減できます。
  • ウェブ サーバーの robots.txt ファイルを活用する。このファイルでは、クロールを実行するディレクトリと実行しないディレクトリを指定できます。誤って Googlebot クローラがブロックされることのないよう、このファイルにサイトの最新の状態が反映されていることを確認してください。サイトへのロボットのアクセスを制御する方法については、次の URL (英語) をご覧ください。
    http://www.robotstxt.org/wc/faq.htmlGoogle ウェブマスター ツールのrobots.txt 分析ツールを使用して、robots.txt ファイルを正しく使用しているかテストできます。
  • コンテンツ管理システムを導入する場合は、検索エンジン スパイダーがサイトをクロールできるように、システムからコンテンツをエクスポートできることを確認する。
  • robots.txt を使用して、検索結果ページや、検索エンジンからアクセスしたユーザーにとってあまり価値のない他の自動生成ページをクロールしないよう制御します。

Google|デザインおよびコンテンツに関するガイドライン

以下はGoogleのウェブマスター向けガイドラインの引用文です。

  • わかりやすい階層とテキストリンクを持つサイト構造にする。 各ページには、少なくとも 1 つの静的なテキスト リンクからアクセスできるようにします。
  • サイトの主要なページへのリンクを記載したサイトマップを用意する。 サイトマップ内にリンクが 100 以上ある場合は、サイトマップを複数のページに分けます。
  • 情報量が豊富で便利なサイトを作成し、コンテンツをわかりやすく正確に記述する。
  • ユーザーがサイトを探すときに入力する可能性の高いキーワードをサイトに含める。
  • 重要な名前、コンテンツ、またはリンクを表示するときは、画像の代わりにテキストを使用する。 Google のクローラでは、画像に含まれたテキストは認識されません。
  • TITLE タグと ALT 属性の説明をわかりやすく正確なものにする。
  • 無効なリンクがないかどうか確認し、HTML を修正する。
  • 動的なページ (URL に “?” が含まれているページなど) を使用する場合、検索エンジンのスパイダーによっては、静的なページと同じようにはクロールされない場合があることを考慮する。 パラメータを短くしたり、数を少なくすると、クローラで見つけやすくなります。
  • ページのリンクの数を適切な数に抑える (100 未満)。

DOCTYPE宣言(文書型宣言)について

Strict  厳密型DTD
W3Cの仕様で非推奨とされる要素、属性、フレーム機能用の内容を一切使用しない。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
Transitional 移行型DTD
W3C の仕様で非推奨とされる要素や属性も使用する 。
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>

Transitionalで記述していても、非推奨要素などを使用せず、正しい記述に沿って(X)HTMLを記述するのであれば、それは立派な厳密型です。

XHTML記述ルール

終了タグ

HTMLでは一部のタグで終了タグの省略が可能でしたが、XHTMLではどの要素も必ず最後は終了タグで閉じます。

HTML
<ul>
<li>サンプル
<li>サンプル
</ul>

XHTML
<ul>
<li>サンプル</li>
<li>サンプル</li>
</ul>

また、<br>などの空要素は<br />と半角スペースとスラッシュを追加します。

head要素内に記述するmeta情報やlink情報も半角スペースとスラッシュで閉じます。

<meta http-equiv=”Content-Style-Type” content=”text/css” />

<meta name=”keywords” content=”***” />

<rel=”stylesheet” href=”***.css” type=”text/css” media=”screen” />

小文字で記述

HTMLでは大文字と小文字の区別はありませんでしたが、XHTMLでは小文字で記述します。(大文字と小文字を区別します。)

HTML
<P>***********</P>

XHTML
<p>***********</p>

属性値

HTMLでは省略が可能な属性値もXHTMLでは省略する事は出来ません。「属性=”属性値”」形式で記述しなければいけません。

XHTML
<input type="radio" checked="checked">

引用符

XHTMLでは全ての属性値を必ずダブルクォーテーション(”)、もしくはシングルクォーテーション(’)の引用符でくくらなければなりません。

DOCTYPE宣言とレタリングモード表

DOCTYPE宣言とブラウザレタリングモード表
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”>
IE7 IE6 Firefox Opera Safari MacIE5
互換モード 互換モード 互換モード 互換モード 互換モード 互換モード
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”
“http://www.w3.org/TR/html4/loose.dtd”>
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 標準準拠 標準準拠 標準準拠 標準準拠 標準準拠
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Strict //EN”>
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 標準準拠 標準準拠 標準準拠 標準準拠 互換モード
<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Strict //EN”
“http://www.w3.org/TR/html4/strict.dtd”>
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 標準準拠 標準準拠 標準準拠 標準準拠 標準準拠
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”
“http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 標準準拠 標準準拠 標準準拠 標準準拠 標準準拠
<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 互換モード 標準準拠 標準準拠 標準準拠 標準準拠
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 標準準拠 標準準拠 標準準拠 標準準拠 標準準拠
<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 互換モード 標準準拠 標準準拠 標準準拠 標準準拠
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN”
“http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 標準準拠 標準準拠 標準準拠 標準準拠 標準準拠
<?xml version="1.0" encoding="文字コード"?>
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN”
“http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>
IE7 IE6 Firefox Opera Safari MacIE5
標準準拠 互換モード 標準準拠 標準準拠 標準準拠 標準準拠

標準準拠モードと後方互換モード

ウェブページを閲覧する為のInternet Explorer,Opera,Firefoxなどのブラウザには、(X)THML上で宣言された文書型定義(DTD)に応じて表示モードを切り替えてしまう機能が備えられています。これを !DOCTYPE スイッチ(!DOCTYPE Switching)といいます。

表示モードとは、それぞれの互換性を重視した後方互換モードと、W3Cの仕様を重視した標準準拠モードです。ウェブサイト制作者が仕様に準拠して正しい書式に沿った文書を作成していれば何も問題はありませんが、ウェブ技術の進歩に未対応の場合や、一部問題のある記述をしている制作者もいる為に、文書型定義(DTD)に応じて表示モードを自動的に切り替えてしまう機能が備わっています。

DOCTYPEによる解釈の違い

DOCTYPEによる解釈の違いはさまざまありますが、以下はレイアウト崩れ関係する部分です。

  • paddingの解釈
  • borderの解釈
サンプルソース
#sample{
width: 200px;
margin: 0;
padding: 0 10px;
border: 1px solid #cccccc;
}

上記ソースの場合、後方互換モードの解釈は200pxですが、標準準拠モードでは222pxとなります。つまり、標準準拠モードではpaddingとborderはwidthに含まないと解釈されます。

Internet Explorerでは上手く表示できたのに、Firefoxではレイアウトが崩れた,,,,というのは、これが原因の一端です。

関連情報:CSSレイアウト崩れの原因について

非推奨属性と代替え指定

非推奨属性
要素 非推奨属性 代替え属性・CSS
a name id
  target
area target
body text (css)color
a bgcolor (css)background-color
  background (css)background-image
  link (css)a:link
  vlink (css)a:visited
  alink (css)a:active
br clear 他のブロックレベル要素
caption align (css)caption-side
div align

(css)margn-right:auto;

margin-left:auto;

form name id
h name id
hr align (css)margin
  noshade (css)border
  width (css)width
img align (css)float
  border (css)border
  hspace,vspace (css)margin
  name id
input align (css)float
legend align
li type
  value
link target
map name id
object align (css)float
  border (css)border
  hspace,vspace (css)margin
ol compact,start
  type (css)list-style-type
p align (css)text-align
pre width (css)width
script language type
table align (css)float margin
  bgcolor (css)background-color
th bgcolor (css)background-color
  width (css)width
  height (css)height
  nowrap (css)white-space
tr bgcolor (css)background-color
td bgcolor (css)background-color
  width (css)width
  height (css)height
ul compact
  type (css)list-style-type

非推奨要素と代替え指定

非推奨要素
非推奨要素 役割 代替え要素・CSS
applet Javaアプレットの埋め込み object
basefont フォントサイズ (css)font-size
center 中央揃え (css)text-align
dir ディレクトリ型リスト ul
font 文字の大きさや色を指定 (css)color,font-sizeなど
isindex 1行テキスト入力フィールド form,input
menu メニューリスト ul
s 打ち消し線 delもしくは
(css)text-decoration: line-throught;
strike 打ち消し線 delもしくは
(css)text-decoration: line-throught;
u 下線 (css)text-decoration: underline;

background-position:背景画像の配置

プロパティ

background-position

単位 | キーワード(下記参照)

[ left | center | right ]

[ top | center | bottom ]

[ パーセンテージ | px | em ]など

対象

すべての要素

継承の有無

なし

background-positionサンプル

横方向
.sample{
background-image: url(sample.jpg);
background-repeat: repaet-x;
background-position: left top;
(background-position: 0 0;)
}

.sample{
background-image: url(sample.jpg);
background-repeat: repaet-x;
background-position: left center;
(background-position: 0 50%;)
}

.sample{
background-image: url(sample.jpg);
background-repeat: repaet-x;
background-position: left bottom;
(background-position: 0 100%;)
}

縦方向
.sample{
background-image: url(sample.jpg);
background-repeat: repaet-y;
background-position: left top;
(background-position: 0 0;)
}

.sample{
background-image: url(sample.jpg);
background-repeat: repaet-y;
background-position: center top;
(background-position: 50% 0;)
}

.sample{
background-image: url(sample.jpg);
background-repeat: repaet-y;
background-position: right top;
(background-position: 100% 0;)
}
など

[px]を使えばさらに細かな指定可能。

background-repeat:背景画像の繰り返し

プロパティ

background-repeat

キーワード(下記参照)

repeat | repeat-x | repeat-y | no-repeat

対象

すべての要素

継承の有無

なし

repeat(繰り返し)

repeat-x(横方向に繰り返し)

repeat-y(縦方向に繰り返し)

no-repeat(繰り返しなし)

background-repeatサンプル

background-positionを参照

background-image:背景画像指定

プロパティ

background-image

URL

対象

すべての要素

継承の有無

なし

ポイント

アクセシビリティ上、背景画像と文字色はユーザーに見やすい設定にする。

background-image指定サンプル

.sample{ background-image: url(sample.jpg); }

.sample{ background-image: url(images/sample.jpg); }

.sample{ background-image: url(../images/sample.jpg); }

.sample{ background-image: url(http://www.sample.jp/images/sample.jpg); }など

background-color:背景色指定

プロパティ

background-color

単位 | キーワード(下記参照)

対象

すべての要素

継承の有無

なし

ポイント

アクセシビリティ上、背景色と文字色はユーザーに見やすい設定にする。

background-color指定サンプル

p{ background-color: red; }

p{ background-color: #f00; }

p{ background-color: #ff0000; }など

サンプル

color:文字色

プロパティ

color

単位 | キーワード(下記参照)

対象

すべての要素

継承の有無

継承

ポイント

アクセシビリティ上、背景色と文字色はユーザーに見やすい設定にする。

color指定サンプル

p{ color: red; }

p{ color: #f00; }

p{ color: #ff0000; }など

サンプル

font-size:文字サイズ

font-sizeプロパティは、文字の大きさ(フォントサイズ)を指定します。値にはキーワードの他、単位、パーセント等がありますが、相対値指定が望ましいとされます。(IEではpx指定の場合、ユーザー側でフォントサイズ切り替えが出来ない。)

プロパティ

font-size

単位 | キーワード(下記参照)

xx-small | x-small | small | medium | large | x-large | xx-large

対象

すべての要素

継承の有無

継承

ポイント

アクセシビリティ上、単位指定なら em | % などの相対指定が望ましいとされる。

font-sizeサンプル

font-size: xx-small;

font-size: x-small;

font-size: small;

font-size: medium;

font-size: large;

font-size: x-large;

font-size: xx-large;

font-weight:文字の太さ

font-weightプロパティは、文字の太さを指定します。キーワード、数値指定ともに、ある段階までしか表示効果なし。またboldとbolderの表示結果に大差はありません。

プロパティ

font-weight

キーワード(下記参照)

normal | bold | bolder | lighter | 100-900

対象

すべての要素

継承の有無

継承

font-weightサンプル

font-weight:normal; あいうえお

font-weight:bold; あいうえお

font-weight:bolder; あいうえお

font-weight:lighter; あいうえお

font-weight:100; あいうえお

font-weight:200; あいうえお

font-weight:300; あいうえお

font-weight:400; あいうえお

font-weight:500; あいうえお

font-weight:600; あいうえお

font-weight:700; あいうえお

font-weight:800; あいうえお

font-weight:900; あいうえお

font-variant:スモールキャピタル

font-variantプロパティは、スモールキャピタル表示指定です。スモールキャピタルはアルファベットの大文字を大文字のまま小さなサイズで表示。IE6未対応。IE7対応。

プロパティ
font-variant

キーワード(下記参照)

normal | small-caps

対象
すべての要素
継承の有無
継承

font-variantサンプル

FONT-VARIANT: normal;

font-variant: small-caps;

font-style:斜体文字

プロパティ

font-style

キーワード(下記参照)

normal | italic | oblique

対象

すべての要素

継承の有無

継承

現状 italic | oblique の差はなし。

font-family:フォント指定

font-familyプロパティは、要素内の文字書体を指定します。フォント名は複数指定が可能で、各フォント名をコンマ(,)で区切ります。ユーザーの利用環境により左から順に反映される。MS Pゴシックのようにスペースを含む場合は、フォント名の前後をシングルクォーテーション(’)、またはダブルクォーテション(”)の引用符で囲みます。

プロパティ

font-family

キーワード(下記参照)

基本 serif(明朝系)

基本 sans-serif( ゴシック系)

基本 cursive(筆記体系)

基本 fantasy(装飾)

基本 monospace(等幅)

対象

すべての要素

継承の有無

継承

ポイント

上記タイプを指定の最後に付ける事。下記サンプル参照。

font-familyサンプル

serif 明朝系

sans-serif ゴシック系

cursive 筆記体系

fantasy 装飾

monospace 等幅

指定サンプル

p{ font-family: "MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3" sans-serif ; }

p{ font-family: Arial, Helvetica, sans-serif; }

visibility:表示/非表示

visibilityプロパティは、指定した要素(ボックス)の表示・非表示を指定します。要素を非表示に指定しても、該当要素のボックス分のスペースは残ります。全く表示させない場合は”display:none;”を指定。

プロパティ

visibility

キーワード(下記参照)

visible(可視)

hidden(不可視)

collapse(不可視)

対象

すべての要素

継承の有無

継承

visibilityサンプル

サンプルvisible[サンプル]

サンプルhidden[サンプル]

サンプルcollapse[サンプル]

*collapseはIEでは機能しない

overflow;スクロール表示

overflowプロパティは、ブロック要素内の表示方法を指定します。よく使われるのは、任意のボックスの幅や高さを指定して、はみ出した内容はスクロール表示させると言った形です。Mac IE5 では、div要素以外のブロック要素に指定すると、表示が消えてしまいます。

プロパティ

overflow

キーワード(下記参照)

visible(指定範囲からあふれて表示)

hidden(指定範囲からあふれた部分は非表示)

scroll(指定範囲からあふれた場合はスクロールバー)

auto(指定範囲からあふれた場合はスクロールバー)

対象

ブロックレベル要素

継承の有無

なし

overflowサンプル

hidden
サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:

scroll
サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:

auto
サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:

visible
サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル:サンプル

height:高さ指定

プロパティ

height

単位 | キーワード(auto)

対象

すべての要素

継承の有無

なし

標準準拠モードと後方互換モードの解釈について

以下はheight指定時のブラウザの解釈についての注意事項です。

  • 標準準拠モードはheightにpadding及びborderを含みません。
  • 後方互換モードはheightにpadding及びborderを含みます。

上記はレイアウトに大きく影響します。レイアウト崩れの原因になります。

関連:CSSレイアウト崩れの原因について

width:幅指定

プロパティ

width

単位 | キーワード(auto)

対象

すべての要素

継承の有無

なし

標準準拠モードと後方互換モードの解釈について

以下はwidth指定時のブラウザの解釈についての注意事項です。

  • 標準準拠モードはwidthにpadding及びborderを含みません。
  • 後方互換モードはwidthにpadding及びborderを含みます。

上記はレイアウトに大きく影響します。レイアウト崩れの原因になります。

関連:CSSレイアウト崩れの原因について

vertical-align:文字の配置(インライン)

vertical-alignプロパティは、インライン要素、セル要素内の垂直方向の位置を指定します。

プロパティ
vertical-align

キーワード(下記参照)

baseline
(対象のベースラインを親要素のベースラインに揃える)

top
(対象の上辺を最も高い要素の上辺に揃える)

middle
(対象のベースラインから親要素のフォントサイズの小文字”x”の高さの半分だけ上に揃える)

bottom
(対象の下辺を行中の最も低い要素の下辺に揃える)

super
(対象のベースラインを親要素の上付き文字の位置に揃える-セル要素無効)

sub
(対象のベースラインを親要素の下付き文字の位置に揃える-セル要素無効)

text-top
(対象の上辺を親要素のフォントの上辺に揃える-セル要素無効)

text-bottom
(対象の下辺を親要素のフォントの下辺に揃える-セル要素無効)

対象
インラインレベルとテーブル-セル要素
継承の有無
なし
ポイント
IEで使用の際はレイアウトに注意。Firefox等は厳密。

vertical-alignサンプル

サンプル配置イメージサンプルサンプル配置baseline

サンプル配置イメージサンプルサンプル配置top

サンプル配置イメージサンプルサンプル配置middle

サンプル配置イメージサンプルサンプル配置bottom

サンプル配置イメージサンプルサンプル配置super

サンプル配置イメージサンプルサンプル配置sub

サンプル配置イメージサンプルサンプル配置text-top

サンプル配置イメージサンプルサンプル配置text-bottom

line-height:行間指定

line-heightプロパティは行の高さを指定しますが(行送り)、正確には要素(ボックス)の上下辺からテキストまでの距離を意味します。また、line-heightプロパティの値にパーセント指定をした親ボックス内に<h>タグを記述すると、見出しの文字の一部が欠ける場合あり。(値が小さい場合)

プロパティ

line-height

数値 | 単位

対象

すべての要素

継承の有無

継承

line-heightサンプル

line-height:1.2
サンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプル

lineline-height:2em
サンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプル

lineline-height:250%
サンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプルサンプル

white-space:入力通りに表示

white-spaceプロパティは、半角スペースやタブや行送りなど入力通りに表示させる指定です。一般的に折り返しを  “する”  “しない”  などの制御(縮小化しても電話番号を折り返さない等)や、コードやソースを記述する際などに使用。

指定ボックスの幅の制御はoverflowプロパティで行う。

プロパティ

white-space

キーワード

normal(空白類文字をひとつの半角スペースにまとめ、折り返し)

pre(空白類文字をそのまま表示、折り返さない )

nowrap(空白類文字をひとつの半角スペースにまとめ、折り返さない )

pre-wrap(***)

pre-line(***)

対象

すべての要素

継承の有無

継承

white-spaceサンプル

normal - abcde fghij klmno pqrst uvwxy z. abcdefghijklmnopqrstuvwxyz. a b c d e f g h i j k l m n o p q r s t u v w x y z.

pre -
abcde fghij klmno pqrst uvwxy z.
abcdefghijklmnopqrstuvwxyz.
a b c d e f g h i j k l m n o p q r s t u v w x y z.

nowrap - abcde fghij klmno pqrst uvwxy z. abcdefghijklmnopqrstuvwxyz. a b c d e f g h i j k l m n o p q r s t u v w x y z.

z-index:要素の重なり

プロパティ

z-index

数値

対象

position指定要素

継承の有無

なし

clear:回り込み解除

プロパティ

clear

キーワード(下記参照)

left | right | both | none

対象

ブロックレベル要素

継承の有無

なし

float:配置指定

プロパティ

float

キーワード(下記参照)

left | right | none

対象

すべての要素

継承の有無

なし