1. 用表格实现购物车
- 表格中常用标签的认识:
标签名 | 标签含义 |
---|---|
<table>...</table> |
用来定义表格 |
<caption>...</caption> |
设置表格标题 |
<thead>...</thead> |
表示表格的表头部分 |
<tbody>...</tbody> |
表示表格的主体部分 |
<tfoot></tfoot> |
表示表格的底部 |
<tr>...</tr> |
表格中的行 |
<th>...</th> |
定义表格的标题栏,会默认加粗和居中显示 |
<td>...</td> |
表格中的列 |
<clogroup>...</colgroup> |
定义表格列的组 |
下面用以上标签写一个html的表格页面:
<body>
<table>
<caption>
购物车
</caption>
<thead>
<tr>
<th>
<input type="checkbox" name="box" id="box-all" /><label
for="box-all"
>全选</label
>
</th>
<th>序号</th>
<th>商品</th>
<th>价格</th>
<th>店铺</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<input type="checkbox" name="box" id="box-1" />
</td>
<td>1</td>
<td>男士服装</td>
<td>50</td>
<td>老爷子旗舰店</td>
</tr>
<tr>
<td><input type="checkbox" name="box" id="box-2" /></td>
<td>2</td>
<td>电脑桌</td>
<td>580</td>
<td>星空数码专营店</td>
</tr>
<tr>
<td><input type="checkbox" name="box" id="box-3" /></td>
<td>3</td>
<td>拖鞋</td>
<td>20</td>
<td>浩然五金商行</td>
</tr>
<tr>
<td><input type="checkbox" name="box" id="box-4" /></td>
<td>4</td>
<td>台灯</td>
<td>150</td>
<td>非凡灯饰专卖店</td>
</tr>
<tr>
<td><input type="checkbox" name="box" id="box-5" /></td>
<td>5</td>
<td>打印机</td>
<td>380</td>
<td>鼎盛耗材旗舰店</td>
</tr>
<tr>
<td><input type="checkbox" name="box" id="box-6" /></td>
<td>6</td>
<td>落地扇</td>
<td>260</td>
<td>凰眼睛电器专卖店</td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3">总计:</td>
<td colspan="2">1440</td>
</tr>
</tfoot>
</table>
<div><button>提交</button></div>
</body>
然后利用CSS处理一下表格的样式,代码如下:
<style>
/* 设置表格在页面居中,边框合并,视口宽度 */
table {
border-collapse: collapse;
margin: 20px auto;
width: 60vw;
text-align: center;
}
/* 设置单元格的下边框,文本颜色,内边距 */
table tr th,
table tr td {
border-bottom: 1px solid rgb(226, 216, 216);
padding: 12px;
color: rgb(138, 118, 118);
}
/* 设置提交按钮的父容器视口宽度和表格一致,按钮靠右显示 */
body div {
width: 60vw;
margin: auto;
text-align: right;
}
/* 设置表格标题大小,与表格正文的外边距 */
table caption {
font-size: 1.5rem;
color: rgb(230, 224, 140);
margin-bottom: 2vh;
}
/* 设置表头背景色和文本颜色 */
table thead {
background-color: rgb(26, 247, 236);
font-weight: lighter;
color: rgb(65, 110, 231);
}
/* 设置提交按钮宽,高,无边框,背景色 */
div button {
width: 10vw;
height: 5vh;
border: 0;
background-color: rgb(143, 238, 131);
border-radius: 10px;
}
/* 设置当光标移动到按钮上的背景色变化以及光标变为手型 */
div button:hover {
background-color: hotpink;
cursor: pointer;
}
/* 设置隔行变色 */
table tbody tr:nth-of-type(even) {
background-color: rgb(220, 240, 164);
}
/* 设置光标移动到表格行上时背景色的变化 */
table tbody tr:hover {
background-color: rgb(240, 232, 232);
}
/* 设置表格底部文本颜色,字体大小,对齐方式 */
table tfoot tr td {
color: rgb(241, 98, 105);
font-size: 1.2rem;
border-bottom: 0;
text-align: right;
}
/* 调整表格底部对齐方式显示 */
table tfoot tr td:last-of-type {
text-align: left;
padding-left: 30px;
}
</style>
现在就完成了一个静态的页面,复选框的交互效果需要用到JS去写,暂时就不做了,最终页面的变化效果如下:
2. 用表单完成一个用户注册页面
- 常用表单标签:
标签名 | 标签含义 |
---|---|
<form>...</form> |
定义供用户输入的表单 |
<input> |
定义输入域 |
<textarea>...<textarea> |
定义文本域(一个多行的输入控件) |
<label>...</labei> |
绑定<input> 标签,多用于输入标题 |
<fieldset>...<fieldset> |
定义一组相关的表单元素,并用外框包裹起来 |
<legend>...</legend> |
定义<fieldset> 的标题 |
<datalist>...</datalist> |
指定一个预先输入定义的选项控件 |
<option>...</option> |
定义列表的选项 |
<button>...</button> |
定义一个点击按钮 |
下面用以上标签制作一个用户注册页面的表单,html代码如下:
<body>
<h2>用户注册</h2>
<form action="" method="POST">
<fieldset>
<legend>基本信息(必填项)</legend>
<div>
<label
>账号:
<input
type="text"
name="username"
placeholder="6-10位字符且包含数字、字母或下划线"
autofocus
required
autocomplete="off"
/>
</label>
</div>
<div>
<label
>邮箱:
<input
type="email"
name="email"
placeholder="name@example.com"
required
autocomplete="off"
/>
</label>
</div>
<div>
<label
>密码:
<input
type="password"
name="password-1"
placeholder="6位数密码"
required
autocomplete="off"
/>
</label>
</div>
<div>
<label
>确认:
<input
type="password"
name="password-2"
placeholder="再次输入密码"
required
autocomplete="off"
/>
</label>
</div>
<div>
<label
>电话:
<input
type="phone"
name="phone"
placeholder="11位数手机号码"
required
autocomplete="off"
/>
</label>
</div>
</fieldset>
<fieldset>
<legend>扩展信息(选填)</legend>
<div>
<label
>姓名:
<input type="text" name="fullName" />
</label>
</div>
<div>
<label
>生日:
<input type="date" name="birthday" />
</label>
</div>
<div>
<label for="secret"
>性别:
<input type="radio" name="gender" value="male" id="male" /><label
for="male"
>男</label
>
<input
type="radio"
name="gender"
value="female"
id="female"
/><label for="female">女</label>
<input
type="radio"
name="gender"
value="secret"
id="secret"
checked
/><label for="secret">保密</label>
</label>
</div>
<div>
<label for="fish"
>爱好:
<input type="checkbox" name="hobby[]" value="run" id="run" /><label
for="run"
>跑步</label
>
<input
type="checkbox"
name="hobby[]"
value="fish"
id="fish"
/><label for="fish">钓鱼</label>
<input
type="checkbox"
name="read"
value="read"
id="read"
checked
/><label for="read">看书</label>
</label>
</div>
<div>
<label
>手机:
<input type="search" name="tel" list="brand" />
<datalist id="brand">
<option value="apple"></option>
<option value="华为"></option>
<option value="三星"></option>
<option value="小米"></option>
<option value="OPPO"></option>
<option value="VIVO"></option>
</datalist>
</label>
</div>
</fieldset>
<fieldset>
<legend>其他信息(选填)</legend>
<div>
<label
>上传头像:
<input type="file" name="face" id="face" accept="image/*" />
</label>
</div>
<div>
<label
>简介:
<textarea
name="profile"
id="profile"
cols="30"
rows="5"
placeholder="不超过150字"
></textarea>
</label>
</div>
</fieldset>
<div><button>提交</button></div>
</form>
</body>
然后加上CSS样式,是表单美观起来:
<style>
/* 设置页面中文字颜色及字体 */
body {
color: rgb(104, 93, 93);
font-family: Arial, Helvetica, sans-serif;
}
/* 使标题居中显示 */
h2 {
text-align: center;
}
/* 设置表单宽度,上边框线,水平居中,外边距 */
form {
width: 450px;
margin: 15px auto;
border-top: 1px solid rgb(199, 183, 183);
}
/* 设置每个表单分组的外边距,背景色,边框线,阴影 */
form fieldset {
margin: 15px;
background-color: rgb(171, 236, 245);
border-radius: 15px;
box-shadow: 3px 3px 5px #bbb;
border: 1px solid rgb(196, 183, 183);
}
/* 设置分组标题的背景色,水平居中,与正文内容的边距,圆角,自身内边距 */
form fieldset legend {
background-color: rgb(183, 240, 125);
border-radius: 10px;
padding: 5px;
margin: 8px;
text-align: center;
}
/* 设置表单中每个元素的间距 */
form fieldset div {
margin: 6px;
}
/* 设置第一个表单分组的输入框宽度,便于显示框中提示文本 */
form fieldset:nth-child(1) div input {
width: 250px;
}
/* 设置提交按钮居中显示 */
form > div:nth-last-of-type(1) {
text-align: center;
}
/* 设置提交按钮宽度,高度,背景色,圆角 */
form > div:nth-last-of-type(1) button {
width: 110px;
height: 25px;
background-color: rgb(238, 180, 212);
border: 0;
border-radius: 5px;
}
/* 设置当光标移动的按钮上时背景色高亮 */
form > div:nth-last-of-type(1) button:hover {
cursor: pointer;
background-color: rgb(214, 108, 166);
}
/* 设置当输入框获得焦点时背景色变化 */
form fieldset input:focus {
background-color: rgb(243, 225, 202);
}
</style>
一个静态的用户注册的表单就完成了,表单中输入框的校验功能也需要用到后面要学习的JS来处理,用正则表达式来判断等等,所以暂时就不做了,最终显示效果如下:
3.总结:
对表格表单的制作过程基本都掌握了,另外还要熟悉一下不太常用的一些标签,然后感觉自己的美术观感不行,调色调不好!多练多看把!