検索
ホームページウェブフロントエンドhtmlチュートリアルdiv+css レイアウトを始める [transfer]_html/css_WEB-ITnose

这是在网页设计师上看到的一篇文章,很适合入门div+css布局的人看,转了过来收藏,hoho~~

你正在学习CSS布局吗?是不是还不能完全掌握纯CSS布局?通常有两种情况阻碍你的学习:

第一种可能是你还没有理解CSS处理页面的原理。在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构,然后再针对语义、结构添加CSS。这篇文章将告诉你应该怎样把HTML结构化。

另一种原因是你对那些非常熟悉的表现层属性(例如:cellpadding,、hspace、align="left"等等)束手无策,不知道该转换成对应的什么CSS语句。当你解决了第一种问题,知道了如何结构化你的HTML,我再给出一个列表,详细列出原来的表现属性用什么CSS来代替。

结构化HTML
我们在刚学习网页制作时,总是先考虑怎么设计,考虑那些图片、字体、颜色、以及布局方案。然后我们用Photoshop或者Fireworks画出来、切割成小图。最后再通过编辑HTML将所有设计还原表现在页面上。

如果你希望你的HTML页面用CSS布局(是CSS-friendly的),你需要回头重来,先不考虑“外观”,要先思考你的页面内容的语义和结构。

外观并不是最重要的。一个结构良好的HTML页面可以以任何外观表现出来,CSS Zen Garden是一个典型的例子。CSS Zen Garden帮助我们最终认识到CSS的强大力量。

HTML不仅仅只在电脑屏幕上阅读。你用photoshop精心设计的画面可能不能显示在PDA、移动电话和屏幕阅读机上。但是一个结构良好的HTML页面可以通过CSS的不同定义,显示在任何地方,任何网络设备上。

开始思考
首先要学习什么是"结构",一些作家也称之为"语义"。这个术语的意思是你需要分析你的内容块,以及每块内容服务的目的,然后再根据这些内容目的建立起相应的HTML结构。

如果你坐下来仔细分析和规划你的页面结构,你可能得到类似这样的几块:

标志和站点名称
主页面内容
站点导航(主菜单)
子菜单
搜索框
功能区(例如购物车、收银台)
页脚(版权和有关法律声明)
我们通常采用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还是手机或者网络电视)有影响,它们可以被定义为任何的表现外观。

一个仔细结构化的HTML页面非常简单,每一个元素都被用于结构目的。当你想缩进一个段落,不需要使用blockquote标签,只要使用p标签,并对p加一个CSS的margin规则就可以实现缩进目的。p是结构化标签,margin是表现属性,前者属于HTML,后者属于CSS。(这就是结构于表现的相分离.)

良好结构的HTML页面内几乎没有表现属性的标签。代码非常干净简洁。例如,原先的代码,所有控制表现的东西都写到CSS中去,在结构化的HTML中,table就是表格,而不是其他什么(比如被用来布局和定位)。

亲自实践一下结构化
上面说的只是最基本的结构,实际应用中,你可以根据需要来调整内容块。常常会出现DIV嵌套的情况,你会看到"container"层中又有其它层,结构类似这样: 

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

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

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






clear: left;
clear: right;
clear: Both;
多くの 2 列または 3 列のレイアウトでは、位置決めに float 属性が使用されます。フローティングレイヤーで背景色または背景画像を定義する場合は、CSS を使用して

cellpadding="3"
vspace="3"
hspace="3" 属性を使用できます。 do パディング属性を設定します。同様に、パディングをそれぞれ上、右、下、左に設定できます。パッドは透明です。 align="center" text-align: center;

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

Text-align は text にのみ適用されます

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」です。

フローティングの動作を理解する

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

その他のヘルプ

既存の「CSS Discussion」リストは、CSS レイアウトの概要 (css-discuss.incutio.com/?page=CssLayouts)、CSS ヒントの概要 ( css-discuss.incutio.com/?page=CssHack) など

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

この記事では、HTML< Progress>について説明します。要素、その目的、スタイリング、および< meter>との違い要素。主な焦点は、< Progress>を使用することです。タスクの完了と< Meter> statiの場合

< datalist>の目的は何ですか 要素?< datalist>の目的は何ですか 要素?Mar 21, 2025 pm 12:33 PM

この記事では、HTML< Datalist>について説明します。オートコンプリートの提案を提供し、ユーザーエクスペリエンスの改善、エラーの削減によりフォームを強化する要素。

< meter>の目的は何ですか 要素?< meter>の目的は何ですか 要素?Mar 21, 2025 pm 12:35 PM

この記事では、html< meter>について説明します。要素は、範囲内でスカラーまたは分数値を表示するために使用され、Web開発におけるその一般的なアプリケーション。それは差別化< Meter> < Progress>およびex

ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか?ビューポートメタタグとは何ですか?レスポンシブデザインにとってなぜそれが重要なのですか?Mar 20, 2025 pm 05:56 PM

この記事では、モバイルデバイスのレスポンシブWebデザインに不可欠なViewportメタタグについて説明します。適切な使用により、最適なコンテンツのスケーリングとユーザーの相互作用が保証され、誤用が設計とアクセシビリティの問題につながる可能性があることを説明しています。

HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか?HTML5フォーム検証属性を使用してユーザー入力を検証するにはどうすればよいですか?Mar 17, 2025 pm 12:27 PM

この記事では、ブラウザのユーザー入力を直接検証するために、必要、パターン、MIN、MAX、および長さの制限などのHTML5フォーム検証属性を使用して説明します。

HTML5< time>を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素?HTML5< time>を使用するにはどうすればよいですか 日付と時刻を意味的に表す要素?Mar 12, 2025 pm 04:05 PM

この記事では、html5< time>について説明します。セマンティックデート/時刻表現の要素。 人間の読み取り可能なテキストとともに、マシンの読みやすさ(ISO 8601形式)のDateTime属性の重要性を強調し、Accessibilitを増やします

HTML5のクロスブラウザー互換性のベストプラクティスは何ですか?HTML5のクロスブラウザー互換性のベストプラクティスは何ですか?Mar 17, 2025 pm 12:20 PM

記事では、HTML5クロスブラウザーの互換性を確保するためのベストプラクティスについて説明し、機能検出、プログレッシブエンハンスメント、およびテスト方法に焦点を当てています。

< iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか?< iframe>の目的は何ですか タグ?使用する際のセキュリティ上の考慮事項は何ですか?Mar 20, 2025 pm 06:05 PM

この記事では、< iframe>外部コンテンツをWebページ、その一般的な用途、セキュリティリスク、およびオブジェクトタグやAPIなどの代替案に埋め込む際のタグの目的。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。