次,我們來講解應用 CSS 來裝飾表格。
如何制作一個表格,我們在HTML課程中已經學習過了。現在,我們通過樣式,讓表格變得更加美觀易用。
首先來學習如何定義表格邊框。
要在CSS中指定表格的邊框,可以使用 border 屬性。我們來舉個例子。
創建 tables.html 文件和 tables-style.css 文件。在 html 里構建基礎代碼,引入外部樣式。
在 body 里編寫 emmet 命令:table>(tr>th*2)+(tr>td*2)*3,填入一些文本。
HTML
<table>
<tr>
<th>千鋒名師</th>
<th>最新作品</th>
</tr>
<tr>
<td>浠浠呀</td>
<td>《HTML+CSS前端入門》</td>
</tr>
<tr>
<td>陸榮濤</td>
<td>《Vite學習指南》</td>
</tr>
<tr>
<td>Kerwin</td>
<td>《Vue2+Vue3全套教程》</td>
</tr>
</table>
在瀏覽器里預覽效果:表格的結構有了,還沒有邊框。大家還記得如何通過 html 屬性定義邊框嗎?可以評論上告訴我。
現在,我們通過樣式來給表格添加邊框。定義群組選擇器 table, th, td,聲明樣式:border: 1px solid。
再看效果,表格線出現了,可是外觀上看,線條有點粗。是因為 table、th和td元素都有獨立的邊框。
CSS
table, th, td {
border: 1px solid;
}
可以應用 border-collapse 屬性,把表格的邊框折疊成一個單一的邊框。
回到 CSS,再給 table 元素聲明樣式:border-collapse: collapse。
此時,表格線變細了。
CSS
table {
border-collapse: collapse;
}
當前表格看起來很小,如果我們需要一個橫跨整個屏幕的表格,該如何實現呢?
回到CSS,再給 table 添加樣式 width: 100%。
再看一下效果,表格橫向撐滿了整個屏幕。
接下來,我們來定義表格的寬度和高度。
width 和 height 屬性用來定義表格的寬度和高度。我們來實驗一下。
將 table 的 width 屬性修改為 50%,再給 th 聲明樣式 height: 70px。
我們看,表格寬度縮小了一半,同時表頭的高度也變大到 70px 了。
接下來,我們來設置表格的對齊方式。
text-align 屬性用來設置 th 或 td 中內容的水平對齊方式,如居左、居右或居中對齊。默認情況下,th 元素的內容是居中對齊的,td 元素的內容是左對齊的。要使 td 元素的內容也居中對齊,可以使用text-align: center。舉個例子:
回到CSS,給 td 添加樣式:text-align: center。
此時,全部 td 里的內容在單元格里水平居中顯示了。
要使內容左對齊,可以使用 text-align: left 屬性。
比如將 th 元素的對齊方式改為左對齊。
CSS
th {
height: 70px;
text-align: left;
}
vertical-align 屬性用來設置 th 或 td 中內容的垂直對齊方式。如頂部對齊、底部對齊或中間對齊。默認情況下,對于 th 和 td 元素,表格中內容的垂直對齊方式是中間對齊。舉個例子:
回到 CSS,給 td 添加樣式:height: 50px,vertical-align: bottom。
我們看, td 單元格里的內容垂直底部對齊了。
接下來,給表格添加內填充、水平分隔線、鼠標滑過高亮及顏色等樣式。
要控制表格中邊框和內容之間的空間,可以給 td 和 th 元素設置 padding 屬性。
回到 CSS,先注釋掉 th 和 td 的樣式。定義選擇器 th, td,聲明樣式:padding: 15px,text-align: left。
CSS
th, td {
padding: 15px;
text-align: left;
}
看一下效果,內容和邊框線之間就具有了 15px 的填充。
接下來通過給 th 和 td 添加 border-bottom 屬性,實現表格的水平分隔線效果。
注釋掉原有的 border 屬性,給 th 和 td 添加樣式:border-bottom: 1px solid #ddd。
CSS
table, th, td {
/* border: 1px solid; */
}
th, td {
padding: 15px;
text-align: left;
border-bottom: 1px solid #ddd;
}
我們看,水平分隔線的表格效果就實現了。
在 tr 上使用 :hover 選擇器,在鼠標移過時突出顯示表格的行。
回到CSS,定義選擇器 tr:hover,聲明樣式:background-color: coral。kerou
當鼠標滑過每一行時,當前行就高亮顯示了。
我們也可以專門給某一行添加背景色,比如給 th 添加一個綠色背景。
再單獨給 th 定義樣式:background-color: #04AA6D,color: white;
CSS
th {
background-color: #04AA6D;
color: white;
}
這樣,通過給 th 添加背景色,使表頭的顯示更加醒目了。
本文配套教程鏈:https://www.bilibili.com/video/BV1oU4y1278g?p=101
Thymeleaf 是新一代 Java 模板引擎,與 Velocity、FreeMarker 等傳統 Java 模板引擎不同,Thymeleaf 支持 HTML 原型,其文件后綴為“.html”,因此它可以直接被瀏覽器打開,此時瀏覽器會忽略未定義的 Thymeleaf 標簽屬性,展示 thymeleaf 模板的靜態頁面效果;當通過 Web 應用程序訪問時,Thymeleaf 會動態地替換掉靜態內容,使頁面動態顯示。
html<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<!--th:text 為 Thymeleaf 屬性,用于在展示文本-->
<h1 th:text="歡迎您來到Thymeleaf">歡迎您訪問靜態頁面 HTML</h1>
</body>
</html>
當直接使用瀏覽器打開時,瀏覽器展示結果如下。
歡迎您訪問靜態頁面HTML
當通過 Web 應用程序訪問時,瀏覽器展示結果如下。
歡迎您來到Thymeleaf
Thymeleaf 的特點:
在使用 Thymeleaf 之前,首先要在頁面的 html 標簽中聲明名稱空間,示例代碼如下。
htmlxmlns:th="http://www.thymeleaf.org"
在 html 標簽中聲明此名稱空間,可避免編輯器出現 html 驗證錯誤,但這一步并非必須進行的,即使我們不聲明該命名空間,也不影響 Thymeleaf 的使用。
使用${}包裹的表達式被稱為變量表達式,該表達式具有以下功能:
選擇變量表達式與變量表達式功能基本一致,只是在變量表達式的基礎上增加了與 th:object 的配合使用。當使用 th:object 存儲一個對象后,我們可以在其后代中使用選擇變量表達式(*{...})獲取該對象中的屬性,其中,“*”即代表該對象。
html<div th:object="${session.user}" >
<p th:text="*{fisrtName}">firstname</p>
</div>
th:object 用于存儲一個臨時變量,該變量只在該標簽及其后代中有效,在后面的內容“th 屬性”中我詳細介紹。
不管是靜態資源的引用,還是 form 表單的請求,凡是鏈接都可以用鏈接表達式 (@{...})。
鏈接表達式的形式結構如下:
例如使用鏈接表達式引入 css 樣式表,代碼如下。
html<link href="asserts/css/signin.css" th:href="@{/asserts/css/signin.css}" rel="stylesheet">
消息表達式一般用于國際化的場景。結構如下。
htmlth:text="#{msg}"
注意:此處了解即可,我們會在后面的章節中詳細介紹。
片段引用表達式用于在模板頁面中引用其他的模板片段,該表達式支持以下 2 中語法結構:
以上語法結構說明如下:
Thymeleaf 還提供了大量的 th 屬性,這些屬性可以直接在 HTML 標簽中使用,其中常用 th 屬性及其示例如下表。
屬性 | 描述 | 示例 |
th:id | 替換 HTML 的 id 屬性 | <input id="html-id" th:id="thymeleaf-id" /> |
th:text | 文本替換,轉義特殊字符 | <h1 th:text="hello,bianchengbang" >hello</h1> |
th:untext | 文本替換,文本替換,不轉義特殊字符 | <div th:utext="'<h1>歡迎來到編程幫!</h1>'" >歡迎你</div> |
th:object | 在父標簽選擇對象,子標簽使用 *{…} 選擇表達式選取值。沒有選擇對象,那子標簽使用選擇表達式和 ${…} 變量表達式是一樣的效果。同時即使選擇了對象,子標簽仍然可以使用變量表達式。 | <div th:object="${session.user}" > <p th:text="*{fisrtName}">firstname</p> </div> |
th:value | 替換 value 屬性 | <input th:value = "${user.name}" /> |
th:with | 局部變量賦值運算 | <div th:with="isEvens = ${prodStat.count}%2 == 0" th:text="${isEvens}"></div> |
th:style | 設置樣式 | <div th:style="'color:#F00; font-weight:bold'">編程幫 www.biancheng.net</div> |
th:onclick | 點擊事件 | <td th:onclick = "'getInfo()'"></td> |
th:each | 遍歷,支持 Iterable、Map、數組等。 | <table> <tr th:each="m:${session.map}"> <td th:text="${m.getKey()}"></td> <td th:text="${m.getValue()}"></td> </tr></table> |
th:if | 根據條件判斷是否需要展示此標簽 | <a th:if ="${userId == collect.userId}"> |
th:unless | 和 th:if 判斷相反,滿足條件時不顯示 | <div th:unless="${m.getKey()=='name'}" ></div> |
th:switch | 與 Java 的 switch case語句類似通常與 th:case 配合使用,根據不同的條件展示不同的內容 | <div th:switch="${name}"> <span th:case="a">編程幫</span> <span th:case="b">www.biancheng.net</span></div> |
th:fragment | 模板布局,類似 JSP 的 tag,用來定義一段被引用或包含的模板片段 | <footer th:fragment="footer">插入的內容</footer> |
th:insert | 布局標簽;將使用 th:fragment 屬性指定的模板片段(包含標簽)插入到當前標簽中 | <div th:insert="commons/bar::footer"></div> |
th:replace | 布局標簽;使用 th:fragment 屬性指定的模板片段(包含標簽)替換當前整個標簽 | <div th:replace="commons/bar::footer"></div> |
th:selected | select 選擇框選中 | <select> <option>---</option> <option th:selected="${name=='a'}"> 編程幫 </option> <option th:selected="${name=='b'}"> www.biancheng.net </option></select> |
th:src | 替換 HTML 中的 src 屬性 | <img th:src="@{/asserts/img/bootstrap-solid.svg}" src="asserts/img/bootstrap-solid.svg" /> |
th:inline | 內聯屬性;該屬性有 text、none、javascript 三種取值,在 <script> 標簽中使用時,js 代碼中可以獲取到后臺傳遞頁面的對象。 | <script type="text/javascript" th:inline="javascript"> var name = /*[[${name}]]*/ ianchengbang'; alert(name)</script> |
th:action | 替換表單提交地址 | <form th:action="@{/user/login}" th:method="post"></form> |
在 Web 項目中,通常會存在一些公共頁面片段(重復代碼),例如頭部導航欄、側邊菜單欄和公共的 js css 等。我們一般會把這些公共頁面片段抽取出來,存放在一個獨立的頁面中,然后再由其他頁面根據需要進行引用,這樣可以消除代碼重復,使頁面更加簡潔。
Thymeleaf 作為一種優雅且高度可維護的模板引擎,同樣支持公共頁面的抽取和引用。我們可以將公共頁面片段抽取出來,存放到一個獨立的頁面中,并使用 Thymeleaf 提供的 th:fragment 屬性為這些抽取出來的公共頁面片段命名。 示例 1 將公共頁面片段抽取出來,存放在 commons.html 中,代碼如下。
html<div th:fragment="fragment-name" id="fragment-id">
<span>公共頁面片段</span>
</div>
在 Thymeleaf 中,我們可以使用以下 3 個屬性,將公共頁面片段引入到當前頁面中。
使用上 3 個屬性引入頁面片段,都可以通過以下 2 種方式實現。
通常情況下,
{} 可以省略,其行內寫法為 [[{...}]] 或 [({...})],其中 [[{...}]] 會轉義特殊字符,[(~{...})] 則不會轉義特殊字符。
示例 2
html<!--th:insert 片段名引入-->
<div th:insert="commons::fragment-name"></div>
<!--th:insert id 選擇器引入-->
<div th:insert="commons::#fragment-id"></div>
------------------------------------------------
<!--th:replace 片段名引入-->
<div th:replace="commons::fragment-name"></div>
<!--th:replace id 選擇器引入-->
<div th:replace="commons::#fragment-id"></div>
------------------------------------------------
<!--th:include 片段名引入-->
<div th:include="commons::fragment-name"></div>
<!--th:include id 選擇器引入-->
<div th:include="commons::#fragment-id"></div>
html<!--th:insert 片段名引入-->
<div>
<div id="fragment-id">
<span>公共頁面片段</span>
</div>
</div>
<!--th:insert id 選擇器引入-->
<div>
<div id="fragment-id">
<span>公共頁面片段</span>
</div>
</div>
------------------------------------------------
<!--th:replace 片段名引入-->
<div id="fragment-id">
<span>公共頁面片段</span>
</div>
<!--th:replace id 選擇器引入-->
<div id="fragment-id">
<span>公共頁面片段</span>
</div>
------------------------------------------------
<!--th:include 片段名引入-->
<div>
<span>公共頁面片段</span>
</div>
<!--th:include id 選擇器引入-->
<div>
<span>公共頁面片段</span>
</div>
Thymeleaf 在抽取和引入公共頁面片段時,還可以進行參數傳遞,大致步驟如下: 1.傳入參數; 2.使用參數。
引用公共頁面片段時,我們可以通過以下 2 種方式,將參數傳入到被引用的頁面片段中: 模板名::選擇器名或片段名(參數1=參數值1,參數2=參數值2) 模板名::選擇器名或片段名(參數值1,參數值2)
注:若傳入參數較少時,一般采用第二種方式,直接將參數值傳入頁面片段中; 若參數較多時,建議使用第一種方式,明確指定參數名和參數值,。
示例代碼如下:
java<!--th:insert 片段名引入-->
<div th:insert="commons::fragment-name(var1='insert-name',var2='insert-name2')"></div>
<!--th:insert id 選擇器引入-->
<div th:insert="commons::#fragment-id(var1='insert-id',var2='insert-id2')"></div>
------------------------------------------------
<!--th:replace 片段名引入-->
<div th:replace="commons::fragment-name(var1='replace-name',var2='replace-name2')"></div>
<!--th:replace id 選擇器引入-->
<div th:replace="commons::#fragment-id(var1='replace-id',var2='replace-id2')"></div>
------------------------------------------------
<!--th:include 片段名引入-->
<div th:include="commons::fragment-name(var1='include-name',var2='include-name2')"></div>
<!--th:include id 選擇器引入-->
<div th:include="commons::#fragment-id(var1='include-id',var2='include-id2')"></div>
在聲明頁面片段時,我們可以在片段中聲明并使用這些參數,例如:
java<!--使用 var1 和 var2 聲明傳入的參數,并在該片段中直接使用這些參數 -->
<div th:fragment="fragment-name(var1,var2)" id="fragment-id">
<p th:text="'參數1:'+${var1} + '-------------------參數2:' + ${var2}">...</p>
</div>
啟動 Spring Boot,使用瀏覽器訪問 fragment.html,結果如下圖。
Html是Hyper Text Mark-up Language 的首字母簡寫,意思是超文本標記語言,超文本指的是超鏈接,標記指的是標簽,是一種用來制作網頁的語言,這種語言由一個個的標簽組成,用這種語言制作的文件保存的是一個文本文件,文件的擴展名為html或者htm,一個html文件就是一個網頁,html文件用編輯器打開顯示的是文本,可以用文本的方式編輯它,如果用瀏覽器打開,瀏覽器會按照標簽描述內容文件渲染成網頁,顯示的網頁可以從一個網頁鏈接跳轉到另一個網頁。
Html中標簽分為 :成對標簽和自閉合標簽【空標簽】
成對出現,有開始標簽必須有結束標簽,內容包裹在兩個標簽中,而且開始標簽名和結束標簽名一致,并且結束標簽必須以斜杠/開頭
語法:
<font>內容</font>
只有一個標簽,用斜杠結束,斜杠也可以省略
語法:
<br/>
注意事項:
<!DOCTYPE html>
<html lang="en">
<head>
<title></title>
</head>
<body>
</body>
</html>
!DOCTYPE html是文檔聲明,定義文檔類型為html,并且告訴不同的瀏覽器用標準方式進行解析html語言,如果不寫的話,會產生怪異模式,所謂怪異模式,就是瀏覽器會用自己的方式進行解析,不同的瀏覽器有各自的解析方式,從而會出現無效果、不兼容等問題。
注意,html中有兩種聲明類型,一種叫做xhtml,即html,另一種叫做html5,html5是xhtml的升級版,所以我們建議使用html5的聲明方式
xhtml聲明方式:
<htmlxmlns="http://www.w3.org/1999/xhtml">
html5聲明方式:
<!DOCTYPE html>
html是html文檔的整體,也就是表示一個網頁。
html中的lang="en"是定義該文件語言是英文
head是html的第一層子元素【子標簽】,負責對網頁進行一些設置以及定義標題,設置包括定義網頁的編碼格式,外鏈css樣式文件和JavaScript文件等。設置的內容不會顯示在網頁上,標題的內容會顯示在標題欄中。即title標簽。
meta是html語言head標簽中的一個輔助性標簽,該標簽不包含任何內容,但是該標簽的屬性定義了與文檔相關聯的名稱,比如:編碼
<meta charset="utf-8"></meta>
body也是html的第一層子元素,我們頁面中顯示的所有內容全部都是編寫在該標簽體中。
html制定了文檔的編寫規范,必須遵守。
所有的標簽必須小寫
所有的屬性必須用雙引號括起來
html文檔代碼中可以插入注釋,注釋是對代碼的說明和解釋,注釋的內容不會顯示在頁面上。
注釋的語法:
<!-- 注釋的內容 -->
注:屬性是標簽的輔助作用。
屬性 描述 bgcolor 設置網頁的背景顏色 background 設置網頁的背景圖片
設置網頁的背景顏色
<!DOCTYPE html>
<html lang="en">
<head>
<title>html的屬性</title>
</head>
<body bacolor="pink">
</body>
</html>
我們在開發網頁時,需要經常的插入圖片、視頻、文件等一些操作,但是我們需要指定文件所在的位置,這個位置就是所謂的路徑
路徑分為:
設置網頁的背景圖片
<!DOCTYPE html>
<html lang="en">
<head>
<title>html的屬性</title>
</head>
<body background="../images/10.jpg">
</body>
</html>
注意事項:
bgcolor和background不能同時使用
background不能指定絕對路徑
網頁的組成:文字、圖片、視頻、超鏈接、列表、表格、表單等組成。
標簽 描述 hn 設置文字標題【n:取值范圍 1~6】 center 居中對齊 hr 水平線 屬性(width:寬度 color:顏色 size:粗細) br 換行 p 段落
標簽 描述 font 設置字體,需要借助屬性設置
屬性 描述 color 設置字體顏色 size 設置字體大小,不需要帶單位,取值范圍:1~7【瀏覽器默認值:3】 face 設置字體風格
<font size="2" color="red" face="黑體"></font>
標簽 描述 b 定義粗體文本 em 定義著重文字 i 定義斜體文字 small 定義小號字 strong 定義加重語氣 sub 定義下標字 sup 定義上標字 ins 定義插入字 del 定義刪除字
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html文本格式化標簽</title>
</head>
<body>
<b>粗體文本</b>
<i>傾斜文本</i>
<em>著重文本</em>
<small>小號字</small>
<strong>加重語氣</strong>
<sub>上標</sub>
<sup>下標</sup>
<ins>插入字</ins>
<del>刪除字</del>
</body>
</html>
在Html中,圖像由
標簽定義。
是空標簽,意思是說,它只包含屬性。
要在頁面上顯示圖像,你需要使用源屬性(src)。src指"source"。源屬性的值是圖像的URL地址。
標簽 描述 img 圖片標簽
屬性 描述 src 指定圖片的地址 width 設置圖片的寬度 height 設置圖片的高度 alt 設置圖片的預備文本
注意事項:不建議設置圖片大小,容易失真
在Html中,聲音由標簽定義。
標簽 描述 audio 聲音標簽
屬性 描述 src 指定聲音地址
<audio src="nice.mp3">對不起,您的瀏覽器不支持</audio>
在Html中,視頻由video標簽定義
標簽 描述 video 視頻標簽
屬性 描述 src 指定視頻地址
<video src="美女.mp4">對不起,您的瀏覽器不支持</video>
a標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。
a標簽最重要的屬性是href,它指定鏈接的目標。
在所有瀏覽器中,鏈接的默認外觀如下:
未被訪問的鏈接帶有下劃線而且是藍色的
已被訪問的鏈接帶有下劃線而且是紫色的
活動鏈接帶有下劃線而且是紅色的
語法:
<a href="鏈接目標">點擊內容</a>
屬性 描述 href 指定鏈接目標 name 指定錨的名稱 download 指定下載鏈接 target 指定跳轉方式 屬性值 描述 _blank 新窗口打開【常用】 _parent 在父窗口中打開鏈接【了解】 _self 默認,在當前窗口打開【了解】 _top 在當前窗體打開鏈接,并替換當前的整個窗體【了解】 framename 到 iframe 在講【常用】
超鏈接分類:
列表的使用與word等軟件的列表概念相似,只不過是應用在網頁展示中。
有序列表是指有數字編號或字母的列表項,可以使用css定義更多樣式。
<!-- 有序列表 -->
<ol type="a">
<li>新聞一</li>
<li>新聞二</li>
<li>新聞三</li>
</ol>
屬性 描述 type 設置符號類型 值:1 a A I i 默認數字 start 從第幾個開始【用于ol標簽中】 value 從第幾個開始【用于li標簽中】
<!-- 有序列表 -->
<ol type="a" start="4">
<li>新聞一</li>
<li type="1" value="1">新聞二</li>
<li>新聞三</li>
</ol>
無序列表是指沒有數字編號或字母的列表項,可以使用css定義更多樣式。
<!-- 無序列表 -->
<ul>
<li>童裝</li>
<li>男裝</li>
<li>女裝</li>
</ul>
屬性 描述 type 用于設置符號類型,默認:實心圓 值:空心圓、正方形 【用于ul、li】
<!-- 無序列表 -->
<ul type="square">
<li>童裝</li>
<li type="circle">男裝</li>
<li>女裝</li>
</ul>
描述列表指每個列表項有單獨的標題。
<!-- 描述列表 -->
<dl>
<dt>開源產品</dt>
<dd>Java封裝庫</dd>
<dd>Web組件庫</dd>
<dt>網站導航</dt>
<dd>mrliujava.com</dd>
<dd>mrliuweb.com</dd>
</dl>
表格在網頁開發中使用頻率非常高,尤其是數據展示的時候。
標簽 描述 table 代表表格標簽 caption 表格標題 thead 表頭部分 tbody 表格主體部分 tfoot 表格尾部
屬性 描述 border 表格邊框 cellspacing 單元格與單元格間距 width 寬度 height 高度 bgcolor 設置背景顏色 background 設置背景圖片 align 對齊方式
<!-- 表格 -->
<table border="1" cellspacing="0" width="600px" height="200px">
<caption>員工薪資統計表</caption>
<thead>
<tr>
<th>序號</th>
<th>姓名</th>
<th>性別</th>
<th>職位</th>
<th>薪資</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>狗蛋</td>
<td>男</td>
<td>JavaEe工程師</td>
<td>8780</td>
</tr>
<tr>
<td>2</td>
<td>黑妞</td>
<td>女</td>
<td>Web前端工程師</td>
<td>9750</td>
</tr>
<tr>
<td>3</td>
<td>傻蛋</td>
<td>妖</td>
<td>測試工程師</td>
<td>996</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>當前頁:1 頁</td>
<td>上一頁</td>
<td>下一頁</td>
<td>尾頁</td>
<td>共 3 頁</td>
</tr>
</tfoot>
</table>
屬性 說明 rowspan 行合并 colspan 列合并
下面是行合并:
<!-- 表格 -->
<table border="1" cellspacing="0" width="600px" height="200px">
<caption>員工薪資統計表</caption>
<thead>
<tr>
<th>序號</th>
<th>姓名</th>
<th>性別</th>
<th>職位</th>
<th>薪資</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>狗蛋</td>
<td>男</td>
<td rowspan="2">JavaEe工程師</td>
<td>8780</td>
</tr>
<tr>
<td>2</td>
<td>黑妞</td>
<td>女</td>
<td>9750</td>
</tr>
<tr>
<td>3</td>
<td>傻蛋</td>
<td>妖</td>
<td>測試工程師</td>
<td>996</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>當前頁:1 頁</td>
<td>上一頁</td>
<td>下一頁</td>
<td>尾頁</td>
<td>共 3 頁</td>
</tr>
</tfoot>
</table>
下面是列合并:
<!-- 表格 -->
<table border="1" cellspacing="0" width="600px" height="200px">
<caption>員工薪資統計表</caption>
<thead>
<tr>
<th>序號</th>
<th>姓名</th>
<th>性別</th>
<th>職位</th>
<th>薪資</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>狗蛋</td>
<td>男</td>
<td>JavaEe工程師</td>
<td>8780</td>
</tr>
<tr>
<td>2</td>
<td>黑妞</td>
<td>女</td>
<td>Web前端工程師</td>
<td>9750</td>
</tr>
<tr>
<td>3</td>
<td colspan="2">傻蛋</td>
<td>測試工程師</td>
<td>996</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>當前頁:1 頁</td>
<td>上一頁</td>
<td>下一頁</td>
<td>尾頁</td>
<td>共 3 頁</td>
</tr>
</tfoot>
</table>
表單是一個包含表單元素的區域。
表單元素是允許用戶在表單中輸入內容,比如:文本域(textarea)、下拉列表(select)、單選框(radio)、復選框(checkbox)等等。
表單需要使用表單標簽來設置:
<!-- 表單 -->
<form>
input元素
</form>
屬性 說明 action 后臺地址 method 提交方式GET或POST
GET和POST區別:
1.GET
2.POST
<form action="后端接口" method="POST">
<input type="text">
<input type="password">
</form>
使用label用于描述表單標題,當點擊標題后文本框會獲得焦點,需要保證使用的ID在頁面中是唯一的。
<form action="后端接口" method="POST">
<label for="username">用戶名</label>
<input type="text" id="username">
<label for="password">密碼</label>
<input type="password" id="password">
</form>
也可以將文本框放在label標簽內部,這樣就不需要設置id與for屬性了。
文本框用于輸入單行文本使用,下面是常用屬性與示例。
屬性 說明 type 表單類型,默認為text name 后端接收字段名 required 必須輸入 placeholder 提示文本內容 value 默認指 maxlength 允許最大輸入字符數 size 表單長度,一般用css來控制 disabled 禁用,不可提交后端 readonly 只讀,可提交后端 accept 設置選中類型 比如:.jpg capture 使用麥克風\視頻或攝像頭哪種方式獲取手機上傳文件,支持的值有microphone , video , camera
<form action="后端接口" method="POST">
<label for="username">用戶名</label>
<input type="text" name="username" id="username" placeholder="請輸入用戶名" maxlength="5" size="50" required>
</form>
當input類型為file時手機會讓用戶選擇圖片或者拍照,如果想直接調取攝像頭使用以下代碼.
<form action="后端接口" method="POST">
<label for="file">上傳文件</label>
<input type="file" name="file" id="file" accept="*.jpg" capture="camera">
</form>
通過設置表單的type字段可以指定不同的輸入內容.
類型 說明 email 輸入內容為郵箱 url 輸入內容為URL地址 password 輸入內容為密碼項 tel 電話號,移動端會調出數字鍵盤 search 搜索框 hidden 隱藏表單 submit 提交表單 reset 重置表單 button 自定義按鈕
隱藏表單用于提交后臺數據,但在前臺內容不顯示所以在其上做用樣式定義也沒有意義.
<input type="hidden" name="id" value="1">
創建提交按鈕可以將表單數據提交到后臺,有多種方式可以提交數據,比如:AJAX,或者Html的表單按鈕.
a.使用input構建提交按鈕,如果設置了name值,那么按鈕數據也會提交到后臺,如果有多個表單項可以通過這些進行判斷是哪個表單提交的.
<input type="submit" name="submit" value="提交表單">
b.使用button也可以提交,設置type屬性為submit或不設置都可以提交表單.
<button type="submit">提交表單</button>
通過為表單設置disabled或readonly都可以禁止表單,單readonly表單的數據可以提交到后端
<input type="text" value="數據" readonly>
表單可以通過設置pattern屬性指定正則驗證.
屬性 說明 pattern 正則表達式驗證規則 oninvalid 輸入錯誤時觸發的事件
<form action="">
<label for="username">用戶名</label>
<input type="text" name="username" id="username" pattern="[a-z]{5,20}" oninvalid="validate('請輸入5~20位字母的用戶名')">
<button>提交表單</button>
</form>
<script>
function validate(message){
alert(message);
}
</script>
文本域指可以輸入多行文本的表單,當然更復雜的情況可以使用編輯器如ueditor , ckeditor等.
屬性 說明 cols 列字符數(一般使用css控制更好) rows 行數(一般使用css控制更好)
<textarea cols="30" rows="3">請踩踩我......</textarea>
下拉列表項可用于多個值中的選擇.
屬性 說明 multiple 支持多選 size 列表框高度 optgroup 選項組 selected 選中狀態 option 選項值
<form action="">
<select multiple size="10">
<option value="">選擇課程</option>
<optgroup label="后端">
<option value="">JAVA</option>
<option value="">PHP</option>
<option value="">LINUX</option>
</optgroup>
<optgroup label="前端">
<option value="">HTML</option>
<option value="">CSS</option>
<option value="">JAVASCRIPT</option>
</optgroup>
</select>
</form>
單選框指只能選擇一個選項的表單,如性別的選擇:男 , 女 , 保密 只能選擇一個.
屬性 說明 checked 選中狀態
<form action="">
<input type="radio" name="" id="boy" checked>
<label for="boy">男</label>
<input type="radio" name="" id="girl">
<label for="girl">女</label>
</form>
復選框指允許選擇多個值的表單
屬性 說明 checked 選中狀態
<form action="">
<input type="checkbox" name="JAVA" id="java">
<label for="java">JAVA</label>
<input type="checkbox" name="WEB" id="web">
<label for="web">WEB</label>
</form>
文件上傳有很多方式,可以使用插件或者JS拖放上傳處理.Html本身也提供了默認的上傳功能,只是上傳效果并不是很美觀.
屬性 說明 multiple 支持多選 accept 允許上傳類型.png , .psd 或者 image/png , image/gif
<form action="" enctype="multipart/form-data">
<input type="file">
<input type="submit" value="上傳">
</form>
屬性 說明 min 最小時間 max 最大時間 step 間隔: date缺省是1天 week缺省是1周 month缺省是1月
a.日期選擇
<h1>日期選擇</h1>
<form action="">
<input type="date" step="5" min="2020-09-22" max="2025-01-15" name="datetime">
</form>
b.周選擇
<h1>周選擇</h1>
<input type="week" name="" id="">
c.月份選擇
<h1>月選擇</h1>
<input type="month" name="" id="">
d.日期與時間
<h1>日期與時間</h1>
<input type="datetime-local" name="" id="">
input表單的輸入值選項列表
<form action="">
<label for="username">用戶名</label>
<input type="text" name="" id="usernmae" list="less">
<datalist id="less">
<option value="JAVA">后臺管理語言</option>
<option value="CSS">美化網站頁面</option>
<option value="MYSQL">掌握數據庫使用</option>
</datalist>
</form>
frameset元素可定義一個框架集。它被用來組織多個窗口(框架),每個框架存有獨立的文檔,在其最簡單的應用中,frameset元素僅僅會規定在框架集中存在多少列或多少行,您必須使用cols或rows屬性。
注意事項:由于是分割原網頁,所以我們不能在body中進行編寫,在head中進行分割。
標簽 說明 frameset 框架集 frame 框架
屬性 說明 cols 定義框架集中列的數目和尺寸 rows 定義框架集中行的數目和尺寸 frame border 去除框架邊框 scrolling 去除滾動條
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html垂直框架</title>
<frameset cols="50%,*" >
<frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
<frame src="http://www.taobao.com" frameborder="0" scrolling="no"></frame>
</frameset>
</head>
<body>
</body>
</html>
12.2 水平框架
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html水平框架</title>
<frameset rows="50%,*" >
<frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
<frame src="http://www.taobao.com" frameborder="0" scrolling="no"></frame>
</frameset>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html混合框架</title>
<frameset rows="20%,*" >
<frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
<frameset cols="20%,*">
<frame src="http://www.taobao.com" frameborder="0" scrolling="no"></frame>
<frame src="https://www.huya.com/" frameborder="0" scrolling="no"></frame>
</frameset>
</frameset>
</head>
<body>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html美女</title>
</head>
<body>
<img src="../images/10.jpg" alt="">
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html野獸</title>
</head>
<body>
<img src="../images/timg.gif" alt="">
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html動物</title>
</head>
<body>
<img src="../images/4.jpg" alt="">
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html鏈接</title>
</head>
<body>
<a href="Html美女.html" target="view">美女圖片</a>
<a href="Html野獸.html" target="view">野獸圖片</a>
<a href="Html動物.html" target="view">動物圖片</a>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Html垂直框架</title>
<frameset rows="20%,*" >
<frame src="http://www.baidu.com" frameborder="0" scrolling="no"></frame>
<frameset cols="20%,*">
<frame src="Html鏈接.html" frameborder="0" scrolling="no"></frame>
<frame src="https://www.huya.com/" frameborder="0" scrolling="no" name="view"></frame>
</frameset>
</frameset>
</head>
<body>
</body>
</html>
iframe元素會創建包含另外一個文檔的內聯框架。
屬性 說明 align 對齊方式,后期采用css的方式進行設置 width 設置寬度 height 設置高度 src 設置iframe中顯示的文檔的URL name iframe的名稱 scrolling 是否顯示滾動條 frameborder 設置iframe的邊框
*請認真填寫需求信息,我們會在24小時內與您取得聯系。