30天自学前端——第二天

目录

1. 表格标签

1.1表格基础

1.2 表格属性

 1.3 实践案例与表格快捷键

 1.4 合并单元格与个人简历案例

2. 列表

2.1 无序列表

2.2 有序列表

2.3 自定义列表

3. 表单

3.1 表单的构成

3.2 表单域

 3.3 表单控件

3.4 表单实践案例 


1. 表格标签

1.1表格基础

 观察以上的表格示例,可以发现最基本的表格由行和列组成,因此表格标签由三个标签组成:

(i)<table>内容</table>:表示其中的内容是一个表格整体;

(ii)<tr>内容</tr>:表示其中的内容是表格的同一行(table row);

(iii)<td>内容</td>:表示其中的内容作为一个单元格里的数据(table data);

特别的:表格的头部往往需要起到加粗强调的作用,因此存在一个表头单元格标签<th></th>,即table head ,可以视其为特殊的<tr></tr>标签,不同的是 th 标签里的内容会被加粗、居中显示

具体书写格式如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格标签</title>
</head>
<body>
    <table >                    <!--表格-->
        <tr>                    <!--table row,表示以下内容是一行-->
            <th>排名</th>       <!--table head,表示该内容是表头-->
            <th>关键词</th>
            <th>趋势</th>
            <th>今日搜索</th>
            <th>最近七日</th>
            <th>相关链接</th>
        </tr>
        <tr>
            <td>1</td>          <!--table data,表示该内容是单元格里的数据-->
            <td>鬼吹灯</td>
            <td>↑</td>
            <td>345</td>
            <td>123</td>
            <td>
                <a href="https://tieba.baidu.com/">贴吧</a>
                <a href="images/鬼吹灯.webp">图片</a>
                <a href="https://baike.baidu.com/item/%E9%AC%BC%E5%90%B9%E7%81%AF/10790?fr=aladdin">百科</a>
            </td> 
        </tr>
    </table>
</body>
</html>

1.2 表格属性

实际上,如果只使用以上4个标签来书写表格,得到的结果应该是这样:

 

 可以看见表格缺少边框线,而且紧靠页面左端。为了使表格更加灵活美观,引入以下几个表格属性:

(i)align:用于控制表格居左、居中或者居右,格式:<table align="left / center / right";

(ii)border:控制表格边框粗细,格式:<table border="1">;

(iii)cellspacing:控制表格各个单元格之间的空隙大小,格式同border;

(iv)cellpadding:控制表格数据和单元格边框之间的空隙,格式同border;

(v)width:控制表格宽度,格式同border。

对于(iii)(iv)两点读者可能感受不直观,可以尝试只设定边框存在,不设定cellspacing和cellpadding :

 效果如下:

可以看到表格数据之间其实是以多个小单元格的形式存在的,想要达到开头的效果,需要将单元格之间的空隙(cellspacing)设定为0,cellpadding和width则根据个人需要进行调整。

 1.3 实践案例与表格快捷键

(图片摘自05-小说排行榜案例_哔哩哔哩_bilibili

其实这个案例并不难,只是需要的表格行、列数都比较大,因此这里讲一下快捷键建立表格。

具体方法:table>tr*8(八行)>td*6(六列)

当然,也允许 th>td*6 的形式存在,灵活使用即可快捷建立一个表格,简略源码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <table align="center" border="1" cellspacing="0">
        <tr>
            <th>排名</th>
            <th>关键词</th>
            <th>趋势</th>
            <th>今日搜索</th>
            <th>最近七日</th>
            <th>相关链接</th>
        </tr>
        <tr>
            <td>1</td>
            <td>鬼吹灯</td>
            <td>↑</td>
            <td>345</td>
            <td>123</td>
            <td>
                <a href="https://tieba.baidu.com/">贴吧</a>
                <a href="images/鬼吹灯.webp">图片</a>
                <a href="https://baike.baidu.com/item/%E9%AC%BC%E5%90%B9%E7%81%AF/10790?fr=aladdin">百科</a>
            </td>
        </tr>
        <tr>
            <td>2</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>3</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>4</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>5</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>6</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
        <tr>
            <td>7</td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
            <td></td>
        </tr>
    </table>
</body>
</html>

 运行:

 1.4 合并单元格与个人简历案例

单元格的合并分为跨行合并以及跨列合并

如图的个人简历,易知应该建立一个5行5列的单元格,但是第一行中的5个单元格全部合并,可以这样写:

 其中,colspan=“X”意为从该单元格开始跨列合并共X个单元格(包括本身),由于后面的X-1个单元格被合并,因此在这一行中应该删去后面的X-1个<th></th>标签

相应的,rowspan=“X”意为从该单元格开始跨行合并共X个单元格(包括本身),由于后面的X-1个单元格被合并,因此在这一列中应该删去后面的X-1个<th></th>标签,即后面的X-1个<tr></tr>中都删去一个<th></th>。

结合前面对属性的学习,可以尝试将空单元格的宽度设定下来,防止页面中空单元格显得过于狭小。

源码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <table border="1" align="center" cellspacing="0" >
        <tr>
            <th colspan="5">个人简历</th>
        </tr>
        <tr>
            <th>姓 名:</th>
            <th width="100"></th>
            <th>性 &nbsp;别:</th>
            <th width="100"></th>
            <th rowspan="4" width="100">照片</th>
        </tr>
        <tr>
            <th>婚姻状况:</th>
            <th></th>
            <th>出生年月:</th>
            <th></th>
        </tr>
        <tr>
            <th>民 族:</th>
            <th></th>
            <th>政治面貌:</th>
            <th></th>
        </tr>
        <tr>
            <th>身 高:</th>
            <th></th>
            <th>学 历:</th>
            <th></th>
        </tr>
    </table>
</body>
</html>

2. 列表

2.1 无序列表

标签名:<ul></ul>(unordered list)

书写规范:

 运行:

注意: <ul></ul>标签中只能含有<li></li>,不能直接含有<p></p>等其它标签,若有需求,可以将其写在<li></li>标签内部,即<li><p></p></li>形式

2.2 有序列表

标签名<ol></ol>(ordered list)

书写规范和注意事项同无序列表,输出样式略有不同。

2.3 自定义列表

用途:

每一列就是一个自定义列表。

标签名:<dl></dl>(definition list自定义列表),<dt></dt>(definition term自定义列表组),<dd></dd>(definition description自定义列表描述)

书写规范:

运行: 

 源码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h3>我喜欢的明星</h3>
    <ul>
        <li>A</li>
        <li>B</li>
        <li>C</li>
        <li>D</li>
    </ul>
    <ol>
        <li>abc</li>
        <li>cde</li>
        <li>efg</li>
        <li>ghi</li>
    </ol>
    <dl>
        <dt>支付方式</dt>
        <dd><a href="https://shop.lenovo.com.cn/help/bank_fq.html?pmf_source=P0000004381M0002">分期支付</a></dd>
        <dd><a href="https://shop.lenovo.com.cn/help/payments.html?pmf_source=P0000004381M0002">支付方式</a></dd>
        <dd><a href="https://shop.lenovo.com.cn/help/question-of-payment.html?pmf_source=P0000004381M0002">支付问题</a></dd>
    </dl>
</body>
</html>

只用html实现的结果并不好看,更优美的修饰方式在之后的CSS学习中会涉及到。

3. 表单

表单内容很多且易混,因此笔者做了一个表单知识树状表协助理解:

3.1 表单的构成

表单由三个部分构成,分别是:表单域、提示信息和表单控件

(图片摘自13-表单使用场景以及分类_哔哩哔哩_bilibili )

3.2 表单域

表单域的定义由<form></form>标签来实现 form 标签里的内容可以被提交到服务器。

form有三个基本属性:

(i)action=“URL”;引号中间填写信息传递到的地方;

(ii)method=“ ”;引号中填写信息传递的方式,一般是get / post (get上传的信息易泄露)

(iii)name=“”;引号中填写自定义名称,name属性的用途是方便后端人员调用。

 3.3 表单控件

表单控件需要写在<form></form>内。为了实现表单控件的各种功能,引入以下多个标签:

(1)<input />输入

input 标签是一个单标签,其又包含了多个属性:

(i)name属性:前面已经提到,name属性是为了方便后端人员调用,因此能写尽量写上。

(ii)value属性:与name属性类似,value属性也是后端人员调用的数据,用value=“”方式可以规定一个表单控件的默认值。 

(iii)type属性:type包含以下几个属性:

(图片来自21-input之type属性普通按钮和文件域_哔哩哔哩_bilibili

 使用时的规范是:<input type="xxx" />

当type=“radio”时,input的name属性是必须要写的,并且属于同一个单选题范围内的多个单选选项的name要相同,这样才能实现单选。代码如下:

 其中红框标记的区域是这里要格外注意的地方,其余的会在后面讲到。

运行:

当type=“checkbox”时, 不写name属性也能实现复选。

当type=“text”时,输出的是一个文本框,里面可以给用户输入信息;

当type=“password”时,输出的也是一个文本框,与text不同的是,该文本框输入后会以掩码形式显示,即 · 或者 * ,一般用在密码输入框;

当type=“button”时,可以输出一个普通按钮,按钮上显示的字可以通过设定value属性的值来控制;

当type=“submit”时,可以输出一个提交按钮,同样可以根据value的值来控制其内容,不修改默认为“提交”;

当type=“image”时,可以输出一个图像样式的提交按钮,一般不提倡使用,这里不详述;

当type=“reset”时,可以输出一个重置按钮,点击后重置表单中的所有信息;

当type=“file”时,可以输出一个用于提交文件的按纽,点击后会自动打开资源管理器,选择文件后即可上传;

(iv)checked属性:在以前,注册账号等界面往往能看见“我已阅读下列文件”这一行小字,而这行字前面的框往往是默认勾选的,这就是checked属性的作用,在radio / checkbox 的input标签里写上checked=“checked”即可让前面的框默认为勾选。

(v)maxlength属性:用于规定输入的字符长度的最大值,不常用。

2)<select></select>下拉表单

select 标签中包含<option>内容</option>标签,用于显示其可选选项。与 input 标签里的checked属性类似,select 标签里有selected属性,可以用来设定表单中默认显示的option。

在一个选择月份的下拉表单中可以这么书写:

(3)<textarea></textarea>

该标签的作用是产生一个大的文本输入框,支持多行输入是其与<input type="text"/>最大的区别

运行效果如下:

(4)补充:<label></label>

label标签是input标签定义标注,实际上不属于表单标签,但在实际应用中二者通常紧密结合。label标签用于指定一个表单元素,当点击label标签里面的内容时,就会转到其指定的表单元素上,从而增强用户体验。

使用时需要<input>标签进行配合,具体如下:

这样写出来的页面就可以实现:点击“妩媚的”三个汉字也能选中其前面的复选框。

3.4 表单实践案例 

学习了以上的知识以后,就可以完成最简单的注册页面的编写了。

如上图所示,读者可以自行尝试。代码和会用到的图片附在下面:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h3>青春不常在,抓紧谈恋爱</h3>
    <form action="xxx.php" method="post" name="form1">
        <table>
            <tr>
                <td>性别</td>
                <td>
                    <input type="radio" name="sex" value="sex" id="nan"/><label for="nan"><img src="images/man.jpg" />男</label>
                    <input type="radio" name="sex" value="sex" id="nv"/><label for="nv"><img src="images/women.jpg" />女</label>
                </td>
            </tr>
            <tr>
                <td>生日</td>
                <td>
                    <select>
                        <option>--请选择年--</option>
                        <option>2005年</option>
                        <option>2004年</option>
                        <option>2003年</option>
                        <option>2002年</option>
                        <option>2001年</option>
                        <option>2000年</option>
                    </select>
                    <select>
                        <option>--请选择月--</option>
                        <option>1月</option>
                        <option>2月</option>
                        <option>3月</option>
                        <option>4月</option>
                        <option>5月</option>
                        <option>6月</option>
                        <option>7月</option>
                        <option>8月</option>
                        <option>9月</option>
                        <option>10月</option>
                        <option>11月</option>
                        <option>12月</option>
                    </select>
                    <select>
                        <option>--请选择日--</option>
                        <option>1日</option>
                        <option>2日</option>
                        <option>3日</option>
                        <option>4日</option>
                        <option>5日</option>
                        <option>6日</option>
                        <option>7日</option>
                        <option>8日</option>
                        <option>9日</option>
                        <option>10日</option>
                        <option>11日</option>
                        <option>12日</option>
                        <option>13日</option>
                        <option>14日</option>
                        <option>15日</option>
                        <option>16日</option>
                        <option>17日</option>
                        <option>18日</option>
                        <option>19日</option>
                        <option>20日</option>
                        <option>21日</option>
                        <option>22日</option>
                        <option>23日</option>
                        <option>24日</option>
                        <option>25日</option>
                        <option>26日</option>
                        <option>27日</option>
                        <option>28日</option>
                        <option>29日</option>
                        <option>30日</option>
                        <option>31日</option>
                    </select>
                </td>
            </tr>
            <tr>
                <td>所在地区</td>
                <td>
                    <input type="text" value="如:北京" name="diqu"/>
                </td>
            </tr>
            <tr>
                <td>婚姻状况</td>
                <td>
                    <input type="radio" name="hunyin" id="weihun" checked/>
                    <label for="weihun"><strong>未婚</strong></label>
                    <input type="radio" name="hunyin" id="lihun"/>
                    <label for="lihun"><strong>离婚</strong></label>
                </td>
            </tr>
            <tr>
                <td>学历</td>
                <td>
                    <input type="text" value="如:高中毕业" name="xueli"/>
                </td>
            </tr>
            <tr>
                <td>喜欢的类型</td>
                <td>
                    <input type="checkbox" name="liketype" id="wumei"/>
                    <label for="wumei"><strong>妩媚的</strong></label>
                    <input type="checkbox" name="liketype" id="keai"/>
                    <label for="keai"><strong>可爱的</strong></label>
                    <input type="checkbox" name="liketype" id="xiaoxianrou"/>
                    <label for="xiaoxianrou"><strong>小鲜肉</strong></label>
                    <input type="checkbox" name="liketype" id="laolarou"/>
                    <label for="laolarou"><strong>老腊肉</strong></label>
                </td>
            </tr>
            <tr>
                <td>自我介绍</td>
                <td>
                    <textarea>自我介绍</textarea>
                </td>
            </tr>
            <tr>
                <td></td>
                <td><input type="submit" name="zhuce" value="免费注册"></td>
            </tr>
            <tr>
                <td></td>
                <td><input type="checkbox" name="zctk" checked/>我同意<a href="#">注册条款和会员加入标准</a></td>
            </tr>
            <tr>
                <td></td>
                <td><a href="#">我是会员,立即登录</a></td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <h2>我承诺</h2>
                    <ul>
                        <li>年满18岁、单身</li>
                        <li>抱着严肃的态度</li>
                        <li>真诚寻找另一半</li>
                    </ul>
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值