ホームページ  >  記事  >  ウェブフロントエンド  >  HTML 構造化: DIV+CSS_html/css_WEB-ITnose

HTML 構造化: DIV+CSS_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-24 12:32:38902ブラウズ

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="shop"></div>

<div id="footer"></div>

これはレイアウトではなく構造です。これはコンテンツ ブロックの意味論的な記述です。構造を理解したら、対応する ID を DIV に追加できます。 DIV コンテナ内には任意のコンテンツ ブロックを含めることができ、その中に別の DIV をネストすることができます。コンテンツ ブロックには、タイトル、段落、画像、表、リストなど、あらゆる HTML 要素を含めることができます。

上記によると、HTML の構造化方法はすでにわかったので、レイアウトとスタイルを定義できます。各コンテンツ ブロックはページ上のどこにでも配置でき、ブロックの色、フォント、境界線、背景、配置プロパティなどを指定できます。

セレクターの使用は素晴らしいことです

ID の名前は、特定のコンテンツ ブロックを制御する手段です。このコンテンツ ブロックに DIV を配置し、一意の ID を追加することで、CSS セレクターを使用して各コンテンツ ブロックを正確に定義できます。 . タイトル、リスト、画像、リンク、段落などのページ要素の外観。たとえば、#header の CSS ルールを作成する場合、それは #content の画像ルールとはまったく異なるものになる可能性があります。

もう 1 つの例は、異なるルールを通じて異なるコンテンツ ブロックにリンク スタイルを定義できることです。このようなもの: #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 ページには、属性を表すタグはほとんどありません。コードは非常にクリーンで簡潔です。たとえば、元のコード

は HTML 内に
のみを記述できるようになり、パフォーマンスを制御するものはすべて HTML で記述されます。 CSS 構造化 HTML では、テーブルはテーブルであり、他のものではありません (レイアウトや位置決めに使用されるなど)。

自分で構造を練習してください

上記は最も基本的な構造にすぎません。実際のアプリケーションでは、必要に応じてコンテンツ ブロックを調整できます。 DIV のネストは頻繁に発生し、「container」レイヤーに次のような構造を持つ他のレイヤーがあることがわかります。

<div id="navcontainer">

<div id="globalnav">

< ul>リスト</ul>

</div>

<div id="subnav">

<ul>別のリスト</ul>

</div>

</div>

埋め込み div 要素のセットを使用すると、プレゼンテーションを制御するための CSS ルールをさらに定義できます。たとえば、#navcontainer にリストを右側の中央に配置するルールを指定し、#globalnav にリストを左側の中央に配置する別のルールを指定できます。 #subnav のリストのパフォーマンスとはまったく異なるルールです。

従来のメソッドを CSS に置き換える

次のリストは、従来のメソッドを CSS に置き換えるのに役立ちます:

HTML 属性と対応する CSS メソッド

HTML 属性

CSS メソッドの説明

align="left"

align =" right" float: left;

float: right; CSS を使用して、画像、段落、div、タイトル、テーブル、リストなどの要素をフローティングにします。

float 属性を使用する場合は、フローティングの幅を定義する必要があります要素 。

marginwidth="0" leftmargin="0" marginheight="0" topmargin="0" margin: 0; CSS を使用すると、body 要素だけでなく任意の要素に margin を設定できることも重要です。要素の上下左右のマージン値を個別に指定します。

vlink="#333399" alink="#000000" link="#3333FF" a:リンク #3ff;

a:訪問: #339;

a:ホバー: #999;

a:アクティブ: #00f;

HTMLではリンクの色は本文の属性値として定義されています。リンクのスタイルはページ全体で同じです。 CSS セレクターを使用すると、ページのさまざまな部分でリンク スタイルを変えることができます。

bgcolor="#FFFFFF" 背景色: #fff; CSS では、body 要素や table 要素だけでなく、任意の要素に対して背景色を定義できます。

bordercolor="#FFFFFF" border-color: #fff; 任意の要素に境界線 (境界線) を設定でき、それぞれ上、右、下、左を定義できます

border="3" cellpacing="3" border- width: 3px; CSS を使用すると、テーブルの境界線を統一スタイルとして定義したり、上、右、下、左の境界線の色、サイズ、スタイルをそれぞれ定義したりできます。

table、td、または th セレクターを使用できます

ボーダーレス効果を設定する必要がある場合は、CSS 定義を使用できます: border-collapse: Collapse;



cellpadding="3"

vspace="3"

hspace="3" padding: 3px を使用できます。要素 padding 属性も同様に、上、右、下、左にそれぞれ設定できます。パッドは透明です。

align="center" text-align: center;

margin-right: auto; margin-left: auto;

Text-align はテキストにのみ適用されます。

div や p のようなブロック レベルは margin -right を渡すことができます: auto; と margin-left: auto; を水平方向に中央揃えにする

いくつかの残念なテクニックと作業環境

ブラウザーの CSS サポートが不完全なため、いくつかのトリック (ハック) を実行するか、ある種の環境を確立する必要がある場合があります (回避策) ) CSS が従来の方法と同じ効果を達成できるようにします。たとえば、ブロック レベルの要素では、水平方向のセンタリング手法やボックス モデルのバグ手法などを使用する必要がある場合があります。これらのテクニックはすべて、Molly Holzschlag の記事「Integrated Web Design: Strategies for Long-Term CSS Hack Management」で詳しく説明されています。

CSS ヒントに関するもう 1 つのリソース サイトは、Big John と Holly Bergevin による「Position is Everything」です。

Float の動作を理解する

Eric Meyer の「Containing Floats」は、レイアウトに float 属性を使用する方法を習得するのに役立ちます。 Float 要素をクリアする必要がある場合があります。「構造マークアップを使用せずに Float をクリアする方法」を読むと非常に役立ちます。

その他のヘルプ

既存の「CSS Discussion」リストは、CSS レイアウトの概要 (css-discuss.incutio.com/?page=CssLayouts)、CSS のヒントなど、WiKiA ディスカッション グループからの情報を収集する優れたリソースです。概要 (css-discuss.incutio.com/?page=CssHack) など。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。