Correcting teacher:WJ
Correction status:qualified
Teacher's comments:值得鼓励,写的非常好!
表格由 <table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义)。字母 td 指表格数据(table data),即数据单元格的内容。数据单元格可以包含文本、图片、列表、段落、表单、水平线、表格等等。
示例如下:
<! DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>购物车</title>
<style>
table {
/* 去掉单元格之间的间隙 */
border-collapse: collapse;
width: 70%;
margin: auto;
color: gray;
/* 使用比较细的字体 */
font-weight: lighter;
/* 文字水平居中 */
text-align: center;
}
table thead th,
table td {
/* 边框 1px 实线 颜色黑色 */
border-bottom: 1px solid #000;
padding: 10px;
}
table caption {
/* 当前字体1.5倍字体大小 */
font-size: 1.5rem;
color: red;
/* 向下的外边距10px */
margin-bottom: 10px;
}
table th {
/* 字体粗细变成正常 */
font-weight: 400;
color: green;
}
/* 第一行添加背景色 */
table thead tr:first-of-type {
background-color: yellow;
}
/* 偶数行添加背景色 */
table tbody tr:nth-of-type(even) {
background-color: pink;
}
/* 鼠标悬停后更改背景色 */
table tbody tr:hover {
background-color: skyblue;
}
/* 底部样式 */
table tfoot td {
/* 去掉底部边框 */
border-bottom: none;
color: tomato;
/* 字体加粗 */
font-weight: 600;
}
/* 结算按键样式 */
/* 取最后一个 */
body div:last-of-type {
width: 70%;
/* 上下10px 左右居中的外边距 */
margin: 10px auto;
}
/* 取一个button */
body div:first-of-type button {
/* 向右浮动 */
float: right;
width: 120px;
height: 32px;
background-color: #B0B0B0;
color: white;
border: none;
/* 设置鼠标样式 */
cursor: pointer;
}
body div:first-of-type button:hover {
background-color: #FF4400;
}
</style>
</head>
<body>
<!-- 表格 -->
<table>
<!-- 标题 -->
<caption>
618购物车
</caption>
<!-- 头部 -->
<thead>
<tr>
<th>商品编号</th>
<th>商品名称</th>
<th>原价</th>
<th>单位</th>
<th>数量</th>
<th>实际付款金额</th>
</tr>
</thead>
<tr>
<td>SN-1001</td>
<td>外星人笔记本</td>
<td>28888</td>
<td>台</td>
<td>1</td>
<td>18888</td>
</tr>
<tr>
<td>SN-1002</td>
<td>海尔冰箱</td>
<td>4888</td>
<td>台</td>
<td>1</td>
<td>3888</td>
</tr>
<tr>
<td>SN-1003</td>
<td>荣耀电视65寸</td>
<td>3888</td>
<td>台</td>
<td>1</td>
<td>2888</td>
</tr>
<tr>
<td>SN-1004</td>
<td>华为手机</td>
<td>7888</td>
<td>台</td>
<td>1</td>
<td>5888</td>
</tr>
<tbody>
<!-- 底部 -->
<tfoot>
<tr>
<!-- 表格合并 -->
<td colspan="4">合计付款金额:</td>
<td>4</td>
<td>31552</td>
</tr>
</tfoot>
</tbody>
</table>
<div>
<button>
结算
</button>
</div>
</body>
</html>
表格其他生成方法
主要使用 div 、display 、class 组成
示例如下:
<! DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>表格</title>
<style>
/* 表格 */
.table {
/* 设置元素显示类型 */
display: table;
/* 边框 */
border: 1px solid #000;
width: 600px;
/* 水平居中 */
text-align: center;
/* 垂直居中 */
margin: auto;
}
/* 设置标题 */
.table-caption {
display: table-caption;
/* 底部外边距10px */
margin-bottom: 10px;
font-size: 1.3rem;
}
/* 设置表头 */
.table-thead {
display: table-header-group;
/* background-color: #ccc; */
}
.h4 {
font-weight: 700;
}
.bgc1 {
background-color: #0075BA;
color: whitesmoke;
}
.bgc2 {
background-color: #D4ECE6;
}
.bgc3 {
background-color: #FFEDCD;
}
.bgc4 {
background-color: #e6e6e6;
}
/* 设置行 */
.table-row {
display: table-row;
}
/* 设置列 */
.table-cell {
display: table-cell;
border: 1px solid #000;
padding: 5px;
}
/* 设置主体 */
.table-tbody {
display: table-row-group;
}
/* 设置底部 */
.table-tfoot {
display: table-footer-group;
background-color: #FEDDC6;
}
/* 设置列分组样式 */
.table-colgroup {
display: table-column-group;
}
.table-colgroup .table-col:first-of-type {
display: table-column;
/* background-color: skyblue; */
}
.table-colgroup .table-col {
display: table-column;
/* background-color: pink; */
}
</style>
</head>
<body>
<!-- 表格 -->
<div class="table">
<!-- 标题caption -->
<div class="table-caption">学习表</div>
<!-- 列分组 -->
<div class="table-colgroup">
<div class="table-col"></div>
<div class="table-col"></div>
<div class="table-col"></div>
</div>
<!-- 表头thead -->
<div class="table-thead">
<!-- 行 -->
<div class="table-row bgc1">
<div class="table-cell">时间</div>
<div class="table-cell">周一</div>
<div class="table-cell">周二</div>
<div class="table-cell">周三</div>
<div class="table-cell">周四</div>
<div class="table-cell">周五</div>
<div class="table-cell">周六</div>
<div class="table-cell">周日</div>
</div>
<div class="table-row bgc1">
<div class="table-cell"></div>
<div class="table-cell">6月15日</div>
<div class="table-cell">6月16日</div>
<div class="table-cell">6月17日</div>
<div class="table-cell">6月18日</div>
<div class="table-cell">6月19日</div>
<div class="table-cell">6月20日</div>
<div class="table-cell">6月21日</div>
</div>
</div>
<!-- 主体 -->
<div class="table-tbody">
<div class="table-row bgc2">
<div class="table-cell h4">早上</div>
<div class="table-cell">英语</div>
<div class="table-cell">英语</div>
<div class="table-cell">英语</div>
<div class="table-cell">英语</div>
<div class="table-cell">英语</div>
<div class="table-cell">自由活动</div>
<div class="table-cell">自由活动</div>
</div>
<div class="table-row bgc2">
<div class="table-cell h4">上午</div>
<div class="table-cell">写作业</div>
<div class="table-cell">写作业</div>
<div class="table-cell">写作业</div>
<div class="table-cell">写作业</div>
<div class="table-cell">写作业</div>
<div class="table-cell">自由活动</div>
<div class="table-cell">自由活动</div>
</div>
<div class="table-row bgc3">
<div class="table-cell h4">中午</div>
<div class="table-cell">休息</div>
<div class="table-cell">休息</div>
<div class="table-cell">休息</div>
<div class="table-cell">休息</div>
<div class="table-cell">休息</div>
<div class="table-cell">自由活动</div>
<div class="table-cell">自由活动</div>
</div>
<div class="table-row bgc4">
<div class="table-cell h4">下午</div>
<div class="table-cell">预习课程</div>
<div class="table-cell">预习课程</div>
<div class="table-cell">预习课程</div>
<div class="table-cell">预习课程</div>
<div class="table-cell">预习课程</div>
<div class="table-cell">看回放</div>
<div class="table-cell">看回放</div>
</div>
</div>
<!-- 底部tfoot -->
<div class="table-tfoot">
<div class="table-row ">
<div class="table-cell h4">晚上</div>
<div class="table-cell">上课</div>
<div class="table-cell">上课</div>
<div class="table-cell">上课</div>
<div class="table-cell">上课</div>
<div class="table-cell">上课</div>
<div class="table-cell">看回放</div>
<div class="table-cell">看回放</div>
</div>
</div>
</body>
</html>
表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。
示例如下:
<! DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>基本表单信息</title>
<style>
body {
color: #555;
}
h3 {
font-size: 18px;
/* 居中 */
text-align: center;
color: #8E8E8E;
/* 正常粗细 */
font-weight: 400;
}
form {
width: 450px;
margin: 30px auto;
/* 加边框 */
border-top: 1px solid #aaa;
}
form fieldset {
/* 加边框 */
border: 1px solid #fff;
background-color: #FEF2FC;
/* 增加阴影 */
box-shadow: 2px 2px 4px #bbb;
border-radius: 10px;
margin: 20px;
}
form fieldset legend {
background-color: #eb648a;
/* 边框圆角 */
border-radius: 10px;
color: #15B2DF;
padding: 5px 15px;
}
form div {
margin: 5px;
}
form p {
text-align: center;
}
form .btn {
font-size: 28px;
width: 278px;
height: 49px;
border: none;
background-color: #FF536A;
color: #ddd;
}
form .btn:hover {
font-size: 30px;
background-color: #F22843;
color: white;
/* 改光标样式 */
cursor: pointer;
}
input:focus {
background-color: #f595a2;
}
form ul li {
/* 居中 */
text-align: center;
/* 去除li样式 */
list-style: none;
}
form ul .member a {
color: #929191;
}
form ul li a:hover {
/* 去除下划线 */
text-decoration: none;
}
</style>
</head>
<body>
<h3>1分钟注册,享一辈子幸福!</h3>
<!-- form标签 -->
<form action="" method="POST">
<!-- 控件组 -->
<fieldset>
<legend>账户信息(必填)</legend>
<div>
<label for="my-name">账号:</label>
<input
type="text"
id="my-username"
name="username"
placeholder="不少于6位且字母+数字"
autofocus
required
>
</div>
<div>
<label for="">邮箱:</label>
<input
type="email"
name="email"
id="email"
placeholder="xxx@xxx.com"
required
>
</div>
<div>
<label for="pwd-1">密码:</label>
<input type="password" name="password2" id="pwd-1">
</div>
</fieldset>
<fieldset>
<legend>个人信息(选填)</legend>
<div>
<label>
<input type="date" name="birthday">
</label>
</div>
<div>
<!-- 单选按钮 -->
<label for="secret">性别</label>
<!-- 单选按钮中的name属性名必须相同 -->
<input type="radio" name="gender" value="male" id="male" checked><label for="male">男</label>
<input type="radio" name="gender" value="female" id="female"><label for="female">女</label>
</div>
<div>
<!-- 单选按钮 -->
<label for="marr">婚姻</label>
<input type="radio" name="m-wh" value="1" id="m-wh" checked><label for="m-wh">未婚</label>
<input type="radio" name="m-ly" value="2" id="m-ly"><label for="m-ly">离异</label>
<input
type="radio"
name="m-so"
value="3"
id="m-so"
/><label for="m-so">丧偶</label>
</div>
<div>
<!-- 复选框 -->
<label for="reading">爱好</label>
<!-- 因为复选框返回是一个或多个值,最方便后端用数组来处理, 所以将name名称设置为数组形式便于后端脚本处理 -->
<input type="checkbox" name="hobby[]" id="reading" value="reading" /><label
for="reading">读书</label>
<input
type="checkbox"
name="hobby[]"
value="shoot"
id="shoot"
/><label for="shoot">摄影</label>
<input
type="checkbox"
name="hobby[]"
value="sport"
id="sport"
checked
/><label for="sport">运动</label>
</div>
<div>
<!-- 选项列表 -->
<label for="education">学历:</label>
<input type="search" list="edu" name="education" id="education" />
<datalist id="edu">
<option value="undergraduate" label="大学本科"></option>
<option value="Graduate" label="研究生"></option>
<option value="doctor" label="博士"> </option>
</datalist>
</div>
</fieldset>
<fieldset>
<legend>其它信息(选填)</legend>
<!--文件上传-->
<div>
<label for="uploads">上传头像:</label>
<input
type="file"
name="user_pic"
id="uploads"
accept="image/png, image/jpeg, image/gif"
/>
</div>
<!--文本域-->
<div>
<label for="resume">自我介绍:</label>
<!--注意文本域没有value属性-->
<textarea
name="resume"
id="resume"
cols="30"
rows="5"
placeholder="不超过100字"
></textarea>
</div>
</fieldset>
<!-- 隐藏域, 例如用户的Id, 注册,登录的时间。。。。 -->
<input type="hidden" name="user-id" value="123">
<p>
<input type="submit" value="免费注册" class="btn">
</p>
<ul>
<li class="member"><a href="#">我是会员,立即登录</a></li>
</ul>
</form>
</body>
</html>
总结:正常表格的单元格合并比较简单,使用display生成的表格的单元格合并比较难。表单的控件比较多,需要多记。