跟随黑马学前端-4,HTML标签

第四天:HTML标签

低头快步,抬头看路

学习目标

  • 能够书写表格

  • 能够写出无序列表

  • 能够写出3~4个常用input表单类型

  • 能够写出下拉列表表单

  • 能够使用表单元素实现注册页面

  • 能够独立查阅W3C文档


表格标签

表格是实际开发中非常常用的标签

  1. 表格的主要作用

    表格主要用于显示、展示数据,因为它可以让数据显示的非常规整,可读性非常好,特别是后台展示数据的时候,能够熟练的运用表格就显得很重要,一个清爽简约的表格能够件繁杂的数据表现得很有条理

  2. 表格的基本语法

    • 标签

      <table> </table>是用于定义表格的标签

      <tr> </tr>标签定义表格中的行,必须嵌套在<table> </table>标签中

      <td> </td>是表格中的单元格,必须嵌套在<tr></tr>标签中

      字母td表示表格数据(table data),即数据单元格的内容

      1
      2
      3
      4
      5
      6
      7
      8
      <table>
      <tr>
      <td>姓名</td><td>性别</td><td>年龄</td>
      </tr>
      <tr>
      <td>佚名</td><td>未知</td><td>未知</td>
      </tr>
      </table>

      快捷输入:比如我们需要输入一个5行3列的单元格。可以输入table>tr*5>td*3,然后按Tab

    • 表头单元格

      <th> </th>表头

      1
      2
      3
      4
      5
      6
      7
      8
      <table>
      <tr>
      <th>姓名</th><th>性别</th><th>年龄</th>
      </tr>
      <tr>
      <td>佚名</td><td>未知</td><td>未知</td>
      </tr>
      </table>

表格属性
属性名 属性值 描述
align left,center,right 规定表格相对周围元素的对齐方式
border 1或“” 规定表格单元格是否拥有边框,默认为“”,表示没有边框
cellpadding 像素值 规定单元格边缘与内容和之间的空白,默认1像素
cellspacing 像素值 规定单元格之间的空白,默认1像素
width 像素值或百分比 规定表格的宽度
height 像素值或百分比 规定表格的高度
1
2
3
4
5
6
7
8
9
<!-- 页面居中显示表格,显示边框,字体内容和边框间距为20像素,关闭单元格之间的空隙,设置单元格宽为500像素 -->
<table align="center" border="1" cellpadding="20px" cellspacing="0" width="500px">
<tr>
<th>姓名</th><th>性别</th><th>年龄</th>
</tr>
<tr>
<td>佚名</td><td>未知</td><td>未知</td>
</tr>
</table>

单元格内可以放任何东西,网址或图片都可以


表格结构标签

使用场景:可能因为表格过长,为了更好的显示表格的语义,可以将表格分割成表格头部和表格主体两大部分,在表格标签中,分别用:<thead>(表格的头部区域),<tbody> (表格的主体区域)。这样可以更好的分清楚表格结构

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!-- 页面居中显示表格,显示边框,字体内容和边框间距为20像素,关闭单元格之间的空隙,设置单元格宽为500像素 -->
<table align="center" border="1" cellpadding="20px" cellspacing="0" width="500px">

<thead>
<tr>
<th>姓名</th><th>性别</th><th>年龄</th>
</tr>
</thead>

<tbody>
<tr>
<td>佚名</td><td>未知</td><td>未知</td>
</tr>
</tbody>

</table>

这样写的话可以更加清晰的区分表头和表体。以上两个标签都是放在<table></table>中的


合并单元格

特殊情况下,我们可以将多个单元格合并成一个单元格

image-20221007200104699

  1. 合并单元格方式

    跨行合并:rowspan=“合并单元格的个数” (比如将第二行和第三行合并)

    跨列合并:colspan=“合并单元格的个数” (比如将第二列和第三列合并)

    image-20221025191603905

    目标单元格:(写合并代码)

    • 跨行:最上侧单元格为目标单元格,写合并代码

    • 跨列:最左侧单元格为目标单元格,写合并代码

    合并单元格三部曲:

    • 先确定是跨行还是跨列合并

    • 找到目标单元格,写上合并方式 = 合并单元格数量。比如:<tdcolspan = "2"> </td>

    • 删除多余的单元格

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      <!-- 设置跨行和跨列-->
      <table width="500" height="249" border="1" cellspacing="0">
      <tr>
      <td></td>
      <td colspan="2"></td>
      </tr>
      <tr>
      <td rowspan="2"></td>
      <td></td>
      <td></td>
      </tr>
      <tr>
      <td></td>
      <td></td>
      </tr>
      </table>

列表标签

如果说表格是用来展示数据的,那么列表就是用来布局的

列表最大的特点就是整齐、整洁、有序,它作为布局会更加自由和方便

根据使场景不同,我们可以将列表分为三大类:无序列表、有序列表、自定义列表

image-20221025195335816


无序列表(重点)

<ul>unordered list标签表示HTML页面中项目的无序列表,一般会以项目符号呈现列表项,而列表项使用<li>标签定义

无序列表的基本语法如下:

1
2
3
4
5
<ul>
<li></li>
<li></li>
<li></li>
</ul>

注意事项:

  1. 无序列表的各个列表项之间是没有顺序级别之分的,是并列的

  2. <ul>/<ul>中只能嵌套<li></li>,直接在<ul></ul>标签中输入其他标签或文字的做法是不允许的

  3. <li></li>之间相当于一个容器,可以容纳所有元素

  4. 无序列表带有自己的样式属性,但在实际使用中,我们会用css来设置


有序列表

有序列表即为有排列顺序的列表,其各个列表项会按照一定的顺序进行排列定义

在HTML中,我们可以通过<ol>ordered list标签进行无序列表的定义,列表排序以数字来显示,并且通过<li>标签来定义列表项

语法与无序列表几乎相同:

1
2
3
4
5
<ol>
<li></li>
<li></li>
<li></li>
</ol>

注意事项与无序列表几乎相同,不再赘叙


自定义列表(重点)

使用场景:

  • 对术语的或名词进行解释或者描述,定义列表的列表项没有任何项目符号

定义方法:

​ 在HTML标签中,<dl></dl>标签用于定义描述列表(或定义列表),该标签会与<dt>(定义项目/名字)和<dd>(描述每一个项目/名字)一起使用

基本语法:

1
2
3
4
5
6
<dl>
<dt>关注我们</dt>
<dd>新浪微博</dd>
<dd>官方微信</dd>
<dd>联系方式</dd>
</dl>
  1. <dl></dt>里面只能包含<dt><dd>

  2. <dt><dd>没有个数限制,经常是一个<dt>对应多个<dd>

  3. <dt><dd>不是包含关系,他们是并列的


表单标签

  • 比如说注册界面

为什么需要表单:为了收集用户信息

表单的组成:

​ 在HTML中,一个完整的表单通常由表单域表单控件(也称为表单元素)和提示信息3部分组成

image-20221026192908087


表单域

表单域是一个包含表单元素的区域,在HTML标签中,<form>用于定义表单域,以实现用户信息的收集和传递。

<form>会把它范围类的表单元素信息提交给服务器

表单基本语法如下:

1
2
3
<form action="url地址" method="提交方式" name="表单域名称">
<!-- 各种表单元素控件 -->
</form>
属性 属性值 作用
action url地址 用于指定接收并处理表单元素的服务器程序的url地址
method get/post 用于设置表单数据的提交方式,其取值为get或者post
name 名称 用于指定表单的名称,以区分同一个页面中的多个表单域

我们暂时不需要学习细节的提交原理(因为没学服务器)


表单控件(表单元素)

在表单域中我们可以自定义各种表单元素,这些表单元素就是允许用户在表单中输入或者选择的内容控件。

  • input 输入表单元素

    ​ 在英文单词中,input是输入的意思,而在表单元素中,<input>标签用于收集用户信息

    <input>标签中,包含一个type属性,根据不同的type属性值,输入字段拥有很多种格式(可以是文本字段、复选框、掩码后的文本控件、单选按钮、按钮等)

    ​ 基本语法:

    1
    <input type = "属性值" />
    • <input/>标签为单标签

    • type属性设置不同的属性值用来指定不同的控件类型

      | 属性值 | 描述 |
      | -------- | ------------------------------------------------------------ |
      | button | 定义可点击的按钮(多数情况下,用于通过JavaScript启动脚本) |
      | checkbox | 定义复选框 |
      | file | 定义输入字符和“浏览”按钮,供文件上传 |
      | hidden | 定义隐藏的输入字段 |
      | image | 定义图像形式的提交按钮 |
      | password | 定义密码字段,该字段中的字符将被掩码 |
      | radio | 定义单选按钮 |
      | reset | 定义重置按钮,将会清除表单中所有数据 |
      | submit | 定义提交按钮,将会将表单数据发送给服务器 |
      | text | 定义单行的输入字段,用户可以在其中输入文本,默认宽度为20字符 |

    • 除了type属性,<input>标签还有其他很多属性,其常用属性如下:

      | 属性 | 属性值 | 描述 |
      | --------- | ------------ | ----------------------------------- |
      | name | 由用户自定义 | 定义input元素的名称 |
      | value | 由用户自定义 | 规定input元素的值 |
      | checked | checked | 规定此input元素首次加载时应当被选中 |
      | maxlength | 正整数 | 规定输入字段中字符的最大长度 |

      1. name和value是每个表单元素都有的属性值,主要给后台人员使用

      2. name是表单元素的名字,要求单选按钮和复选框要有相同的name值

      3. button 一般不提交数据,通常与JavaScript联用

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        27
        28
        29
         <form action="demo.php" method="get" name="1">
        <!-- text 文本框 用户可以在里面输入任何文字 -->
        <!-- value 值 设置默认选项,文本框中需要用户手动删除再输入-->
        用户名:<input type="text" name="user_name" value="请输入用户名"><br />

        <!-- password 密码 用户在里面输入的文字将被隐藏 -->
        <!-- maxlength 设置输入文本的最大长度 我们将密码的最大长度设置为12-->
        密码:<input type="password" name="pwd" maxlength="12"><br />

        <!-- radio 单选按钮 可以实现多选-->
        <!-- name是表单元素名字,这里性别单选按钮应当有相同的名字name,才可以实现多选1-->
        <!-- checked 可以用于单选和复选框,当页面打开时,将会自动勾选 比如这里自动勾选性别为女性-->
        性别: 男<input type="radio" name="sex" value="男">
        <input type="radio" name="sex" value="女" checked="checked"><br />

        <!-- checkbox 复选按钮 后面的选项都能选择-->
        <!-- 在radio和checkbox中的value值,是提供给后台的 -->
        爱好: 吃饭<input type="checkbox" name="hobby" value="吃饭"> 睡觉<input type="checkbox" name="hobby" value="睡觉">
        <br/>

        <!-- submit 提交按钮 可以把表单域form中的表单元素里面的值 提交给后台服务器 -->
        <input type="submit" value="确认注册">
        <!-- reset 重置按钮 可以将表单域中的所哟数据重置-->
        <input type="reset" value="重置表单">
        <!-- button 普通按钮,通过javaScript启动脚本,触发某种事件-->
        <input type="button" value="获取短信验证码">
        <!-- file 文件域 使用场景:上传文件-->
        <input type="file" value="上传头像">
        </form>
    1. label标签

      • <label>标签为input元素定义标注(标签)

      • <label>标签用于绑定一个表单元素,当点击<label>标签内的文本时,浏览器就会自动将焦点(光标)转到或者选择对应的表单元素上,用来增加用户体验

      • 核心:<label>标签的for属性应与相关元素的id属性相同

  • select 下拉表单元素

    使用场景:在页面中,如果有多个选项让用户选择,并且想要节约页面空间时,我们可以使用<select>控件控制下拉列表

    语法:

    1
    2
    3
    4
    5
    6
    <select>
    <option>选项1</option>
    <option>选项2</option>
    <option>选项3</option>
    <option>...</option>
    </select>
    1. <select>至少包含一对<option>

    2. <option>中定义selected = "selected"时,当前选项为默认选中项

      1
      2
      3
      4
      5
      6
      7
      8
      9
      <form>
      籍贯:
      <select>
      <option>地球</option>
      <option selected="selected">火星</option>
      <option>水星</option>
      <option>...</option>
      </select>
      </form>
  • textarea 文本域元素

    与文本框不同,文本框只能写入一行数据,而文本域能够写入多行数据

    在表单元素中,<textarea>标签是用于定义多行文本输入的控件

    使用多行文本输入控件时,可以输入更多的文字,该控件常见于留言板、评论

    语法规范:

    1
    2
    3
    4
    文字头
    <textarea>
    默认文本
    </textarea>
    1. 通过<textarea>标签可以轻松的创建多行文本输入框

    2. cols=“每行中的字符数”,rows=“显示的行数”

    1
    2
    3
    4
    5
    6
    <form>
    今日反馈:
    <textarea cols="50" rows="5">
    你可以在这里写下你的反馈
    </textarea>
    </form>

应用实践
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!--
* @Author: Joker Yue, Joker_Yue@qq.com
* @Date: 2022-10-27 21:49:30
* @LastEditors: Joker Yue
* @LastEditTime: 2022-11-01 20:20:19
* @FilePath: \HTML\02黑马\6.4.html
* @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>单身交友注册界面</title>
</head>

<body>
<h4>青春不常在,抓紧谈恋爱</h4>
<table width="500">
<!--第一行-->
<tr>
<td>性别</td>
<td>
<input type="radio" name="sex" id="men"> <label for="men"><img src="men.png"></label>
<input type="radio" name="sex" id="women"> <label for="women"><img src="men.png"></label>
</td>
</tr>

<!--第二行-->
<tr>
<td>
生日:
</td>
<td>
<select>
<option>-请选择年份-</option>
<option>2001</option>
<option>2002</option>
<option>2003</option>
<option>2004</option>
<option>2005</option>
<option>2006</option>
</select>
<select>
<option>-请选择月份-</option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select>
<select>
<option>-请选择日期-</option>
<option>01</option>
<option>02</option>
<option>03</option>
<option>04</option>
<option>05</option>
<option>06</option>
<option>07</option>
<option>08</option>
<option>09</option>
<option>10</option>
<option>11</option>
<option>12</option>
</select>
<!-- 我们也可以直接输入下面这段话来选择日期 -->
<!-- <input type="date"> -->
</td>
</tr>

<!-- 第三行 -->
<tr>
<td>所在地区</td>
<td><input type="text"> </td>
</tr>

<!-- 第四行 -->
<tr>
<td>婚姻状况</td>
<td>
<input type="radio" name="marry" id="marry"> <label for="marry">未婚</label>
<input type="radio" name="marry" id="single"> <label for="single">已婚</label>
<input type="radio" name="marry" id="lost"> <label for="lost">丧偶</label>
</td>
</tr>

<!-- 第五行 -->
<tr>
<td>学历</td>
<td><input type="text" value="请填写您的学历"></td>
</tr>

<!-- 第六行 -->
<tr>
<td>喜欢的类型</td>
<td>
<input type="checkbox" name="love">妩媚的
<input type="checkbox" name="love">可爱的
<input type="checkbox" name="love">小鲜肉
<input type="checkbox" name="love" checked>都喜欢
</td>
</tr>

<!-- 第七行 -->
<tr>
<td>个人介绍</td>
<td>
<textarea name="self-intro" id="" cols="30">个人简介</textarea>
</td>
</tr>

<!-- 第八行 -->
<tr>
<td></td>
<td>
<input type="submit" value="免费注册">
</td>
</tr>

<!-- 第九行 -->
<tr>
<td></td>
<td>
<input type="checkbox" checked>我已阅读并同意注册条款

</td>
</tr>

<!-- 第十行 -->
<tr>
<td></td>
<td>
<a href="#">我是会员,立即登录</a>
</td>
</tr>

<!-- 第十一行 -->
<tr>
<td></td>
<td>
<h5>我承诺</h5>
<ul>
<li>年满十八岁、单身</li>
<li>抱着严谨的态度</li>
<li>真诚寻找另一半</li>
</ul>
</td>
</tr>
</table>
</body>

</html>