欧美乱伦图片区,国产日韩欧美一区二区三区四区五区,欧美性色爽,乱伦小说网站免费观看视频,啊用力啊好深啊H在线观看,男女做哎爱过程图片

信息動態(tài)

網(wǎng)站設(shè)計是技術(shù)與創(chuàng)意的完美融合!

建站常識

簡單form標(biāo)準(zhǔn)化實例——整體布局

2007-02-01 10:29:00

form無論是在網(wǎng)站的制作中,還是在網(wǎng)站的重構(gòu)中,我們都會頻繁地“碰面”,當(dāng)“碰面”的次數(shù)多了,反而覺得他更讓人迷茫,有種熟悉的“陌生”,越來越把握不了他。

下面我們將帶大家走進form的世界,一起來熟悉、探討、掌握他的“脾性”。

按此在新窗口瀏覽圖片

對于簡單form的設(shè)計圖(如圖一,yahoo注冊頁面的一部分),我們?nèi)绾蝸碜稣w的布局呢?大體我們可以選用以下3種方式來做布局:

1、使用table來布局

這是大家最常用的方法,雖然現(xiàn)在到處都在談標(biāo)準(zhǔn)化,甚至更多的在說div+css,但懌飛還是推薦大家使用table來布局form。對于標(biāo)準(zhǔn),個人的另類理解“更符合邏輯,更效率快捷”。

為什么推薦大家使用呢?table本就是用來顯示二維數(shù)據(jù),用table來布局form可以說是他的“老本行”。另外重要的一點是,對于復(fù)雜的form,table能更有效的進行布局和維護修改,體現(xiàn)了效率和易用。

在布局之前,先溫習(xí)一下table的部分標(biāo)簽:

  • table:顯示二維數(shù)據(jù)
  • summary:定義表格的用途
  • caption:定義表格的標(biāo)題,在表格開始的地方使用,僅一次
  • tr:表格中的一行
  • th:表頭單元格,定義一行或者一列的表頭信息
  • td:數(shù)據(jù)單元格

下面我們具體來對圖一的設(shè)計圖進行整體布局:

XHTML部分:

<form id="demoform" class="democss" action="">

<table summary="使用table來布局的演示" id="demo">

<caption>
Registration example form
</caption>

<tr>
<th><span class="required">*</span> <label for="fname" accesskey="F">First name:</label></th>
<td><input type="text" id="fname" value="" /></td>
</tr>
<tr>
<th><span class="required">*</span> <label for="lname" accesskey="L">Last name:</label></th>
<td><input type="text" id="lname" value="" /></td>
</tr>
<tr>
<th><span class="required">*</span> <label for="content" accesskey="C">Preferred content:</label></th>
<td>
<select name="content" id="content">
<option value="us" selected="selected">Yahoo! U.S.</option>
<option value="e1">Yahoo! U.S. in Spanish</option>
<option value="b5">Yahoo! U.S. in Chinese</option>
<option value="cn">Yahoo! China</option>
<option value="uk">Yahoo! United Kingdom</option>
<option value="ar">Yahoo! Argentina</option>
<option value="aa">Yahoo! Asia</option>
<option value="au">Yahoo! Australia</option>
<option value="br">Yahoo! Brazil</option>
<option value="ca">Yahoo! Canada in English</option>
<option value="cf">Yahoo! Canada in French</option>
<option value="fr">Yahoo! France</option>
<option value="de">Yahoo! Germany</option>
<option value="hk">Yahoo! Hong Kong</option>
<option value="in">Yahoo! India</option>
<option value="it">Yahoo! Italy</option>
<option value="kr">Yahoo! Korea</option>
<option value="mx">Yahoo! Mexico</option>
<option value="sg">Yahoo! Singapore</option>
<option value="es">Yahoo! Spain</option>
<option value="tw">Yahoo! Taiwan</option>
</select>
</td>
</tr>
<tr>
<th><span class="required">*</span> <label for="sex" accesskey="G">Gender:</label></th>
<td>
<select name="sex" id="sex">
<option value="">[Select] </option>
<option value="m">Male</option>
<option value="f">Female</option>
</select>
</td>
</tr>
<tr>
<th><span class="required">*</span> <label for="yid" accesskey="Y">Yahoo! ID:</label></th>
<td><input type="text" value="" id="yid"> <span class="b">@yahoo.com</span><br />
<span class="explain">ID may consist of a-z, 0-9, underscores, and a single dot (.)</span></td>
</tr>
<tr>
<th><span class="required">*</span> <label for="pw" accesskey="P">Password:</label></th>
<td>
<input type="password" value="" id="pw" /><br />
<span class="explain">Six characters or more; capitalization matters!</span>
</td>
</tr>
<tr>
<th><span class="required">*</span> <label for="pw2" accesskey="R">Re-type password:</label></th>
<td><input type="password" value="" id="pw2"/></td>
</tr>
<tr>
<th></th>
<td><input type="submit" value="Submit" class="submit"/> <input type="reset" value="Reset" class="submit"/></td>
</tr>
</table>
</form>

CSS部分:

* {
  margin:0;
  padding:0;
}

table {
   border-collapse:collapse;
}

input,select {
   font-family:Arial, Helvetica, sans-serif;
   font-size: 12px;
}

.required {
  font:0.8em Verdana !important;
  color:#f68622;
}

.explain {
  color:#808080;
}

.b {
  font-weight:bold;
  font-size:12px;
}

.democss table{
  font:11px/12px Arial, Helvetica, sans-serif;
  color:#333;
  width:420px;
}

.democss caption {
  display:none;
}

.democss th {
  font-weight:normal;
  text-align:right;
  vertical-align:top;
  padding:4px;
  padding-top:8px;
  width:110px
}

.democss td {
  text-align:left;
  padding:4px;
  width:294px;
}

.democss input {
  width:180px;
}

.democss select#content {
  width:185px;
}

.democss input.submit {
  width:70px;
}

具體演示:

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼]

#p#

2、使用label來布局

特點:對于簡單的form布局,此方法在語義表現(xiàn)上更為突出。

通常的解決方法為

為label和input或其他的外圍添加一個div或p,把該div或p觸發(fā)layout(可以利用Holly Hack設(shè)置height: 1%),并清除左浮動clear:left;。將label設(shè)為float: left;浮動在input或其他的右邊。

讓label 對齊的是方法是:固定label的寬度,然后根據(jù)需要使用text-align向左或者向右對齊。

如果label右側(cè)有多行input或其他,我們可以對div或p設(shè)置padding-left:xpx,然后對label設(shè)置margin-left:-xpx,

設(shè)定寬度的一個小竅門,使用單位em根據(jù)標(biāo)記的最大字?jǐn)?shù)來定寬度,不必辛苦測試px。

當(dāng)然你也可以不用div或p,在每行結(jié)束使用<br />,并且個br設(shè)定清除浮動clear:left;

注意:使用次方法在IE下有個小BUG,那就是div或p里的第一行的input或其他有3px的IE的BUG,我們可以使用只有IE才識別的* html來定義屬性來消除3px的BUG。

下面我們具體來對圖一的設(shè)計圖進行整體布局:

XHTML部分:

<form id="demoform" class="democss" action="">

<p>
<label for="fname" accesskey="F"><span class="required">*</span> First name:</label>
<input type="text" id="fname" value="" />
</p>
<p>
<label for="lname" accesskey="L"><span class="required">*</span> Last name:</label>
<input type="text" id="lname" value="" />
</p>
<p>
<label for="content" accesskey="C"><span class="required">*</span> Preferred content:</label>
<select name="content" id="content">
<option value="us" selected="selected">Yahoo! U.S.</option>
<option value="e1">Yahoo! U.S. in Spanish</option>
<option value="b5">Yahoo! U.S. in Chinese</option>
<option value="cn">Yahoo! China</option>
<option value="uk">Yahoo! United Kingdom</option>
<option value="ar">Yahoo! Argentina</option>
<option value="aa">Yahoo! Asia</option>
<option value="au">Yahoo! Australia</option>
<option value="br">Yahoo! Brazil</option>
<option value="ca">Yahoo! Canada in English</option>
<option value="cf">Yahoo! Canada in French</option>
<option value="fr">Yahoo! France</option>
<option value="de">Yahoo! Germany</option>
<option value="hk">Yahoo! Hong Kong</option>
<option value="in">Yahoo! India</option>
<option value="it">Yahoo! Italy</option>
<option value="kr">Yahoo! Korea</option>
<option value="mx">Yahoo! Mexico</option>
<option value="sg">Yahoo! Singapore</option>
<option value="es">Yahoo! Spain</option>
<option value="tw">Yahoo! Taiwan</option>
</select>
</p>
<p>
<label for="sex" accesskey="G"><span class="required">*</span> Gender:</label>
<select name="sex" id="sex">
<option value="">[Select] </option>
<option value="m">Male</option>
<option value="f">Female</option>
</select>
</p>
<p>
<label for="yid" accesskey="Y"><span class="required">*</span> Yahoo! ID:</label>
<input type="text" value="" id="yid"> <span class="b">@yahoo.com</span><br />
<span class="explain">ID may consist of a-z, 0-9, underscores, and a single dot (.)</span>
</p>
<p>
<label for="pw" accesskey="P"><span class="required">*</span> Password:</label>
<input type="password" value="" id="pw" /><br />
<span class="explain">Six characters or more; capitalization matters!</span>
</p>
<p>
<label for="pw2" accesskey="R"><span class="required">*</span> Re-type password:</label>
<input type="password" value="" id="pw2"/>
</p>

<div id="submit">
<input type="submit" value="Submit" class="submit"/> <input type="reset" value="Reset" class="submit"/>
</div>

</form>

CSS部分:

* {
  margin:0;
  padding:0;
}

input,select {
   font-family:Arial, Helvetica, sans-serif;
   font-size: 12px;
}

.required {
  font:0.8em Verdana !important;
  color:#f68622;
}

.explain {
  color:#808080;
}

.b {
  font-weight:bold;
  font-size:12px;
}

.democss {
  font:11px/12px Arial, Helvetica, sans-serif;
  color:#333;
}

.democss p {
  width: 298px;
  clear: left;
  padding:4px;
  padding-left: 122px;
  text-align:left;
  height: 1%;
}

.democss label {
  float: left;
  margin-left: -122px;
  width: 110px;
  padding:4px 4px 0;
  text-align:right;
}

.democss input {
  width:180px;
}

.democss select#content {
  width:185px;
}

.democss input.submit {
  width:70px;
}

div#submit {
  width:298px;
  text-align:left;
  padding:4px;
  padding-left:122px;
}

* html .democss input,* html .democss select{
  margin-left: -3px; 
}

* html div#submit input{
  margin-left: 0px;
}

具體演示:

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼]

#p#

3、使用dl、dt、dd來布局

此屬于發(fā)揮,練習(xí)的方法,當(dāng)然圖一的設(shè)計圖還可以用其他更多的方法來布局,用dl、dt、dd來布局只為拋磚引玉。

  • dl:代表HTML自定義列表
  • dt:代表HTML自定義列表組
  • dd:HTML自定義列表描述

雖然說dl、dt、dd在語義上并不能很好的表現(xiàn)圖一,但dl、dt、dd的布局特點依舊可以用來進行圖一的布局,而且效果還不錯,呵呵……

dt主要放label部分,dd主要放input或其他。

注意:和label布局一樣,有IE的3px BUG。

下面我們具體來對圖一的設(shè)計圖進行整體布局:

XHTML部分:

<form id="demoform" class="democss" action="">

<dl>
<dt><span class="required">*</span> <label for="fname" accesskey="F">First name:</label></dt>
<dd><input type="text" id="fname" value="" /></dd>
<dt><span class="required">*</span> <label for="lname" accesskey="L">Last name:</label></dt>
<dd><input type="text" id="lname" value="" /></dd>
<dt><span class="required">*</span> <label for="content" accesskey="C">Preferred content:</label></dt>
<dd><select name="content" id="content">
<option value="us" selected="selected">Yahoo! U.S.</option>
<option value="e1">Yahoo! U.S. in Spanish</option>
<option value="b5">Yahoo! U.S. in Chinese</option>
<option value="cn">Yahoo! China</option>
<option value="uk">Yahoo! United Kingdom</option>
<option value="ar">Yahoo! Argentina</option>
<option value="aa">Yahoo! Asia</option>
<option value="au">Yahoo! Australia</option>
<option value="br">Yahoo! Brazil</option>
<option value="ca">Yahoo! Canada in English</option>
<option value="cf">Yahoo! Canada in French</option>
<option value="fr">Yahoo! France</option>
<option value="de">Yahoo! Germany</option>
<option value="hk">Yahoo! Hong Kong</option>
<option value="in">Yahoo! India</option>
<option value="it">Yahoo! Italy</option>
<option value="kr">Yahoo! Korea</option>
<option value="mx">Yahoo! Mexico</option>
<option value="sg">Yahoo! Singapore</option>
<option value="es">Yahoo! Spain</option>
<option value="tw">Yahoo! Taiwan</option>
</select>
</dd>
<dt><span class="required">*</span> <label for="sex" accesskey="G">Gender:</label></dt>
<dd><select name="sex" id="sex">
<option value="">[Select] </option>
<option value="m">Male</option>
<option value="f">Female</option>
</select>
</dd>
<dt><span class="required">*</span> <label for="yid" accesskey="Y">Yahoo! ID:</label></dt>
<dd><input type="text" value="" id="yid"> <span class="b">@yahoo.com</span><br />
<span class="explain">ID may consist of a-z, 0-9, underscores, and a single dot (.)</span></dd>
<dt><span class="required">*</span> <label for="pw" accesskey="P">Password:</label></dt>
<dd><input type="password" value="" id="pw" /><br />
<span class="explain">Six characters or more; capitalization matters!</span>
</dd>
<dt><span class="required">*</span> <label for="pw2" accesskey="R">Re-type password:</label></dt>
<dd><input type="password" value="" id="pw2"/></dd>
</dl>

<div id="submit">
<input type="submit" value="Submit" class="submit"/> <input type="reset" value="Reset" class="submit"/>
</div>

</form>

CSS部分:

* {
  margin:0;
  padding:0;
}

input,select {
   font-family:Arial, Helvetica, sans-serif;
   font-size: 12px;
}

.required {
  font:0.8em Verdana !important;
  color:#f68622;
}

.explain {
  color:#808080;
}

.b {
  font-weight:bold;
  font-size:12px;
}

.democss {
  font:11px/12px Arial, Helvetica, sans-serif;
  color:#333;
}

.democss dl {
  width:420px;
}

.democss dt {
  width: 110px;
  float: left;
  padding:4px;
  padding-top:8px;
  text-align:right;
}

.democss dd{
  margin:0 0 0 118px;
  padding:4px;
  text-align:left;
}

.democss input {
  width:180px;
}

.democss select#content {
  width:185px;
}

.democss input.submit {
  width:70px;
}

div#submit {
  width:298px;
  text-align:left;
  padding:4px;
  padding-left:122px;
}

* html .democss input,* html .democss select{
  margin-left: -3px; 
}

* html div#submit input{
  margin-left: 0px;
}

具體演示:

運行代碼框

 [Ctrl+A 全部選擇 提示:你可先修改部分代碼]

對于dl,dt,dd的布局好像有個小BUG,有興趣的朋友可以實驗一下。給dd添加他的寬度屬性,我們可以根據(jù)相關(guān)數(shù)據(jù)算出dd的寬度為294px,添加上這個寬度屬性按理論上是沒有問題的,在FF下實驗也沒有問題,但在IE6下,就慘不忍睹了!

0532-85810878 473587358 掃碼添加微信

掃碼添加微信

掃碼關(guān)注公眾號

官方公眾號

2054585360
遂昌县| 巴楚县| 宁强县| 海城市| 宝应县| 雷波县| 林芝县| 庆安县| 芜湖市| 阿拉善盟| 紫云| 平武县| 商水县| 盐源县| 舟曲县| 巧家县| 宁海县| 建始县| 惠安县| 青神县| 保靖县| 类乌齐县| 岚皋县| 新泰市| 临夏市| 东宁县| 桃园县| 丹棱县| 朝阳区| 山西省| 汉阴县| 奉新县| 司法| 应城市| 桂林市| 辽宁省| 屏南县| 遵义县| 德兴市| 新昌县| 东山县|