ホームページ > 記事 > ウェブフロントエンド > WebページのレイアウトにCSSを使用する方法
はじめに
みなさん、こんにちは!この一連の記事は、Ajie 自身の w3cn.org サイト作成プロセスに基づいて書かれています。 Ajie は、これまでに Web 標準に完全に準拠した Web サイトを作成したことがありません。今は海外の資料を参考にしながら、その過程で感じたことや考えたことを記録していますので、皆さんのお役に立てれば幸いです。さて、始めましょう。
初日
標準を満たすサイトの作成を開始します。最初に行うことは、ニーズを満たす DOCTYPE を宣言することです。
この Web サイトのホームページの元のコードを見ると、最初の行が次であることがわかります:
有名な Web デザイン ソフトウェア開発者である Macromedia やデザインの巨匠 Zeldman の個人 Web サイトなど、標準を満たすサイトをいくつか開くと、同じコードを見つけます。他の標準準拠サイト (k10k.net など) のコードは次のとおりです:
それでは、これらのコードは何を意味するのでしょうか?置く必要があるのでしょうか?
DOCTYPEとは
上記のコードをDOCTYPEステートメントと呼びます。 DOCTYPE はドキュメント タイプの略語で、使用している XHTML または HTML のバージョンを示すために使用されます。
DTD (上記の例の xhtml1-transitional.dtd など) はドキュメント タイプ定義と呼ばれ、ドキュメントのルールが含まれています。ブラウザは、定義した DTD に基づいてページの ID を解釈し、それを表示します。 。
標準に準拠した Web ページを構築するには、DOCTYPE 宣言が不可欠かつ重要なコンポーネントです。XHTML が正しい DOCTYPE を決定しない限り、ロゴも CSS も有効になりません。
XHTML 1.0 では、次の 3 つの DTD 宣言から選択できます:
Transitional (移行): 要件が非常に緩和された DTD で、HTML4.01 ロゴを引き続き使用できます (ただし、xhtml の記述方法に準拠する必要があります)。完全なコードは次のとおりです:
厳密: 厳密な DTD の場合、
などのプレゼンテーション層の識別子と属性は使用できません。完全なコードは次のとおりです:
フレームセット: フレーム ページ用に特別に設計された DTD。ページにフレームが含まれている場合は、この DTD を使用する必要があります。完全なコードは次のとおりです。
どの DOCTYPE を選択すればよいでしょうか
理想的な状況はもちろん厳密な DTD ですが、Web 標準に慣れていないデザイナーのほとんどにとって、現時点では暫定的な DTD (XHTML 1.0 Transitional) が理想的です。 (このサイトも暫定的な DTD を使用しています) を選択してください。この DTD ではプレゼンテーション層の識別子、要素、属性も使用できるため、W3C コード検証に合格することも容易になります。
注: 上記の「プレゼンテーション層の識別と属性」は、タイプセット用のテーブル、背景色の識別など、純粋にパフォーマンスを制御するために使用されるタグを指します。 XHTML では、タグはプレゼンテーションを実現するためではなく、構造を表すために使用されます。この移行の目的は、最終的にデータとプレゼンテーションを分離することです。
例: マネキンが着替えます。モデルはデータ、服は表現のようなもの モデルと服が分かれているので、自由に着せ替えることができます。オリジナルの HTML4 ではデータとプレゼンテーションが混在しており、プレゼンテーション形式を一度に変更するのは非常に困難でした。あはは、この概念は少し抽象的ですが、アプリケーションのプロセス中に徐々に理解する必要があります。
補足
DOCTYPE宣言は、すべてのXHTMLドキュメントの先頭、すべてのコードとマークアップの上に配置する必要があります。
詳細については、W3C Webサイトをご覧ください
DOCTYPE が宣言された後の次のコードは次のとおりです:
3 日目: 言語エンコードを定義する
3 番目のステップは、次のように言語エンコードを定義することです:
ブラウザで正しく解釈され、W3C コード検証に合格するには、すべての XHTML ドキュメントが使用するエンコード言語を宣言する必要があります。通常は gb2312 (簡体字中国語) を使用します。Unicode、ISO を使用することもできます。 8859-1 など、ニーズに応じて定義されます。
通常はこの定義で十分です。ただし、XML ドキュメントではこのように言語エンコーディングが定義されていないことを付け加えておきます。XML は次のように定義されています。ホームページのコードの最初の行にも同様の記述が見られますが、これは W3C が推奨する定義方法でもあります。では、このアプローチを採用してみませんか?その理由は、IE6/windows など、一部のブラウザでは標準のサポートが不完全であり、そのような定義方法を正しく理解できないためです。したがって、現在の移行計画では、引き続きメタ方式の使用を推奨します。もちろん、両方の方法で書くこともできます。
この Web サイトのソース コードを見ると、言語エンコードが定義されている文がもう 1 つあることがわかります:
これは、さまざまなブラウザがページを正しく解釈できることを確認するために、ブラウザによって作成された古いバージョンを参照するためのものです。
注: 上記の宣言ステートメントの最後にスラッシュ「/」がありますが、これは以前の HTML4.0 コードの記述とは異なります。その理由は、XHTML 構文ルールでは、すべてのタグに開始と終了が必要であるためです。たとえば、
と
など。ペアになっていない識別子の場合は、識別子の末尾にスペースを追加する必要があります。 」。たとえば、 Web標準を使用してWebサイトをデザインする移行方法は、主にXHTML+CSSスタイルシートを使用することです。これには、すべての Web デザイナーが CSS に習熟していることが必要です。これまで CSS を使用したことがない場合は、今すぐ学習を始めてください。 Web標準に準拠したWebサイトを作成するには、CSSの知識がなければ美しいページをデザインすることはできません。
実際、パフォーマンスのあらゆる側面は CSS で実装する必要があります。以前は位置決めとレイアウトに table を使用していましたが、現在は位置決めとレイアウトに p を使用する必要があります。これは考え方の変化ですが、最初は少し違和感があります。ハハ、どんな変化にも抵抗はあるでしょう。標準によってもたらされる「利点」を享受するには、古い伝統的な慣習をいくつか放棄する価値があります。
スタイルシートの外部呼び出し
これまでは、スタイルシートを次の2つの方法で使用することが一般的でした。
ページ内メソッド:ページコードの先頭領域に直接スタイルシートを記述する方法。これと同様:
なぜ二度書かなければならないのですか?
実際、通常の状況では、外部リンク方法 (つまり、最初の文) を使用するだけで十分です。ここで使用するダブル テーブル呼び出しは単なる例です。スタイルシートの入力には「@import」コマンドを使用します。 「@import」コマンドは、Netscape 4.0 ブラウザでは無効です。つまり、特定のエフェクトを Netscape 4.0 ブラウザでは非表示にし、4.0 以降または他のブラウザでは表示したい場合は、「@import」コマンド メソッドを使用してスタイル シートを呼び出すことができます。
5 日目: ヘッド領域のその他の設定
お気に入りアイコン
このサイトをお気に入りに追加すると、お気に入り URL の前にある IE アイコンがこのサイトの特別なアイコンになることがわかります。この効果を実現するのは非常に簡単です。まず 16x16 のアイコンを作成し、それに favicon.ico という名前を付け、ルート ディレクトリに配置します。次に、次のコードを先頭領域に埋め込みます:
検索エンジン用に用意されたコンテンツ
コードは次のとおりです。自分のサイトのコンテンツに置き換えるだけです:
検索ロボットを許可する サイト上のすべてのリンクを検索します。特定のページを検索したくない場合は、robots.txt メソッドを使用することをお勧めします
サイト作成者情報を設定します
サイトの著作権情報を設定します
サイトの簡単な紹介 (推奨)
サイトのキーワード (推奨) )
まずはこれくらい。補足説明、これまでの 5 つのセクションはヘッド領域のコードに関するもので、実際のページの内容についてはまったく触れていませんでした。あはは、実はヘッド領域は非常に重要であることがわかります。ページの先頭コードを見てデザイナーを判断するのは十分にプロフェッショナルですか?
正式なコンテンツ制作を開始する前に、まずWeb標準のコード仕様を理解する必要があります。これらの仕様を理解すると、迂回路を回避し、できるだけ早くコード検証に合格することができます。
1. すべてのタグには対応する終了タグが必要です
これまで、HTML では、対応する p> を記述することなく、
や
< ;b>。 ;
/b> は次のように変更する必要があります:/p> つまり、レイヤーごとのネストは厳密に対称である必要があります。 XHTMLのコード仕様を理解した後、CSSレイアウトを進めていきます。まずはCSSの基礎知識をご紹介します。すでに慣れている場合は、このセクションをスキップして、次のセクションに直接進んでください。 CSSレイアウトと従来のテーブルレイアウトの最大の違いは、元の配置にはテーブルが使用され、テキストレイアウトセクションはテーブルの間隔または無色透明のGIF画像の使用によって制御されることです。 ; 現在、レイヤー (p) は位置決めに使用され、セクションの間隔はマージン、パディング、境界線、およびレイヤーのその他の属性によって制御されます。 次のステップは、実際にレイアウトをデザインすることです。従来の方法と同様に、まず頭の中に大まかなアイデアがあり、それを Photoshop を使用して描きます。 Web 標準は構造とコンテンツに重点を置いているため、Web 標準に関連するほとんどの Web サイトは非常にシンプルであることがわかります。実際、Web ページのレイアウトは自由にデザインできます。 p は従来の table メソッドを使用して実装することもできます。テクノロジーには成熟の過程があります。p を TABLE と同じツールとして考えてください。それをどう使うかはあなたの想像力次第です。 w3cn の初期デザインスケッチは次のとおりです: テーブルデザイン方法を使用する場合、通常は 3 行レイアウトになります。上、中、下の線付き 初めて CSS レイアウトを使用したとき、私は固定幅の 3 列レイアウトを使用することにしました (アダプティブ解像度デザインよりも単純です。まあ、怠け者だとは言わないでください)より自信を得るために、最初に簡単なものを実装してください。)左、中央、右の幅をそれぞれ 200:300:280 に定義します。これは CSS で次のように定義されます: ページの左列 ページの中央列ページ ページの右列 3列レイアウトの最後に著作権などの情報を入れるフッター行を追加したい場合。 3 つの列の下端を揃えなければならないという問題が発生しました。テーブルレイアウトでは、大きなテーブルを小さなテーブルに入れ子にする方法を使用します。これにより、3 つの列を簡単に揃えることができますが、p レイアウトでは、3 つの列が独立して分散され、コンテンツの高さが異なるため、揃えるのが困難になります。実際、p を完全にネストし、3 つの列を 1 つの p に配置し、下部の配置を実現できます。これは実装例です (白い背景のボックスはページをシミュレートします): のレイアウトを最初に設定し、その中にコンテンツを入力し始めました。 1 つ目は、ロゴ画像を定義することです: < a title= "Web デザイナー" href="http://www.w3cn.org/" > 何日も熱心に取り組んだ後、私たちは Web サイトを再設計するために XHTML+CSS の使い方を学ぶことに熱心に取り組みました。では、作成したページが実際に Web 標準に準拠していることをどうやって確認できるのでしょうか? W3C および一部のボランティア Web サイトは、ページが標準に準拠しているかどうかを確認し、エラーを修正するためのヘルプ情報を提供するオンライン検証プログラムを提供しています。これらのチェックは非常に便利で、ページをデバッグするときに最初に行います。 img src="http://www.w3.org/Icons/valid-xhtml10" alt="有効な XHTML 1.0!" /> < /p> < ;img style="max-width:90%" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="有効な CSS!" / > 以上がWebページのレイアウトにCSSを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
4. すべての属性は引用符 "" で囲む必要があります。
HTML では属性値を引用符で囲む必要はありませんが、XHTML では属性値を引用符で囲む必要があります。例:
) エンコード内のすべての < および & 特殊記号 (<) を表します。タグの一部は & l t ; としてエンコードする必要があります
ラベルの一部ではないすべてのより大きい記号 (>) は &g t ; としてエンコードする必要があります
エンティティの一部ではないすべてのアンパサンド (&) としてエンコードする必要があります& a m p; としてエンコードされます
注: 上記の文字の間にスペースはありません
6. すべての属性に値を割り当てる
XHTML では、値が存在しない場合は、例: を次のように変更する必要があります。
7. コメントの内容には「--」を使用しないでください
XHTML コメントの最初と最後、つまりコメントのコンテンツ内に発生します。たとえば、次のコードは無効です:
内部のものを等号またはスペースに置き換えます
上記の仕様の一部は奇妙に見えるかもしれませんが、それらはすべて私たちのコードには、将来のデータの再利用を容易にするための統一された独自の標準があります
。7日目:CSS入門
CSSとはCascading Style Sheetsの略称です。これは、Web ドキュメントにスタイルを追加するための単純なメカニズムであり、プレゼンテーション層のレイアウト言語に属します。
1. 基本的な構文仕様
典型的な CSS ステートメントの分析:
p {COLOR: #FF0000; BACKGROUND: #FFFFFF}
ここで、「p」は「セレクター」と呼ばれ、 "p" のスタイル
スタイル宣言は一対の中括弧 "{}" で記述されます。
COLOR と BACKGROUND は "プロパティ" と呼ばれ、異なるプロパティはセミコロン ";" で区切られます。 FF0000」と「#FFFFFF」が属性の値です。
2. カラー値
カラー値は、例: color : rgb(255,0,0) のように RGB 値で書き込むことも、上の例 color:# のように 16 進数で書き込むこともできます。 FF0000。 16 進値がペアで繰り返される場合、同じ効果で省略できます。例: #FF0000 は #F00 と記述できます。ただし、重複しない場合は省略できません。たとえば、#FC1A1B には 6 桁の数字を入力する必要があります。
3. フォントを定義する
Web 標準では、次のフォント定義方法を推奨しています。フォントは次のとおりです。リストされている順序を使用してください。ユーザーのコンピュータに Lucida Grande フォントが含まれている場合、ドキュメントは Lucida Grande として指定されます。そうでない場合は Verdana フォントとして指定され、Verdana がない場合は Lucida フォントとして指定されます。
Lucida Grande フォントは Mac OS X に適しています。
Verdana フォントはすべての Windows システムに適しています。
Lucida は UNIX ユーザーに適しています
「Song Ti」は簡体字中国語ユーザーに適しています。
リストされているフォントがどれも利用できない場合は、デフォルトのサンセリフ フォントが確実に呼び出されます。 selector
複数の要素の場合 スタイル属性が同じ場合、それらは一緒にステートメントを呼び出すことができ、要素はカンマで区切られます: p, td, li { font-size : 12px;
5.
派生セレクターを使用して、要素内のサブ要素でスタイルを定義できます。例:
li Strong { font-style : italic;
は、 li の下にあるサブ要素の斜体ですが太字ではないスタイル。
6.id selector
CSSレイアウトは主にレイヤー「p」で実装されており、pのスタイルは「id selector」で定義されます。たとえば、最初にレイヤー
を定義し、次にスタイル シートで次のように定義します:
#menubar {MARGIN: 0px;BACKGROUND: # FEFEFE;COLOR: # 666;}
ここで、「menubar」は定義した ID 名です。先頭の「#」記号に注目してください。
id セレクターは派生もサポートしています。例:
#menubar p { text-align : right; margin-top : 10px; }
このメソッドは主に、より複雑で複数の派生を持つレイヤーを定義するために使用されます。要素。
7. カテゴリ セレクター
CSS でドットを使用して、カテゴリ セレクターの定義を示します。例:
.14px {color : #f60 ;font-size:14px ;}
ページ内で Class を使用します。 ="カテゴリ名" メソッド呼び出し:
14px size font
このメソッドは比較的シンプルで柔軟で、必要に応じていつでも作成および削除できます。ページの。
8. リンク スタイルを定義する
リンク スタイルを定義するには、CSS で 4 つの疑似クラスが使用されます。つまり、a:link、a:visited、a:hover、a:active です。例:
a : link{フォントの太さ : 太字 ;テキストの装飾 : なし ;カラー : #c00 ;}
a:visited {フォントの太さ : 太字 ;テキストの装飾 : なし ;カラー : #c30 ;}
a:hover {フォント- ウェイト : ボールド ;テキスト装飾 : アンダーライン ;カラー : #f60 ;}
a:active {フォントウェイト : ボールド ;テキスト装飾 : なし ;カラー : #F90 ;} 上記のステートメントはそれぞれ「リンク、マウスが上に置かれたとき、およびマウスがクリックされたときの、訪問済みリンクのスタイル。上記の順番で書かないと、予想と異なる表示になる場合がありますのでご注意ください。 「LVHA」の順序であることに注意してください。
はは、こんなに読んでいるとちょっとめまいを感じます。実際には、CSS には他にもたくさんの文法仕様があります。結局のところ、私たちはそれを段階的に進めているので、それは不可能です。一口で太ります:)
8日目: CSSレイアウトの紹介
1. p を定義します
p の典型的な定義を分析します。
ボーダー-右: #CCC 2px ソリッド;
ボーダーの下: #CCC 2px ソリッド;
ボーダー-左: #CCC 2px ソリッド;
背景: url(images/bg_poem.jpg) #FEFEFE リピートなし右下;
色: #666;
TEXT-ALIGN: center;
LINE-HEIGHT: 150%; WIDTH:60%; }
説明は次のとおりです:
レイヤーの名前は、
MARGIN は、レイヤーの境界線の外側に残された空白スペースを指し、ページの余白または他のレイヤーとのギャップを作成するために使用されます。 「10px 10px 10px 10px」はそれぞれ「上・右・下・左」(時計回り)の4つの余白を表し、すべて同じであれば「MARGIN: 10px;」と省略できます。マージンがゼロの場合は、「MARGIN: 0px;」と記述します。注: 値がゼロの場合、後にパーセント記号を続ける必要がある RGB カラー値 0% を除き、その他の場合には単位「px」を続ける必要はありません。 MARGIN は透明な要素であるため、色を定義できません。
PADDING は、レイヤーの境界線とレイヤーのコンテンツの間のスペースを指します。マージンと同様に、上、右、下、左の境界線からコンテンツまでの距離をそれぞれ指定します。すべて同じである場合は、「PADDING:0px」と省略できます。左側を個別に指定したい場合は「PADDING-LEFT: 0px;」と記述します。 PADDING は透明な要素であるため、色を定義できません。
BORDER は、レイヤーの境界線を指します。「BORDER-RIGHT: #CCC 2px Solid;」は、レイヤーの右側の境界線の色を「#CCC」、幅を「2px」、スタイルを「solid」として定義します。直線。点線のスタイルが必要な場合は、「dotted」を使用できます。
BACKGROUND は、レイヤーを定義する背景です。これは 2 つのレベルで定義されます。最初に画像の背景を定義し、「url(../images/bg_logo.gif)」を使用して背景画像のパスを指定します。次に、背景色「#FEFEFE」を定義します。 「no-repeat」は、背景画像を繰り返す必要がないことを意味します。水平方向に繰り返す必要がある場合は「repeat-x」を使用し、垂直方向に繰り返す場合は「repeat-y」を使用し、カバーするまで繰り返します。背景全体を印刷するには、「リピート」を使用します。次の「rightbottom;」は、背景画像が右下隅から始まることを意味します。背景画像がない場合は、背景色のみを定義できます。 BACKGROUND: #FEFEFE
COLOR は、前のセクションで紹介したフォントの色を定義するために使用されます。
TEXT-ALIGN は、レイヤー内のコンテンツの配置を定義するために使用されます。center は中央、left は左側、right は右側です。
LINE-HEIGHT は行の高さを定義します。150% は高さが標準の高さの 150% であることを意味します。LINE-HEIGHT:1.5 または LINE-HEIGHT:1.5em と書くこともできますが、どちらも同じ意味です。
WIDTH は定義されたレイヤーの幅で、500px などの固定値、またはここでは「60%」などのパーセンテージにすることができます。この幅はコンテンツの幅のみを指し、マージン、ボーダー、パディングは含まれないことに注意してください。ただし、一部のブラウザではこのように定義されていないため、さらに試してみる必要があります。
このレイヤーの実際のパフォーマンスは次のとおりです:
デモページ
境界線が 2 ピクセルの灰色で、背景画像が右下に繰り返されておらず、コンテンツが上と左から 20 ピクセル離れていることがわかります。境界線、コンテンツが中央に配置され、すべてが期待どおりです。ほほ、見た目は良くありませんが、これをマスターすればCSSレイアウト技術の半分は学べたことになります。それだけです、難しくありません! (残りの半分は何ですか? 残りの半分はレイヤー間の位置決めです。後ほど順を追って説明します。)
2. CSS2 ボックスモデル
1996 年の CSS1 の発表以来、W3C 組織は推奨してきました。すべての Web ページのオブジェクトはボックス内に配置され、デザイナーは定義を作成することでこのボックスのプロパティを制御できます。これらのオブジェクトには段落、リスト、タイトル、画像、レイヤーが含まれます。ボックス モデルは主に、コンテンツ、パディング、ボーダー、マージンの 4 つの領域を定義します。上で説明したサンプル レイヤーは典型的なボックスです。初心者にとっては、margin、background-color、background-image、padding、content、border のレベル、関係、相互影響について混乱することがよくあります。ここにボックス モデルの 3D 概略図を示します。理解しやすく、覚えやすいと思います。
3. 補助画像は全て背景付きで処理する
XHTML+CSSレイアウトを使うという、最初は慣れない技術があると言うべきです。従来のテーブル レイアウトとは異なります。つまり、すべての補助画像は背景を使用して実装されます。このようなもの:
BACKGROUND: url(images/bg_poem.jpg) #FEFEFE no-repeat 右下; をコンテンツに直接挿入することもできますが、これはお勧めしません。ここでいう「補助絵」とは、ページ上で表現すべき内容ではなく、装飾や間取り、注意喚起などにのみ使用される絵のことを指します。たとえば、フォト アルバムの画像、画像ニュースの画像、および上記の 3D ボックス モデルの画像はすべて、 要素を使用してページに直接挿入できます。その他の画像はロゴに似ています。タイトル画像とリストのプレフィックスは、背景または他の CSS メソッドを使用して表示する必要があります。
これには 2 つの理由があります:
パフォーマンスと構造を完全に分離する (別の記事「パフォーマンスと構造の分離を理解する」を参照)。CSS を使用してすべての外観パフォーマンスを制御するのが便利です。バージョン。
ページをより使いやすく、フレンドリーにしましょう。たとえば、視覚障害者がスクリーン リーダーを使用する場合、バックグラウンド テクノロジを使用して実装された画像は読み上げられません。 9日目: 最初のCSSレイアウト例
注: 実際のアプリケーションでは、背景色の定義など、いくつかの場所では p はテーブルほど便利ではありません。しかし、何事にも得と損があり、選択はあなたの価値判断次第です。さて、早速始めましょう: 1. レイアウトを決定します
。 p を使用する場合は、このように 3 列のレイアウトを使用することを検討します
。
2. 本体スタイルを定義します
まず、ページ全体の本体スタイルを次のように定義します。 /bg_logo.gif) #FEFEFE リピートなし右下;
FONT-FAMILY: 'Lucida Grande','Lucida Sans Unicode','宋体','新宋体',arial,verdana,sans-serif;
COLOR: # 666;
FONT- SIZE:12px;3. メイン p を定義する
/*ページの左列スタイルを定義*/
#left{ WIDTH:200px;
MARGIN: 0px;
PADDING: 0px;
BACKGROUND: #CDCDCD;
}
/*ページ列スタイルを定義*/
#middle{ POSITION: 絶対;
LEFT:200px;
TOP:0px;
WIDTH:300px;
MARGIN: 0px;
PADDING: 0px;
BACKGROUND: #DADADA;
}
/*ページの右列スタイルを定義*/
#right{ POSITION: 絶対;
LEFT:500px;
TOP:0px;
WIDTH:280px;
MARGIN: 0px;
PADDING: 0px ;
BACKGROUND: #FFF; }
注: POSITION:Absolute; を使用して中央の列と右の列 p を定義し、次に LEFT:200px;TOP:0px; を定義しました。それぞれ :500px;TOP:0px; このレイアウトの重要な点は、レイヤーの絶対位置を使用したことです。中央の列をページの左端から 200 ピクセル、上から 0 ピクセルに定義し、右の列をページの左端から 500 ピクセル、上から 0 ピクセルに定義します。
現時点でのページ全体のコードは次のとおりです:
このとき、ページの効果は次のとおりです。 3 つの並列した灰色の四角形と背景画像のみが表示されます。しかし、高さを全画面にしたいのですが、どうすればよいですか?
4.100%適応高さ?
3つの列を同じ高さに保つために、#left、#middle、#rightに「height:100%;」を設定しようとしましたが、適応的な反応は非常に効果的です。いくつかの試みの結果、各 p に絶対的な高さ「height:1000px;」を与える必要がありました。コンテンツが増加するにつれて、この値は常に修正する必要があります。高さを調整する方法はないのでしょうか?アジエ自身の研究が深まるにつれ、実際には 100% を設定する必要はまったくありません。この方法については、次の研究セクションで詳しく紹介します。
Day 10: Adaptive height
この例のページのメイン コードは次のとおりです:
< p id="メインボックス"> ;
特定のスタイルシートは、対応するセクションに記述されています。重要な点は、#mainbox レイヤーが #menu、#sidebar、#content の 3 つのレイヤーにネストされていることです。 #content のコンテンツが増えると、 #content の高さが増加し、 #mainbox の高さも拡張され、 #footer レイヤーは自動的に下に移動します。これにより、高度な適応性が実現されます。
#menu と #content がページの右側「FLOAT: right;」にフローティングし、#sidebar が #menu レイヤーの左側「FLOAT: left;」にフローティングしていることにも注目してください。はフローティング方式の位置決めであり、絶対位置決めを使用してこの効果を実現できます。
この方法のもう 1 つの問題は、#sidebar の背景を 100% 正確にできないことです。一般的な解決策は、ボディの背景色で塗りつぶすことです。 (#mainbox の背景色は、Mozilla などのブラウザでは無効なので、使用できません。)
さて、メインフレームワークは構築できました。残りの作業は、レンガとタイルを追加するだけです。それ。他のレイアウトを試してみたい場合は、次の記事を読むことをお勧めします:
11日目: テーブルフリーメニュー
スタイル シート: #logo {MARGIN: 0px;padding:0px;WIDTH: 200px;HEIGHT:80px;}
ページ コード:
上記のコードは簡単に理解できるはずです。まず CSS でロゴ レイヤーを定義し、それをページ上で呼び出します。 Web ページをより使いやすくするために、Web 標準では、正式なコンテンツであるすべての画像に alt 属性を追加することが求められていることに注意してください。この alt 属性は画像の機能(画像が表示できない場合に代替テキストを表示する)を記述するために使用しますので、意味のない画像名だけを書かないでください。
次のステップはメニューを定義することです。
1. テーブルのないメニュー (垂直)
まずメニューの最終的な効果を見てみましょう: デモページ
通常、このようなメニューを実装するには、少なくとも 2 つのテーブル層をネストします。 td で設定 背景色は、1 ピクセルの高透明 GIF 画像を挿入することで実現されます。背景色の交互効果は、td の onmouseover イベントを使用して実現されます。しかし、このメニューのページ コードを見ると、次の文だけが表示されます:
はテーブルを使用しませんが、 unsequenced
(1) まず、メニュー レイヤーのメイン スタイルを定義します。
#menu {
MARGIN: 15px 20px 0px 15px; /*レイヤーの外側の境界線の距離を定義します*/
PADDING:15px; /*レイヤーの内側の境界線を 15px に定義します*/
BACKGROUND: #dfdfdf; /*背景色を定義します* /
COLOR: #666; /*フォントの色を定義します*/
BORDER:#fff 2px 実線として /*境界線を 2px の白線として定義します*/
WIDTH:160px; /*コンテンツの幅を次のように定義します160px*/
}
(2) 次に、順序なしリストのスタイルを定義します。
#menu ul {
MARGIN: 0px;
PADDING: 0px;
BORDER: Medium none; /*境界線を表示しない* /
LINE-HEIGHT:normal;
LIST-STYLE-TYPE: none;
}
#menu li {BORDER-TOP: #FFF 1px margin: 0px;}
注: ID の派生メソッド定義ここでは selector が使用されています (第 7 章「Day: CSS の概要」を参照) は、メニュー レイヤーのサブ要素
と
(3) onmouseover効果を定義します
#menu li a {
PADDING:5px 0px 5px 15px;
DISPLAY:block;
FONT-WEIGHT:bold;
BACKGROUND:url(images/icon_dot_lmenu.gif) -repeat 2px 8px;
WIDTH: 100%;
COLOR: #444;
TEXT-DECORATION: none;
}
#menu li a:hover { BACKGROUND: url(images/icon_dot_lmenu2.gif) #C61C18 no-repeat 2px 8px;
COLOR: #fff; }
は次のように説明されます:
"display:block;" は、リンクをボタンにすることを意味します。 (images /icon_dot_lmenu.gif) traditional no-repeat 2px 8px;"この文は、li を置き換える小さな点のアイコンを定義します。 「透明」は背景が透明であること、「2px 8px」はアイコンの位置が左から2px、上から8pxであることを指定します。この文は、「BACKGROUND-IMAGE: url(images/icon_dot_lmenu.gif); BACKGROUND-POSITION: 2px 8px; BACKGROUND-REPEAT: no-repeat; BACKGROUND-COLOR: traditional
」という 4 つの文に分割することもできます。 li a:hover」は、マウスがリンク上に移動したときの色の変化と小さなアイコンの変化を定義します。
OK、これがテーブルのないメニューの実装方法です。もともと HTML で記述されていたすべてのプレゼンテーション スタイルが取り除かれ、CSS ファイルに組み込まれていることがはっきりと感じられます。ページコードの大部分は保存されます。 CSS を使用してメニュー スタイルを変更するのは非常に簡単です。
2. テーブルなしのメニュー(横)
上記は縦のメニューです。横のメニューを表示したい場合は、liも使用できますか?もちろん可能です。コードを以下に示します。効果はこのページの上部にあります:
ページ コード
p>
スタイルシートコード
#submenu {
MARGIN: 0px 8px 0px 8px;
BORDER: #ffdfdf;
COLOR: #666;
身長:
#submenu ul {
CLEAR: 左;
PADDING: 0px;
TEXT-ALIGN: 中央;
}
#submenu li {
FLOAT: left;
MARGIN: 0px;
PADDING: 2px 2px 3px;
BACKGROUND: url(images/icon_dot_lmenu.gif) -繰り返し 2px 8px;
WIDTH: 100%;
COLOR: なし;
#submenu li a:hover {
BACKGROUND: url(images/icon_dot_lmenu2.gif) C61C18 リピートなし 2px 8px;
COLOR: #fff; }
#submenu ul li#one A { WIDTH : 60px}
#submenu ul li#two A { WIDTH: 80px}
#submenu ul li#three A { WIDTH: 80px}
#submenu ul li#four A { WIDTH: 90px}
#submenu ul li#five A { WIDTH: 80px}
#submenu ul li#six A { WIDTH: 80px}
#submenu ul li#seven A { WIDTH: 60px}
#submenu ul li#eight A { WIDTH: 90px}
#submenu ul li# nine A { WIDTH: 80px}
上記のコードは 1 つずつ解析されません。水平メニューの鍵は、
ヒント: サブメニューの合計幅がレイヤーの幅より大きい場合、メニューは自動的に折りたたまれます。この原理を使用すると、順序付けされていない 1 つのリストの 2 列または 3 列のレイアウトを実現できますが、これは困難です。オリジナルのHTMLで実現します。 12 日目: 検証と一般的なエラー
1. 有効です エラーコードが存在する行とエラーの原因を見つけるのに役立ちます。
XHTML 検証の一般的なエラーにより、比較テーブルが発生します
DOCTYPE が見つかりません! HTML 4.01 移行にフォールバック -- DOCTYPE が定義されていません。
文字エンコーディングが見つかりません! UTF-8 に戻ります -- 未定義の言語エンコーディング。
「img」の終了タグが省略されましたが、OMITTAG NO が指定されました -- 画像タグが「/」で閉じられていません。
SHORTTAG YES が指定されていない限り、属性値の指定は属性値リテラルでなければなりません -- 属性値は引用符で囲む必要があります。
要素 "p" 未定義---p タグは大文字にすることができないため、小文字の p に変更する必要があります。
必須属性「alt」が指定されていません---画像には alt 属性を追加する必要があります。
必須属性「type」が指定されていません---JS または CSS によって呼び出されるタグに type 属性がありません。
最も一般的な間違いは、ラベルの大文字化です。通常、これらのエラーは関連しています。たとえば、
2.CSS2検証
検証URL:http://jigsaw.w3.org/css-validator/
検証方法:URL検証、ファイルアップロード検証、直接貼り付けコード検証の場合成功すると、「おめでとうございます。このドキュメントはスタイルシートの検証に合格しました。ほほー、検証情報は中国語に対応しています。」と表示されます。図に示すように:
検証が失敗した場合、エラーと警告の 2 種類のエラーが表示されます。エラーは、修正する必要があることを意味します。修正しないと検証に合格しません。警告は、W3C によって推奨されていないコードがあり、それを変更することが推奨されることを意味します。
CSS2 検証の一般的なエラーにより、比較テーブルが発生します
(エラー) 無効な数値: color909090 はカラー値ではありません: 909090 ---16 進数のカラー値には「#」記号、つまり #909090 を追加する必要があります (エラー)無効な数値: margin-top不明な寸法: 6ピクセル ---ピクセルは単位値ではありません。正しい書き方は6ピクセルです
(エラー) 属性スクロールバー-フェイスカラーが存在しません: #eeeeee ---スクロール バーの色は非標準の属性です
(エラー) 値cursorhand が存在しません: hand は非標準の属性値です。cursor:pointer に変更されます
(警告) Line: 0 font-family:最後の選択肢としてカテゴリ ファミリを指定します -- W3C 推奨フォント定義 最後に、Web フォントがさまざまなオペレーティング システムで表示できることを保証するために、「sans-serif」などのフォントのカテゴリで終わります。
(警告)行: 0 他のプロファイルの警告メッセージが見つかりません -- コード内に標準以外の属性または値があり、検証プログラムが対応する警告情報を判断して提供できないことを示します。
同様に、検証を通過した後、CSS 検証通過アイコンを配置できます。コードは次のとおりです。
-->
関連記事
続きを見る