表格
在web的历史中,HTML的表格发挥了巨大作用。最初创建表格就是为了以表格的形式显示数据,后来变成了一个极受欢迎的布局工具。
但是有了CSS以后,CSS在布局网页方面实际上会更加出色,所以现在我们使用表格的作用只有一个,就是用来表示格式化的数据。
HTML中的表格可以很复杂,但是通常情况下我们不需要创建过于复杂的表格。
table tr td th
使用table标签创建一个表格。
tr表示表格中的一行。
tr中可以编写一个或多个th和td。
th表示表头。
td表示表格中的一个单元格。
caption thead tbody tfoot
caption表示表格的标题
thead表示表格的头部
tbody表示表格的主体
tfoot表示表格的底部
合并单元格
合并单元格指将两个或两个以上的单元格合并为一个单元格。
合并单元格可以通过在th或td中设置属性来完成。
横向合并:colspan
纵向合并:rowspan
表格的样式
之前学习的很多属性都可以用来设置表格的样式,比如color可以用来设置文本的颜色。padding可以用来设置内容和表格边框的距离。
text-align:设置文本的垂直对齐。
vertical-align:设置文本的垂直对齐。
可选值:top,baseline,middle,bottom
border-spacing:边框间距
border-collapse:边框合并
- collapse:合并边框
- separate:不合并边框
长表格
有一些情况下表格是非常的长的,这时就需要将表格分为三个部分,表头,表格的主体,表格底部
在HTML中为我们提供了三个标签:
thead 表头
tbody 表格主体
tfoot 表格底部
这三个标签的作用,就来区分表格的不同的部分,他们都是table的子标签,都需要直接写到table中,tr需要写在这些标签当中
thead中的内容,永远会显示在表格的头部
tfoot中的内容,永远都会显示表格的底部
tbody中的内容,永远都会显示表格的中间
如果表格中没有写tbody,浏览器会自动在表格中添加tbody
并且将所有的tr都放到tbody中,所以注意tr并不是table的子元素,而是tbody的子元素
通过table > tr 无法选中行 需要通过tbody > tr
<body>
<table>
头部
<thead>
<tr>
<th>日期</th>
<th>收入</th>
<th>支出</th>
<th>合计</th>
</tr>
</thead>
中间
<tbody>
<tr>
<td>2017.03.01</td>
<td>500</td>
<td>300</td>
<td>2000</td>
</tr>
底部
<tfoot>
<tr>
<td></td>
<td></td>
<td>合计</td>
<td>100</td>
</tr>
</tfoot>
表格的布局
以前表格更多的情况实际上是用来对页面进行布局的,但是这种方式早已被CSS所淘汰了
表格的列数由td最多的那行决定
表格是可以嵌套,可以在td中在放置一个表格
<body>
<table border="1" width="50%">
<tr height="100px">
<td colspan="2"></td>
</tr>
<tr height="400px">
<td width="20%"></td>
<td width="80%">
<table border="1" width="100%" height="100%">
<tr height="100px">
<td width="20%"></td>
</tr>
<tr height="100px">
<td width="20%"></td>
</tr>
</table>
</td>
</tr>
<tr height="100px">
<td colspan="2"></td>
</tr>
</table>
</body>
[图片上传失败...(image-14dc85-1536678295447)]
完善clearfix
解决父子元素的外边距重叠
.box1:before{
content: "";
/*display:table可以将一个元素设置为表格显示*/
display: table;
}
解决父元素高度塌陷
.clearfix:after{
content: "";
display: block;
clear: both;
}
经过修改后的clearfix是一个多功能的样式,既可以解决高度塌陷,又可以确保父元素和子元素的垂直外边距不会重叠
合并并解决兼容性
.clearfix:before,
.clearfix:after{
content: "";
display: table;
clear: both;
}
.clearfix{
zoom: 1;
}
表单
表单的作用就是用来将用户信息提交给服务器的
比如:百度的搜索框 注册 登录这些操作都需要填写表单
-
使用form标签创建一个表单
form标签中必须指定一个action属性,该属性指向的是一个服务器的地址
当我们提交表单时将会提交到action属性对应的地址<form action="demo075_target.html">
使用form创建的仅仅是一个空白的表单,我们还需要向form中添加不同的表单项
-
在表单中可以使用fieldset来为表单项进行分组,可以将表单项中的同一组放到一个fieldset中
<fieldset> <!-- 在fieldset可以使用legend子标签,来指定组名 --> <legend>用户信息</legend>
-
使用input来创建一个文本框,它的type属性是text
如果希望表单项中的数据会提交到服务器中,还必须给表单项指定一个name属性
name表示提交内容的名字<input type="text" name="aaa">
用户填写的信息会附在url地址的后边以查询字符串的形式发送给服务器
url地址?查询字符串
-格式:
属性名=属性值&属性名=属性值&属性名=属性值&……
在文本框中也可以指定value属性值,该值将会作为文本框的默认值显示-
在html中还为我们提供了一个专门用来选中表单中的提示文字的label标签label for="um"
该标签可以指定一个for属性,该属性的值需要指定一个表单项的id值<label for="um">用户名</label> <!-- value是默认值,提示信息用:placeholder="用户名/邮箱/手机号" --> <input id="um" type="text" name="username" value="我是value"><br><br>
-
密码框type="password"
使用input创建一个密码框,它的type属性值是password<label for="pwd">密码</label> <input id="pwd" type="password" name="password"><br><br>
-
单选按钮type="radio"
- 使用input来创建一个单选按钮,它的type属性使用radio
- 单选按钮通过name属性进行分组,name属性相同是一组按钮
- 像这种需要用户选择但是不需要用户直接填写内容的表单项,还必须指定一个value属性,这样被选中的表单项的value属性值将会最终提交给服务器
如果希望在单选按钮或者是多选框中指定默认选中的选项,则可以在希望选中的项中添加checked="checked"属性
性别<input type="radio" name="gender" value="male" id="male"><label for="male">男</label>
<input type="radio" name="gender" value="female" checked="checked" id="female"><label for="female">女</label>
-
多选框
- 使用input创建一个多选框,它的type属性使用checkbox
爱好<input type="checkbox" name="hobby" value="zq">足球 <input type="checkbox" name="hobby" value="lq">篮球 <input type="checkbox" name="hobby" value="ymq" checked="checked">羽毛球 <input type="checkbox" name="hobby" value="ppq" checked="checked">乒乓球
-
下拉列表
- 使用select来创建一个下拉列表
下拉列表的name属性需要指定给select,而value属性需要指定给option
- 使用select来创建一个下拉列表
可以通过在option中添加selected="selected"来将选项设置为默认选中
当为select添加一个multiple="multiple",则下拉列表变为一个多选的下拉列表
<select name="start">
<!--
在select中可以使用optgroup对选项进行分组
同一个optgroup中的选项是一组
可以通过label属性来指定分组的名字
-->
<optgroup label="女明星">
<!-- 在下拉列表中使用option标签来创建一个一个列表项 -->
<option value="fbb">范冰冰</option>
<option value="lxr">林心如</option>
<option value="zw">赵薇</option>
</optgroup>
<optgroup label="男明星">
<option value="zbs" selected="selected">赵本山</option>
<option value="ldh">刘德华</option>
<option value="zjl">周杰伦</option>
</optgroup>
</select>
<br><br>
-
使用textarea创建一个文本域
自我介绍<textarea name="info"></textarea> <br><br>
-
提交按钮可以将表单中的信息提交给服务器
使用input创建一个提交按钮,它的type属性值是submit
在提交按钮中可以通过value属性来指定按钮上的文字<input type="submit" value="注册" />
-
创建一个重置按钮,点击重置按钮以后表单中内容将会恢复为默认值
<input type="reset">
-
创建一个单纯的按钮,这个按钮没有任何功能,只能被点击
<input type="button" value="按钮">
-
除了使用input,也可以使用button标签来创建按钮
这种方式和使用input类似,只不过由于它是成对出现的标签,使用起来更加的灵活<button type="submit">提交</button> <button type="reset">重置</button> <button type="button">按钮</button>