Web前端學習第五天·fighting_框架和表單


首先祝自己祝大家520快樂吖~祝有對象的幸福下去,沒對象的早日找到對象,實在找不到的自己new一個對象!!!

 

框架集<frameset>

  大的網站不會使用框架集,小網站會使用框架集來制作。

  框架提供一種簡便的分欄式布局,減少對網頁內容的下載,提升網頁的加載速度。只能應用於一些簡單的頁面布局,不適合復雜頁面的布局。

  <frameset>用來划分窗體,不能放在<body>中,否則沒有效果。重要屬性除了rows和cols以為還有frameborder(邊框的厚度,默認值為5,等於0時邊框沒有明顯的邊界),border(框架之間的距離,一般設置為0),bordercolor(邊框的顏色,不經常使用,因為border和frameborder通常設置為0)。

  <frameset>可以設置cols,也可以設置rows(頁面按行縱向分布)。一般用百分比來設置,也可以用固定的像素來設置(當最后一列以“*”表示時,則前面數字單位是像素,否則是百分比),如下所示。  

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <title>框架集的使用</title>
 5     </head>
 6     <frameset cols="35%,35%,*">
 7         <frame></frame>
 8     <frame></frame>
 9     <frame></frame>
10     </frameset>
11 </html>

  <frame>的重要屬性:src(資源,例如:src="http://www.baidu.com")、name(框架的名稱)、noresize(不可以調整框架的大小嗎,默認值為false,即可以調整)、scrolling(是否出現滾動條,默認是auto,scrolling="no"時不出現滾動條,等於yes時滾動條出現)。

  <frameset>也可以將頁面划分為多行多列。示例代碼如下:(每一部分頁面按順序存放)。

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <title>將頁面切分成3行3列<title>
 5     </head>
 6     <frameset rows="1,1,1" cols="1,1,1">
 7         <frame/><!--第一行第一列-->
 8         <frame/><!--第一行第二列-->
 9         <frame/><!--第一行第三列-->
10 
11         <frame/><!--第二行第一列-->
12         <frame/><!--第二行第二列-->
13         <frame/><!--第二行第三列-->
14 
15         <frame/><!--第三行第一列-->   
16         <frame/><!--第三行第二列--> 
17         <frame/><!--第三行第三列-->
18                    
19     </frameset>       
20 </html>

  <frameset>跨行跨列的頁面布局,使用框架集的嵌套實現,如下所示。

 1 <!DOCTYPE html>
 2 <html>
 3     <head><title>框架集的嵌套使用</title></head>
 4     <frameset rows="20%,*">
 5         <frame src="http:www.baidu.com"/>
 6         <frameset cols="30%,*">
 7             <frame src="http:www.tmall.com"/>
 8             <frame/>
 9         </frameset>
10     </frameset>
11 </html>

 

超鏈接在框架中的使用

  在<a>超鏈接標簽中設置target的屬性值等於要顯示部分的框架的名稱。

  可以做一個自己所做案例顯示的靜態網頁供別人查看。

  <a>標簽的target屬性值除了_blank(打開新窗口)、_self(默認,在本窗口中打開)這兩個以外,還有_parent(超鏈接所在框架的父容器)、_top(頂級容器,整個窗口是頂級容器)

 

<iframe>框架

  行級標簽。

  在一個網頁的局部嵌入其它網頁的內容。

  網頁相同的地方可以采用<iframe>減少編碼量,且容易維護(如當當網)。

  門戶網站使用較多(大多用在廣告位),購物網站用的較少。當當網每個頁面的頭部和尾部基本相同,可以使用<iframe>標簽來減少代碼量。

  常用的屬性:marginwidth(框架內容和左右邊框的距離)、marginheight(框架內容和上下邊框的距離,設置為0,為了讓內容完全顯示在框架內)、scrolling="no"(無滾動條)。

  注意:<iframe>要有正確的結束標簽</iframe>,否則無法正確顯示。

 

客戶端訪問服務器的方式

  get請求

    地址欄寫網址而后回車,這種方式就屬於get請求。

    訪問的數據顯示在url上,數據有不安全因素,重要的數據需要加密處理。

    get請求的數據長度有限,不用的瀏覽器的長度有一定的區別,不能使用get請求較大的數據,一般不超過2kb。(IE6.0和IE7.0的url最大長度是2083個字符,超過后無法提交。firefox最大長度7764,超過最大長度無法提交。opera9最大長度7684,超出后無法提交,谷歌最大長度7713,超出后無法提交。項目開發中可以忽略。)

    get訪問的速度較快,一般用於從服務器獲取數據到客戶端。

    使用這種方式提交客戶端數據時,會將相應的數據顯示在url的參數中去。安全性較差。

  post請求

    要將客戶端的數據提交給服務器時,使用post請求,一般用於收集表單數據。

    訪問的數據封裝在http的請求流,不會再url上顯示,相對比較安全。

    從理論上講,請求的數據沒有大小的限制,但實際上數據請求的大小和服務器(可以限制客戶端提交數據的大小)也有關系。

    數據請求較慢,無論數據大小都需要請求兩次,先發送請求頭,再發送請求體。

    使用這種方式提交客戶端數據時,相應的數據不會顯示在url的參數中,比較安全。

  還有其他幾種幾乎不用的請求方式。

 

<form>表單簡介

  用於手機用戶的數據,填寫完成后,提交數據給服務器去處理。

  塊級標簽。

  要收集的內容都要放在表單里面,一個頁面可以有多個表單。(ajax也可以用來提交數據)

  常用於系統登錄,系統注冊,后台添加數據。

  屬性:action、method、enctype

    action  表單要提交的地址,用於處理表單的內容(一般是提交到后台的一個接口,這個接口是java寫成的,提交到這個接口后后台就知道如何處理這些數據了)。

    method  提交的方法,get還是post,默認是get方式提交。

    enctype  對表單數據進行編碼,默認都是要編碼的。格式為:application/x-www-form-urlencoded(表單默認的編碼格式,表單發送前對所有字符進行編碼。編碼規則:空格轉換為“+”號,特殊符號轉換為ASC HEX值)。提交普通的文本內容到服務器就可以采用這種默認的編碼方式。當你需要提交的是一個文件時,編碼就需要采用另一種格式:multipart/form-data(不對字符編碼,文件上傳時使用)。text/plain(是一種純文本編碼,空格轉換為“+”號,但是不對特殊字符進行編碼)。

 

表單元素

  <input>標簽,通過type屬性值指定具體類型,不指定類型時,默認是text文本框類型。

  公共屬性有:size(指定表單元素的初始寬度。當type為text或password時,表單元素的大小以字符為單位,對於其他元素,寬度以像素為單位)、maxlength(type為text或password時,表示輸入的最大字符數),有利於防止sql的注入攻擊。

  <input>標簽的type屬性值有如下幾種情況:

    text  文本框(如用戶名的輸入)。重要屬性:autocomplete(自動完成輸入的內容,要求表單元素要有name屬性才有自動完成的效果,off表示自動完成不可用,on表示自動完成可用)、disabled(設置或者獲取控件的狀態,默認是false即可用,等於true時不可用,不能輸入內容)。

    password  密碼框。屬性與文本框類似。

    button  普通按鈕。一般結合javascript使用。屬性:value(顯示在button上的名稱)、onclick="alert('謝謝!');"(JS)。

    submit  提交按鈕。用於提交表單。

    reset  重置按鈕。清空表單的輸入,恢復到表單默認的狀態。

    checkbox  復選框。屬性:name(名字一定要是一樣的,一樣的名字才表示是一組數據)、value(必須要寫,否則提交到服務器后為空值,不知道所選項是什么,一般情況下它的值與顯示的名稱相同,實際開發過程中value一般是編號)、checked(是否被選中的狀態,true表示被選中,false表示沒被選中,但是false在瀏覽器解析時並不能實現這樣的功能,還是會顯示被選中,與disabled屬性類似)。

    友好設計:不只是選中復選框才能選中並打鈎,要求點擊對應的文字也能選中該復選框。這種情況下要用到<label>標簽的for屬性(設置或獲取給定標簽對象指定到的對象,值=另一個元素的id號即可)。下面的這行代碼可以點擊文字選中對應的復選框。

<input type="checkbox" id="chkDQ" name="hobby" value="打球"/><label for="chkDQ">打球</label>

    下面的這行代碼沒有上面的功能。

<input type="checkbox" id="chkDQ" name="hobby" value="打球"/><span>打球</span>

    radio  單選按鈕。屬性:name(將name的值設置為相同值,才表示一組數據,才能實現單選功能)、value與復選框的value屬性同理、checked(是否被選中的狀態,true表示被選中)。

    hidden  隱藏字段。屬性:value(隱藏的內容)。

    使用場景:傳用戶數據時給定一個用戶不需要知道的值給服務器,可以做數據的主鍵。

    image  圖片按鈕,用來提交表單,與submit是一樣的效果。屬性:src(圖片路徑)。

    file  文件域,上傳文件。不同的瀏覽器表現形式不同。

  <textarea>文本域標簽。默認表現形式是可以輸入很多行文本的文本框,在谷歌瀏覽器中可以拉伸拖拽,IE瀏覽器中不可以。

    屬性:cols(設置文本域寬度)、rows(設置文本域高度,即行數)。

    注意文本域標簽的開始標簽和結束標簽之間盡量不要有空格,盡量緊挨着寫,否則提交表單數據到服務器時會把一大段空格一起提交,出現問題。也不要將文本域標簽寫成<textarea/>,即不能是空標簽。

  <select>下拉框標簽。使用時要結合<option>子標簽一起使用。

    屬性:name(做動態網站必須使用name,相應的option必須給定value屬性屬性值以明確用戶選中的是哪一項)。

    <option>的屬性:selected(設置列表框中的選項是否為默認項)、value(提交到服務器的值)。

 

HTML5表單元素

  <input>標簽的type屬性值:

    color  顏色標簽。value指定顏色值(采用#十六進制數表示)。點擊這一塊就可以選擇相應的顏色。

      一個好用的工具:ColorPix.exe 取色工具,獲取你看到的東西的顏色的各種值。

    date  日期。不再需要寫大量的腳本來選擇日期。value值指定默認的日期,格式為****-**-**(年月日)。

    datetime-local  顯示本地時間。value值指定默認的時間,格式為2016-05-20T19:58:22(年月日T時分秒),不給定的話可以自己選擇。 

    number  數字向上或者向下滑動。可以填數字然后向上或者向下選擇不同的值。

    range  滑動標簽。min(指定最小值)、max(指定最大值)、value(指定當前默認值)。

    week  每年的周數。value指定哪一年第幾周,格式為2016-W25(2016年第25周)。

 

練習代碼段

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4     <title>form表單案例</title>
 5     <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
 6     </head>
 7     <body>
 8     <form action="success.html" type="get" enctype="application/x-www-form-urlencoded">
 9         <p>
10         <span>姓名</span>
11         <input type="text" autocomplete="on"/>
12         </p>
13         <p>
14         <span>密碼</span>
15         <input type="password"/>
16         </p>
17         <p>
18         <span>按鈕</span>
19         <input type="button" value="普通按鈕"/>
20         <input type="submit" value="提交按鈕"/>
21         <input type="reset" value="重置按鈕"/>
22         </p>
23         <p>
24         <span>愛好</span>
25         <input id="chkZQ" type="checkbox" name="hobby" value="足球" checked="true"/><label for="chkZQ">足球</label>
26         <input id="chkLQ" type="checkbox" name="hobby" value="籃球" checked="true"/><label for="chkLQ">籃球</label>
27         <input id="chkTW" type="checkbox" name="hobby" value="跳舞"/><label for="chkTW">跳舞</label>
28         <input id="chkJS" type="checkbox" name="hobby" value="健身"/><label for="chkJS">健身</label>
29         </p>
30         <p>
31         <span>性別</span>
32         <input id="rdoMale" type="radio" name="sex" value="male"/><label for="rdoMale"></label>
33             <input id="rdoFemale" type="radio" name="sex" value="female" checked="true"/><label for="rdoFemale"></label>
34         </p>
35         <p>
36         <span>隱藏文字</span>
37         <input type="hidden" value="這部分文字需要隱藏"/>
38         </p>
39         <p>
40         <span>圖片按鈕</span>
41         <input type="image" src="images/tianmao.ico"/>
42         </p>
43         <p>
44         <span>上傳文件</span>
45         <input type="file"/>
46         </p>
47         <p>
48         <span>備注</span>
49         <textarea cols="20" rows="5"></textarea>
50         </p>
51         <p>
52         <span>城市</span>
53         <select>
54             <option value="1" selected="true">上海</option>
55             <option value="1">北京</option>
56             <option value="1">武漢</option>
57             <option value="1">深圳</option>
58             <option value="1">南通</option>
59         </select>
60         </p>
61     </form>
62     <hr/>
63     <h1>HTML5表單元素</h1>
64     <form action="success.html" type="get">
65         <p>
66         <span>顏色</span>
67         <input type="color" value="#000000"/>
68         </p>
69         <p>
70         <span>日期</span>
71         <input type="date" value="2016-07-07"/>
72         </p>
73         <p>
74         <span>時間</span>
75         <input type="datetime-local" value="2016-07-08T22:09:56"/>
76             </p>
77         <p>
78         <span>數字滑動</span>
79         <input type="number" value="22"/>
80         </p>
81         <p>
82         <span>進度條</span>
83         <input type="range" min="0" max="100" value="20"/>
84         </p>
85         <p>
86         <span>周數</span>
87         <input type="week" value="2016-W25"/>
88         </p>
89     </form>
90     </body>
91 </html>

頁面內容如下:

    

 

  

 

 

  

 

 

 

  

  

 

  

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM