CSSレイアウトを勉強していますか?まだ純粋な CSS レイアウトを完全にマスターできていませんか?通常、学習を妨げる状況は 2 つあります。
1 つ目の可能性は、CSS によるページ処理の原理を理解していないことです。ページの全体的なパフォーマンスを考慮する前に、まずコンテンツのセマンティクスと構造を検討し、次にセマンティクスと構造用の CSS を追加する必要があります。この記事では、HTML を構造化する方法について説明します。
もう 1 つの理由は、非常によく知られたプレゼンテーション レイヤーのプロパティ (cellpadding、hspace、align=left など) について困惑しており、それらをどの CSS ステートメントに変換すればよいかわからないことです。最初の問題を解決し、HTML の構造化方法を理解したら、元のプレゼンテーション属性を置き換えるためにどの CSS を使用するかを詳しく説明したリストを提供します。
構造化HTML
私たちが初めてWebページ制作を学ぶときは、絵やフォント、色、配置図などを考えて、まずデザインをどうするかを考えます。次に、Photoshop または Fireworks を使用してそれを描画し、小さな絵に切り取ります。最後に、HTML を編集して、すべてのデザインをページに復元します。
HTML ページを CSS (CSS フレンドリー) でレイアウトしたい場合は、「外観」を最初に考えるのではなく、ページのコンテンツのセマンティクスと構造を最初に考える必要があります。
外見は最も重要なことではありません。適切に構造化された HTML ページは、どのような外観でも表示できます。CSS Zen Garden はその典型的な例です。 CSS Zen Garden は、CSS の力を最終的に認識するのに役立ちます。
HTML はコンピューター画面上で読むためだけのものではありません。 Photoshop で慎重にデザインした画像は、PDA、携帯電話、スクリーン リーダーでは表示されない場合があります。ただし、適切に構造化された HTML ページは、CSS のさまざまな定義を使用して、どこにでも、どのネットワーク デバイスでも表示できます。
考え始める
一部の作家はセマンティクスとも呼ぶ構造とは何かを学ぶことから始めます。この用語が意味するのは、コンテンツ ブロックと各コンテンツが果たす目的を分析し、これらのコンテンツの目的に基づいて対応する HTML 構造を構築する必要があるということです。
じっくりと腰を据えてページ構造を分析して計画すると、最終的には次のような部分がいくつかできるかもしれません。
ロゴとサイト名メイン ページのコンテンツ
サイト ナビゲーション (メイン メニュー)
サブメニュー
検索ボックス
リボン (例: ショッピング カート、チェックアウト)
フッター (著作権および関連する法的記述)
通常、次のように DIV 要素を使用してこれらの構造を定義します。
<div id=header></div>
<div id=content></div>
<div id=globalnav></div>
<div id=subnav></div>
<div id=search></div>
<div id=ショップ></div>
<div id=footer></div>
レイアウトではなく、構造です。これはコンテンツ ブロックの意味論的な記述です。構造を理解したら、対応する ID を DIV に追加できます。任意のコンテンツ ブロックを DIV コンテナ内に含めることができ、その中に別の DIV をネストすることができます。コンテンツ ブロックには、タイトル、段落、画像、表、リストなどの HTML 要素を含めることができます。
上記に基づいて、HTML を構造化する方法はすでに理解しているので、レイアウトとスタイルを定義できるようになります。各コンテンツ ブロックはページ上のどこにでも配置でき、ブロックの色、フォント、境界線、背景、配置プロパティなどを指定できます。
セレクターの使用は素晴らしいことです
ID の名前は、特定のコンテンツ ブロックを制御する手段であり、このコンテンツ ブロックを DIV でラップし、一意の ID を追加することで、CSS セレクターを使用して、タイトル、リスト、画像などの各ページ要素の外観を正確に定義できます。 、リンクまたは段落など。たとえば、#header の CSS ルールを作成する場合、それは #content の画像ルールとはまったく異なるものになる可能性があります。
別の例: 異なるルールを使用して、異なるコンテンツ ブロックでリンク スタイルを定義できます。このようなもの: #globalnav a:link または #subnav a:link または #content a:link異なるコンテンツ ブロック内の同じ要素に異なるスタイルを定義することもできます。たとえば、#content p と #footer p を通じて、それぞれ #content と #footer の p のスタイルを定義します。構造的に言えば、ページは画像、リンク、リスト、段落などで構成されます。これらの要素自体は、どのネットワーク デバイス (PDA、携帯電話、またはインターネット TV) に表示されるかには影響しません。これらは、任意のパフォーマンスの外観として定義できます。
注意深く構造化された HTML ページは非常にシンプルで、すべての要素が構造的な目的で使用されます。段落をインデントする場合は、blockquote タグを使用する必要はありません。p タグを使用し、CSS マージン ルールを p に追加するだけで、インデントの目的を達成できます。 p は構造化タグ、margin はプレゼンテーション属性です。前者は HTML に属し、後者は CSS に属します。 (これが構造と表現の分離です。)
適切に構造化された HTML ページには属性タグがほとんどありません。コードは非常にクリーンで簡潔です。たとえば、元のコード <table width=80% cellpadding=3 border=2 align=left> は HTML に <table> のみを記述することができ、パフォーマンスを制御するすべてのものは CSS の構造化 HTML で記述されます。はテーブルであり、他のものではありません (レイアウトや配置に使用されるなど)。
自分自身を構造化する練習をする
上記は最も基本的な構造にすぎません。実際のアプリケーションでは、必要に応じてコンテンツ ブロックを調整できます。 DIV のネストは頻繁に発生し、コンテナー レイヤー内に次のような構造を持つ他のレイヤーがあることがわかります。
<div id=navcontainer>
<div id=globalnav>
<ul>リスト</ul>
</div>
<div id=subnav>
<ul>別のリスト</ul>
</div>
</div>
ネストされた div 要素を使用すると、プレゼンテーションを制御するための CSS ルールをさらに定義できます。たとえば、#navcontainer にリストを右にセンタリングするルールを与え、#globalnav にリストを左にセンタリングするルールを与え、#subnav に別のルールを与えることができます。リストを完全に中央に配置するルール。パフォーマンスが異なります。