HTML5在頁面結(jié)構(gòu),多媒體處理等多方面都與以往的HTML有很大的不同。在本教程中,將帶領(lǐng)大家使用HTML5,CSS3及PHP實際設(shè)計一個符合HTML5標(biāo)準(zhǔn)的簡單的表單提交網(wǎng)頁,讀者可以從中學(xué)習(xí)到HTML5 新的表單頁面的基本元素。本文的讀者為有一定HTML,CSS及PHP的讀者學(xué)習(xí)
表單的設(shè)計草圖
由于本文不是教photoshop制作的文章,因此只是把設(shè)計的表單的草圖設(shè)計出來,然后去使用HTML5,CSS3和PHP去實現(xiàn),我們要設(shè)計的表單草圖如下圖所示:
![](/d/20211016/f924f1a9fa7d28cc02bf7bbf70e4bd17.gif)
▲
可以看到,在這個設(shè)計草圖中,我們期望實現(xiàn)的效果是:當(dāng)用戶輸入姓名時,NAME字段的文本框會以焦點的形式顯示出來,而email的輸入框仔細看,是一個圓角邊框的輸入框,而message的文本區(qū)域輸入框中,可以看到有一張背景底圖。而提交按鈕則是一個自定義的按鈕。
開始動手設(shè)計
接下來我們開始進行表單的設(shè)計。本文要使用的是php,因此可以用任何的PHP編程工具先建立一個index.php文件,然后開始編寫符合HTML5標(biāo)準(zhǔn)的表單。
1)關(guān)于DOCTYPE
在HTML5中,關(guān)于DOCTYPE的聲明將變得十分簡單,代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Contact Form</title>
</head>
<body>
</body>
</html>
看到了么?在HTML5中,對頁面首部的類型聲明,現(xiàn)在只需要一句:
就可以了,而對比下以前的HTML4,需要比較麻煩地去聲明,如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">.
接下來,我們開始設(shè)計頁面表單的結(jié)構(gòu),我們先來看下如下圖,表單的結(jié)構(gòu):
![](/d/20211016/095c6f7c300028d55e270bbc22ea16ba.gif)
可以看到,我們分為Header頭部區(qū)域,Main Body的表單主區(qū)域,F(xiàn)ooter area則是表單的底部區(qū)域。而HTML5中,實現(xiàn)這一切其實十分簡單,如下代碼:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Contact Form</title>
</head>
<body>
<header class="body">
</header>
<section class="body">
</section>
<footer class="body">
</footer>
</body>
</html>
可以看到,在這里沒有了傳統(tǒng)的div,取而代之的是,HTML5中新的標(biāo)簽元素header,footer和section,這些標(biāo)簽中的header標(biāo)簽是指定了頁面頭部區(qū)域,section則指定了頁面的主體區(qū)域,footer部分則指定了頁面的尾部區(qū)域,相比div,它們的含義更加清晰,從語義上更符合使用習(xí)慣。這里同時為它們指定了css類body,以統(tǒng)一它們的風(fēng)格。
表單部分設(shè)計
接下來看下表單部分的設(shè)計,先看下代碼如下:
<form>
<label>Name</label>
<input name="name" placeholder="Type Here">
<label>Email</label>
<input name="email" type="email" placeholder="Type Here">
<label>Message</label>
<textarea name="message" placeholder="Type Here"></textarea>
<input id="submit" name="submit" type="submit" value="Submit">
</form>
下面介紹在HTML5中,input標(biāo)簽跟HTML4中的不同。在HTML5中,input標(biāo)簽同樣有name和id等屬性。而最大的不同,是HTML5中的type屬性中,新增了很多類型,以適應(yīng)用戶的需求,但很遺憾的是,目前不是所有瀏覽器都支持這些新增的type屬性,因此本文只講解其中一些大部分瀏覽器都支持的新增type屬性,比如其中上面例子中談到的type=email,則是一個只允許用戶輸入email的文本框。即使有部分瀏覽器不支持email文本框的話也無所謂,因為會將其識別為一個傳統(tǒng)的type=text的文本框,而在iOS系統(tǒng)上,當(dāng)遇到type=email屬性時,將會打開方便輸入email的鍵盤布局,如下圖所示:
![](/d/20211016/ef5d78e36bf033acac999eef656c1551.gif)
▲
而在type=email標(biāo)簽中,請留意其中的placeholder屬性,這里設(shè)置為”type here”,意思是當(dāng)用戶沒有在這個email框輸入內(nèi)容時,自動會出現(xiàn)提示用戶輸入的文字,這里很好地起到提醒的作用,比用一大堆javascript編寫的效果要好,如下圖:
![](/d/20211016/13133bc0d97124fbc93b17f6c4b3a5e6.gif)