表格:
在HTML中,使用table標(biāo)簽來(lái)創(chuàng)建一個(gè)表格
在table標(biāo)簽中使用tr來(lái)表示表格中的一行,有幾行就有幾對(duì)tr
在tr中需要使用td來(lái)創(chuàng)建一個(gè)單元格,有幾個(gè)單元格就有幾個(gè)td
可以使用th標(biāo)簽來(lái)表示表頭中的內(nèi)容,
它的用法和td一樣,不同的是它會(huì)有一些默認(rèn)效果
rowspan用來(lái)設(shè)置縱向的合并單元格
colspan橫向的合并單元格
/*邊框*/
? ? ? ? ? ? /*border:1px solid black;*/
? ? ? ? ? ? /*table和td邊框之間默認(rèn)有一個(gè)距離,通過(guò)border-spacing屬性可以設(shè)置這個(gè)距離*/
? ? ? ? ? ? /*border-spacing: 10px;*/
? ? ? ? ? ? /*
? ? ? ? ? ? border-collapse可以用來(lái)設(shè)置表格的邊框合并
? ? ? ? ? ? 如果設(shè)置了邊框合并,則border-spacing自動(dòng)失效
有一些情況下表格是非常的長(zhǎng)的,這時(shí)就需要將表格分為三個(gè)部分,表頭,表格的主體,表格底部
在HTML中為我們提供了三個(gè)標(biāo)簽:
thead 表頭
tbody 表格主體
tfoot 表格底部
這三個(gè)標(biāo)簽的作用,就來(lái)區(qū)分表格的不同的部分,他們都是table的子標(biāo)簽,都需要直接寫(xiě)到table中,tr需要寫(xiě)在這些標(biāo)簽當(dāng)中
thead中的內(nèi)容,永遠(yuǎn)會(huì)顯示在表格的頭部
tfoot中的內(nèi)容,永遠(yuǎn)都會(huì)顯示表格的底部
tbody中的內(nèi)容,永遠(yuǎn)都會(huì)顯示表格的中間
如果表格中沒(méi)有寫(xiě)tbody,瀏覽器會(huì)自動(dòng)在表格中添加tbody
并且將所有的tr都放到tbody中,所以注意tr并不是table的子元素,而是tbody的子元素
通過(guò)table > tr 無(wú)法選中行 需要通過(guò)tbody > tr
以前表格更多的情況實(shí)際上是用來(lái)對(duì)頁(yè)面進(jìn)行布局的,但是這種方式早已被CSS所淘汰了
表格的列數(shù)由td最多的那行決定
表格是可以嵌套,可以在td中在放置一個(gè)表格
子元素和父元素相鄰的垂直外邊距會(huì)發(fā)生重疊,子元素的外邊距會(huì)傳遞給父元素
使用空的table標(biāo)簽可以隔離父子元素的外邊距,阻止外邊距的重疊
解決父子元素的外邊距重疊
.box1:before{
content: "";
/*display:table可以將一個(gè)元素設(shè)置為表格顯示*/
/*display: table;
}
解決父元素高度塌陷
.clearfix:after{
content: "";
display: block;
clear: both;
}
經(jīng)過(guò)修改后的clearfix是一個(gè)多功能的樣式,既可以解決高度塌陷,又可以確保父元素和子元素的垂直外邊距不會(huì)重疊
.clearfix:before,
.clearfix:after{
content: "";
display: table;
clear: both;
}
.clearfix{
zoom: 1;
}
表單:
表單的作用就是用來(lái)將用戶(hù)信息提交給服務(wù)器的
比如:百度的搜索框 注冊(cè) 登錄這些操作都需要填寫(xiě)表單
使用form標(biāo)簽創(chuàng)建一個(gè)表單
form標(biāo)簽中必須指定一個(gè)action屬性,該屬性指向的是一個(gè)服務(wù)器的地址
當(dāng)我們提交表單時(shí)將會(huì)提交到action屬性對(duì)應(yīng)的地址
-->
<!--? 設(shè)置請(qǐng)求方式:method="post" -->
<!--? 需要上傳文件時(shí)要加屬性: enctype="multipart/form-data" -->
使用form創(chuàng)建的僅僅是一個(gè)空白的表單,我們還需要向form中添加不同的表單項(xiàng)
在表單中可以使用fieldset來(lái)為表單項(xiàng)進(jìn)行分組,可以將表單項(xiàng)中的同一組放到一個(gè)fieldset中
在fieldset可以使用legend子標(biāo)簽,來(lái)指定組名
使用input來(lái)創(chuàng)建一個(gè)文本框,它的type屬性是text
如果希望表單項(xiàng)中的數(shù)據(jù)會(huì)提交到服務(wù)器中,還必須給表單項(xiàng)指定一個(gè)name屬性
name表示提交內(nèi)容的名字
用戶(hù)填寫(xiě)的信息會(huì)附在url地址的后邊以查詢(xún)字符串的形式發(fā)送給服務(wù)器
url地址?查詢(xún)字符串
格式:
屬性名=屬性值&屬性名=屬性值&屬性名=屬性值&……
在文本框中也可以指定value屬性值,該值將會(huì)作為文本框的默認(rèn)值顯示
在html中還為我們提供了一個(gè)專(zhuān)門(mén)用來(lái)選中表單中的提示文字的label標(biāo)簽
該標(biāo)簽可以指定一個(gè)for屬性,該屬性的值需要指定一個(gè)表單項(xiàng)的id值
value是默認(rèn)值,設(shè)置什么默認(rèn)顯示什么.
密碼框
使用input創(chuàng)建一個(gè)密碼框,它的type屬性值是password
單選按鈕
- 使用input來(lái)創(chuàng)建一個(gè)單選按鈕,它的type屬性使用radio
- 單選按鈕通過(guò)name屬性進(jìn)行分組,name屬性相同是一組按鈕
- 像這種需要用戶(hù)選擇但是不需要用戶(hù)直接填寫(xiě)內(nèi)容的表單項(xiàng),還必須指定一個(gè)value屬性,這樣被選中的表單項(xiàng)的value屬性值將會(huì)最終提交給服務(wù)器
如果希望在單選按鈕或者是多選框中指定默認(rèn)選中的選項(xiàng),則可以在希望選中的項(xiàng)中添加checked="checked"屬性
多選框
- 使用input創(chuàng)建一個(gè)多選框,它的type屬性使用checkbox
下拉列表
- 使用select來(lái)創(chuàng)建一個(gè)下拉列表
下拉列表的name屬性需要指定給select,而value屬性需要指定給option
可以通過(guò)在option中添加selected="selected"來(lái)將選項(xiàng)設(shè)置為默認(rèn)選中
當(dāng)為select添加一個(gè)multiple="multiple",則下拉列表變?yōu)橐粋€(gè)多選的下拉列表
在下拉列表中使用option標(biāo)簽來(lái)創(chuàng)建一個(gè)一個(gè)列表項(xiàng)
在select中可以使用optgroup對(duì)選項(xiàng)進(jìn)行分組
同一個(gè)optgroup中的選項(xiàng)是一組
可以通過(guò)label屬性來(lái)指定分組的名字
使用textarea創(chuàng)建一個(gè)文本域
提交按鈕可以將表單中的信息提交給服務(wù)器
使用input創(chuàng)建一個(gè)提交按鈕,它的type屬性值是submit
在提交按鈕中可以通過(guò)value屬性來(lái)指定按鈕上的文字
<input type="reset">可以創(chuàng)建一個(gè)重置按鈕,點(diǎn)擊重置按鈕以后表單中內(nèi)容將會(huì)恢復(fù)為默認(rèn)值
使用input type=button可以用來(lái)創(chuàng)建一個(gè)單純的按鈕,這個(gè)按鈕沒(méi)有任何功能,只能被點(diǎn)擊
除了使用input,也可以使用button標(biāo)簽來(lái)創(chuàng)建按鈕
這種方式和使用input類(lèi)似,只不過(guò)由于它是成對(duì)出現(xiàn)的標(biāo)簽,使用起來(lái)更加的靈活
框架集:
框架集和內(nèi)聯(lián)框架的作用類(lèi)似,都是用于在一個(gè)頁(yè)面中引入其他的外部的頁(yè)面
框架集可以同時(shí)引入多個(gè)頁(yè)面,而內(nèi)聯(lián)框架只能引入一個(gè)
在h5標(biāo)準(zhǔn)中,推薦使用框架集,而不使用內(nèi)聯(lián)框架
使用frameset來(lái)創(chuàng)建一個(gè)框架集,注意frameset不能和body出現(xiàn)在同一個(gè)頁(yè)面中
所以要使用框架集,頁(yè)面中就不可以使用body標(biāo)簽
屬性:
rows,指定框架集中的所有的框架,一行一行的排列
cols, 指定框架集中的所有的頁(yè)面,一列一列的排列
這兩個(gè)屬性frameset必須選擇一個(gè),并且需要在屬性中指定每一部分所占的大小
frameset中也可以再嵌套frameset
frameset和iframe一樣,它里邊的內(nèi)容都不會(huì)被搜索引擎所檢索
所以如果搜索引擎檢索到的頁(yè)面是一個(gè)框架頁(yè)的話(huà),它是不能去判斷里邊的內(nèi)容的
使用框架集則意味著頁(yè)面中不能有自己的內(nèi)容,只能引入其他的頁(yè)面
而我們每單獨(dú)加載一個(gè)頁(yè)面,瀏覽器都需要重新發(fā)送一次請(qǐng)求,引入幾個(gè)頁(yè)面就需要發(fā)送幾次請(qǐng)求,用戶(hù)的體驗(yàn)比較差
如果非得用建議使用frameset而不使用iframe
在frameset中使用frame子標(biāo)簽來(lái)指定要引入的頁(yè)面
引入幾個(gè)頁(yè)面就寫(xiě)幾個(gè)frame