Web/01-HTML/07-html标签图文详解(二).md

983 lines
31 KiB
JavaScript
Raw Normal View History

2017-07-08 17:26:08 +08:00
## 本文主要内容
2020-02-20 15:27:18 +08:00
- 列表标签`<ul>``<ol>``<dl>`
2017-07-08 17:26:08 +08:00
- 表格标签`<table>`
- 框架标签及内嵌框架`<iframe>`
- 表单标签`<form>`
- 多媒体标签
- 滚动字幕标签`<marquee>`
## 列表标签
列表标签分为三种
### 1无序列表`<ul>`无序列表中的每一项是`<li>`
英文单词解释如下
- ulunordered list无序列表的意思
- lilist item列表项的意思
例如
```html
<ul>
<li>默认1</li>
<li>默认2</li>
<li>默认3</li>
</ul>
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_01.png)
2017-07-08 17:26:08 +08:00
注意
- li不能单独存在必须包裹在ul里面反过来说ul的儿子不能是别的东西只能有li
- 我们这里再次强调ul的作用并不是给文字增加小圆点的而是增加无序列表的语义
**属性**
- `type="属性值"`属性值可以选 `disc`(实心原点默认)`square`(实心方点)`circle`(空心圆)
效果如下
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_02_1.png)
2017-07-08 17:26:08 +08:00
不光是`<ul>`标签有`type`属性`<ul>`里面的`<li>`标签也有`type`属性虽然说这种写法很少见效果如下
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_03.png)
2017-07-08 17:26:08 +08:00
2019-10-03 17:18:39 +08:00
注意项目符号可以是图片需要通过CSS设置`<li>`标记的背景图片来实现(CSS中讲)
2017-07-08 17:26:08 +08:00
2019-10-03 17:18:39 +08:00
当然了列表之间是可以**嵌套**我们来举个例子代码
2017-07-08 17:26:08 +08:00
```html
<ul>
<li><b>北京市</b>
<ul>
<li>海淀区</li>
<li>朝阳区</li>
<li>东城区</li>
</ul>
</li>
<li><b>广州市</b>
<ul>
<li>天河区</li>
<li>越秀区</li>
</ul>
</li>
</ul>
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-01-cnblogs_html_40.png)
2017-07-08 17:26:08 +08:00
2019-10-03 21:36:31 +08:00
**css 属性**
```css
list-style-position: inside /* 给 ul 设置这个属性后,将小圆点包含在 li 元素的内部 */
```
2019-10-03 17:18:39 +08:00
#### ul标签实际应用场景
2017-07-08 17:26:08 +08:00
2019-10-03 17:18:39 +08:00
场景1导航条
2017-07-08 17:26:08 +08:00
2017-07-10 15:52:35 +08:00
![](http://img.smyhvae.com/20170704_1717.png)
2017-07-08 17:26:08 +08:00
2019-10-03 17:18:39 +08:00
场景2li 里面放置的内容可能很多
2017-07-08 17:26:08 +08:00
2017-07-10 15:52:35 +08:00
![](http://img.smyhvae.com/20170704_1719.png)
2017-07-08 17:26:08 +08:00
2018-02-05 15:28:01 +08:00
声明ul的儿子只能是li但是li是一个容器级标签**li里面什么都能放甚至可以再放一个ul**
2017-07-08 17:26:08 +08:00
2020-05-23 17:54:54 +08:00
### 2有序列表`<ol>`里面的每一项是`<li>`
2017-07-08 17:26:08 +08:00
英文单词Ordered List
例如
```html
2018-01-10 22:01:18 +08:00
<ol >
2017-07-08 17:26:08 +08:00
<li>呵呵哒1</li>
<li>呵呵哒2</li>
<li>呵呵哒3</li>
</ol>
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_04.png)
2017-07-08 17:26:08 +08:00
**属性**
- `type="属性值"`属性值可以是1(阿拉伯数字默认)aAiI结合`start`属性表示`从几开始`
举例
```html
2018-01-10 22:01:18 +08:00
<ol type="1">
2017-07-08 17:26:08 +08:00
<li>呵呵</li>
<li>呵呵</li>
<li>呵呵</li>
</ol>
2018-01-10 22:01:18 +08:00
<ol type="a">
2017-07-08 17:26:08 +08:00
<li>嘿嘿</li>
<li>嘿嘿</li>
<li>呵呵</li>
</ol>
2018-01-10 22:01:18 +08:00
<ol type="i" start="4">
2017-07-08 17:26:08 +08:00
<li>哈哈</li>
<li>哈哈</li>
<li>哈哈</li>
</ol>
2018-01-10 22:01:18 +08:00
<ol type="I" start="10">
2017-07-08 17:26:08 +08:00
<li>么么</li>
<li>么么</li>
<li>么么</li>
</ol>
```
效果如下
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_07.png)
2017-07-08 17:26:08 +08:00
和无序列表一样有序列表也是可以嵌套的哦这里就不举类似的例子了
ol和ul就是语义不一样怎么使用都是一样的
ol里面只能有lili必须被ol包裹li是容器级
ol这个东西用的不多如果想表达顺序大家一般也用ul举例如下
```html
<ul>
<li>1. 小苹果</li>
<li>2. 月亮之上</li>
<li>3. 最炫民族风</li>
</ul>
```
### 3定义列表`<dl>`
> 定义列表的作用非常大
`<dl>`英文单词definition list没有属性dl的子元素只能是dt和dd
- `<dt>`definition title 列表的标题这个标签是必须的
- `<dd>`definition description 列表的列表项如果不需要它可以不加
备注dtdd只能在dl里面dl里面只能有dtdd
举例
```html
<dl>
<dt>第一条</dt>
<dd>你若是觉得你有实力和我玩良辰不介意奉陪到底</dd>
<dd>我会让你明白我从不说空话</dd>
<dd>我是本地的我有一百种方式让你呆不下去而你无可奈何</dd>
<dt>第二条</dt>
<dd>良辰最喜欢对那些自认能力出众的人出手</dd>
<dd>你可以继续我行我素不过你的日子不会很舒心</dd>
<dd>你只要记住我叫叶良辰</dd>
<dd>不介意陪你玩玩</dd>
<dd>良辰必有重谢</dd>
</dl>
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_09.png)
2017-07-08 17:26:08 +08:00
上图可以看出定义列表表达的语义是两层
2018-01-08 22:06:30 +08:00
- 1是一个列表列出了几个dd项目
- 2每一个词儿都有自己的描述项
2017-07-08 17:26:08 +08:00
备注dd是描述dt的
定义列表用法非常灵活可以一个dt配很多dd
```html
<dl>
<dt>北京</dt>
<dd>国家首都政治文化中心</dd>
<dd>污染很严重PM2.0天天报表</dd>
<dt>上海</dt>
<dd>魔都有外滩东方明珠塔黄浦江</dd>
<dt>广州</dt>
<dd>中国南大门有珠江小蛮腰</dd>
</dl>
```
还可以拆开让每一个dl里面只有一个dt和dd这样子感觉清晰一些
```html
<dl>
<dt>北京</dt>
<dd>国家首都政治文化中心</dd>
<dd>污染很严重PM2.0天天报表</dd>
</dl>
<dl>
<dt>上海</dt>
<dd>魔都有外滩东方明珠塔黄浦江</dd>
</dl>
<dl>
<dt>广州</dt>
<dd>中国南大门有珠江小蛮腰</dd>
</dl>
```
真实案例京东最下方
2017-07-10 15:52:35 +08:00
![](http://img.smyhvae.com/20170704_1727.png)
2017-07-08 17:26:08 +08:00
上图中的结构如下
```html
<dl>
<dt>购物指南</dt>
<dd>
<a href="#">购物流程</a>
<a href="#">会员介绍</a>
<a href="#">生活旅行/团购</a>
<a href="#">常见问题</a>
<a href="#">大家电</a>
<a href="#">联系客服</a>
</dd>
</dl>
<dl>
<dt>配送方式</dt>
<dd>
<a href="#">上门自提</a>
<a href="#">211限时达</a>
<a href="#">配送服务查询</a>
<a href="#">配送费收取标准</a>
<a href="#">海外配送</a>
</dd>
</dl>
```
2018-01-08 23:23:43 +08:00
京东商品分类如下
2018-01-08 22:06:30 +08:00
2018-01-08 23:16:02 +08:00
![](http://img.smyhvae.com/20170704_1729.png)
2017-07-08 17:26:08 +08:00
dtdd都是容器级标签想放什么都可以所以现在就应该更加清晰的知道用什么标签不是根据样子来决定而是语义语义本质上是结构
## 表格标签
表格标签用`<table>`表示
2018-05-01 09:16:26 +08:00
一个表格`<table>`是由每行`<tr>`组成的每行是由每个单元格`<td>`组成的
2017-07-08 17:26:08 +08:00
所以我们要记住一个表格是由行组成的行是由列组成的而不是由行和列组成的
在以前要想固定标签的位置唯一的方法就是表格现在可以通过CSS定位的功能来实现但是现在在做页面的时候表格作用还是有一些的
例如一行的单元格
```html
2019-10-03 17:18:39 +08:00
<table>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
2017-07-08 17:26:08 +08:00
```
上面的表格中没有加文字所以在生成的网页中什么都看不到
例如3行4列的单元格
```html
2019-10-03 17:18:39 +08:00
<table>
<tr>
<td>生命壹号</td>
<td>23</td>
<td></td>
<td>黄冈</td>
</tr>
<tr>
<td>许嵩</td>
<td>29</td>
<td></td>
<td>安徽</td>
</tr>
<tr>
<td>邓紫棋</td>
<td>23</td>
<td></td>
<td>香港</td>
</tr>
</table>
2017-07-08 17:26:08 +08:00
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_10.png)
2017-07-08 17:26:08 +08:00
上图中的表格好像没看到边框呀不急接下来看看`<table>`标签的属性
**`<table>`的属性**
- `border`边框像素为单位
2018-04-02 10:21:27 +08:00
- `style="border-collapse:collapse;"`单元格的线和表格的边框线合并表格的两边框合并为一条
2017-07-08 17:26:08 +08:00
- `width`宽度像素为单位
- `height`高度像素为单位
- `bordercolor`表格的边框颜色
- `align`**表格**的水平对齐方式属性值可以填left right center
注意这里不是设置表格里内容的对齐方式如果想设置内容的对齐方式要对单元格标签`<td>`进行设置
- `cellpadding`单元格内容到边的距离像素为单位默认情况下文字是紧挨着左边那条线的即默认情况下的值为0
注意不是单元格内容到四条边的距离哈而是到一条边的距离默认是与左边那条线的距离如果设置属性`dir="rtl"`那就指的是内容到右边那条线的距离
- `cellspacing`单元格和单元格之间的距离外边距像素为单位默认情况下的值为0
- `bgcolor="#99cc66"`表格的背景颜色
- `background="路径src/..."`背景图片
背景图片的优先级大于背景颜色
- `bordercolorlight`表格的上左边框以及单元格的右下边框的颜色
- `bordercolordark`表格的右下边框以及单元格的上左的边框的颜色
这两个属性的目的是为了设置3D的效果
- `dir`公有属性单元格内容的排列方式(direction) 可以 取值`ltr`从左到右left to right默认`rtl`从右到左right to left
既然说`dir`是共有属性如果把这个属性放在任意标签中那表明这个标签的位置可能会从右开始排列
单元格带边框的效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_11.png)
2017-07-08 17:26:08 +08:00
2019-10-03 17:18:39 +08:00
备注表格中很细表格边线的制作CSS的写法
```css
2017-07-08 17:26:08 +08:00
style="border-collapse:collapse;"
```
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
### `<tr>`
2019-10-03 17:18:39 +08:00
一个表格就是一行一行组成的
2017-07-08 17:26:08 +08:00
**属性**
2019-10-03 17:18:39 +08:00
- `dir`公有属性设置这一行单元格内容的排列方式可以取值
- `ltr`从左到右left to right默认
- `rtl`从右到左right to left
2017-07-08 17:26:08 +08:00
- `bgcolor`设置这一行的单元格的背景色
没有background属性无法设置这一行的背景图片如果非要设置可以用css实现
- `height`一行的高度
- `align="center"`一行的内容水平居中显示取值leftcenterright
- `valign="center"`一行的内容垂直居中取值topmiddlebottom
### `<td>`单元格
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
**属性**
2019-10-03 17:18:39 +08:00
- `align`内容的横向对齐方式属性值可以填left right center如果想让每个单元格的内容都居中这个属性太麻烦了以后用css来解决
2017-07-08 17:26:08 +08:00
- `valign`内容的纵向对齐方式属性值可以填top middle bottom
- `width`绝对值或者相对值(%)
- `height`单元格的高度
- `bgcolor`设置这个单元格的背景色
- `background`设置这个单元格的背景图片
### 单元格的合并
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
单元格的属性
2019-10-03 17:18:39 +08:00
- `colspan`横向合并例如`colspan="2"`表示当前单元格在水平方向上要占据两个单元格的位置
- `rowspan`纵向合并例如`rowspan="2"`表示当前单元格在垂直方向上要占据两个单元格的位置
2017-07-08 17:26:08 +08:00
效果举例横向合并
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_13.png)
2017-07-08 17:26:08 +08:00
效果举例纵向合并
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_15.png)
2017-07-08 17:26:08 +08:00
### `<th>`加粗的单元格相当于`<td>` + `<b>`
2019-10-03 17:18:39 +08:00
- 属性同`<td>`标签
2017-07-08 17:26:08 +08:00
<br>
### `<caption>`表格的标题使用时和`tr`标签并列
- 属性`align`表示标题相对于表格的位置属性取值可以是leftcenterrighttopbottom
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_16.png)
2017-07-08 17:26:08 +08:00
### 表格的`<thead>`标签`<tbody>`标签`<tfoot>`标签
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
这三个标签有与没有的区别
2019-10-03 17:18:39 +08:00
- 1如果写了那么这三个部分的**代码顺序可以任意**浏览器显示的时候还是按照theadtbodytfoot的顺序依次来显示内容如果不写theadtbodytfoot那么浏览器解析并显示表格内容的时候是从按照代码的从上到下的顺序来显示
- 2当表格非常大内容非常多的时候如果用theadtbodytfoot标签的话那么**数据可以边获取边显示**如果不写则必须等表格的内容全部从服务器获取完成才能显示出来
2017-07-08 17:26:08 +08:00
举例
```html
<body>
<table border="1">
<tbody>
<tr>
<td>生命壹号</td>
<td>23</td>
<td></td>
<td>黄冈</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>许嵩</td>
<td>29</td>
<td></td>
<td>安徽</td>
</tr>
</tfoot>
<thead>
<tr>
<td>邓紫棋</td>
<td>23</td>
<td></td>
<td>香港</td>
</tr>
</thead>
</table>
</body>
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_17.png)
2017-07-08 17:26:08 +08:00
## 框架标签
如果我们希望在一个网页中显示多个页面那框架标签就派上用场了
> - 注意框架标签不能放在`<body>`标签里面因为`<body>`标签代表的只是一个页面而框架标签代表的是多个页面于是`<frameset>``<body>`只能二选一
> - 框架的集合用`<frameset>`表示然后在`<frameset>`集合里放入一个一个的框架`<frame>`
2020-03-21 20:09:53 +08:00
**补充**`frameset``frame`已经从 Web标准中删除建议使用 iframe 代替
2017-07-08 17:26:08 +08:00
### `<frameset>`框架的集合
2019-10-03 17:18:39 +08:00
一个框架的集合可以包含多个框架或框架的集合**属性**
- `rows`水平分割将框架分为上下部分写法有两种
2017-07-08 17:26:08 +08:00
1绝对值写法`rows="200,*"` 其中`*`代表剩余的这里其实包含了两个框架上面的框架占200个像素下面的框架占剩下的部分
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
2相对值写法`rows="30%,*"` 其中`*`代表剩余的这里其实包含了两个框架上面的框架占30%下面的框架占70%
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
如果你想将框架分成很多行在属性值里用逗号隔开就行了
2019-10-03 17:18:39 +08:00
- `cols`垂直分割将框架分为左右部分写法有两种
2017-07-08 17:26:08 +08:00
1绝对值写法`cols="200,*"` 其中`*`代表剩余的这里其实包含了两个框架左边的框架占200个像素右边的框架占剩下的部分
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
2相对值写法`cols="30%,*"` 其中`*`代表剩余的这里其实包含了两个框架左边的框架占30%右边的框架占70%
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
如果你想将框架分成很多列在属性值里用逗号隔开就行了
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_26.png)
2017-07-08 17:26:08 +08:00
上图中如果删掉页面right.html显示效果如下
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_27.png)
2017-07-08 17:26:08 +08:00
### `<frame>`框架
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
一个框架显示一个页面
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
**属性**
2019-10-03 17:18:39 +08:00
- `scrolling="no"`是否需要滚动条默认值是true
- `noresize`不可以改变框架大小默认情况下单个框架的边界是可以拖动的这样的话框架大小就不固定了如果用了这个属性值框架大小将固定
2017-07-08 17:26:08 +08:00
举例
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
```html
<frame src="top.html" noresize></frame>
```
2019-10-03 17:18:39 +08:00
- `bordercolor="#00FF00"`给框架的边框定义颜色这个属性在框架集合`<frameset>`中同样适用
2017-07-08 17:26:08 +08:00
颜色这个属性在IE浏览器中生效但是在google浏览器中无效不知道为啥
2019-10-03 17:18:39 +08:00
- `frameborder="0"``frameborder="1"`隐藏或显示边框框架线
- `name`给框架起一个名字
2017-07-08 17:26:08 +08:00
利用`name`这个属性我们可以在框架里进行超链
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
举例
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_28.png)
2017-07-08 17:26:08 +08:00
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_gif3.gif)
2017-07-08 17:26:08 +08:00
## 内嵌框架
内嵌框架用`<iframe>`表示`<iframe>``<body>`的子标记
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
内嵌框架inner frame嵌入在一个页面上的框架(仅仅IE新版google浏览器支持可能有其他浏览器也支持暂时我不清楚)
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
**属性**
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
- `src="subframe/the_second.html"`内嵌的那个页面
- `width=800`宽度
- `height=“150`高度
- `scrolling="no"`是否需要滚动条默认值是true
- `name="mainFrame"`窗口名称公有属性
效果
2019-10-03 17:18:39 +08:00
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_29.png)
2017-07-08 17:26:08 +08:00
内嵌框架举例在内嵌页面中切换显示不同的压面
```html
<body>
<a href="文字页面.html" target="myframe">默认显示文字页面</a><br>
<a href="图片页面.html" target="myframe">点击进入图片页面</a><br>
<a href="表格页面.html" target="myframe">点击进入表格页面</a><br>
<iframe src="文字页面.html" width="400" height="400" name="myframe"></iframe>
<br>
嘿嘿
</body>
```
效果演示
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_GIF.gif)
2017-07-08 17:26:08 +08:00
## 表单标签
表单标签用`<form>`表示用于与服务器的交互表单就是收集用户信息的就是让用户填写的选择的
**属性**
- `name`表单的名称用于JS来操作或控制表单时使用
- `id`表单的名称用于JS来操作或控制表单时使用
- `action`指定表单数据的处理程序一般是PHPaction=login.php
- `method`表单数据的提交方式一般取值get(默认)和post
注意表单和表格嵌套时是在<form>标记中套<table>标记
form标签里面的action属性和method属性Ajax课程上给大家讲解稍微说一下action属性就是表示表单将提交到哪里 method属性表示用什么HTTP方法提交有getpost两种
**get提交和post提交的区别**
2018-01-08 23:23:43 +08:00
2017-07-08 17:26:08 +08:00
GET方式
将表单数据"name=value"形式追加到action指定的处理程序的后面两者间用"?"隔开每一个表单的"name=value"间用"&"号隔开
特点只适合提交少量信息并且不太安全(不要提交敏感数据)提交的数据类型只限于ASCII字符
POST方式
将表单数据直接发送(隐藏)到action指定的处理程序POST发送的数据不可见Action指定的处理程序可以获取到表单数据
特点可以提交海量信息相对来说安全一些提交的数据格式是多样的(WordExcelrarimg)
**Enctype**
表单数据的编码方式(加密方式)取值可以是application/x-www-form-urlencodedmultipart/form-dataEnctype只能在POST方式下使用
2019-10-03 17:18:39 +08:00
- Application/x-www-form-urlencoded**默认**加密方式除了上传文件之外的数据都可以
- Multipart/form-data**上传附件时必须使用这种编码方式**
2017-07-08 17:26:08 +08:00
### `<input>`输入标签文本框
用于接收用户输入
```html
<input type="text" />
```
**属性**
- **`type="属性值"`**文本类型属性值可以是
- `text`默认
- `password`密码类型
- `radio`单选按钮名字相同的按钮作为一组进行单选单选按钮天生是不能互斥的如果想互斥必须要有相同的name属性name就是名字
非常像以前的收音机按下去一个按钮其他的就抬起来了所以叫做radio
2019-10-03 21:36:31 +08:00
- `checkbox`多选按钮**name 属性值相同的按钮**作为一组进行选择
2020-03-21 20:09:53 +08:00
- `checked`将单选按钮或多选按钮默认处于选中状态`<input>`标签设置为`type="radio"`或者`type=checkbox`可以用这个属性属性值也是checked可以省略
2017-07-08 17:26:08 +08:00
- `hidden`隐藏框在表单中包含不希望用户看见的信息
- `button`普通按钮结合js代码进行使用
- `submit`提交按钮传送当前表单的数据给服务器或其他程序处理这个按钮不需要写value自动就会有提交文字这个按钮真的有提交功能点击按钮后这个表单就会被提交到form标签的action属性中指定的那个页面中去
- `reset`重置按钮清空当前表单的内容并设置为最初的默认值
- `image`图片按钮和提交按钮的功能完全一致只不过图片按钮可以显示图片
- `file`文件选择框
提示如果要限制上传文件的类型需要配合JS来实现验证对上传文件的安全检查一是扩展名的检查二是文件数据内容的检查
- **`value="内容"`**文本框里的默认内容已经被填好了的
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
- `size="50"`表示文本框内可以显示**五十个字符**一个英文或一个中文都算一个字符
注意**size属性值的单位不是像素哦**
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
- `readonly`文本框只读不能编辑因为它的属性值也是readonly所以属性值可以不写
用了这个属性之后在google浏览器中光标点不进去在IE浏览器中光标可以点进去但是文字不能编辑
2019-10-03 17:18:39 +08:00
- `disabled`文本框只读不能编辑光标点不进去属性值可以不写
2017-07-08 17:26:08 +08:00
2019-10-03 17:18:39 +08:00
> 备注HTML5中input的类型又增加了很多比如datecolor我们会在 html5 中讲到
2017-07-08 17:26:08 +08:00
2019-10-03 21:36:31 +08:00
**举例**
2017-07-08 17:26:08 +08:00
```html
<form>
姓名<input value="呵呵" >逗比<br>
昵称<input value="哈哈" readonly=""><br>
名字<input type="text" value="name" disabled=""><br>
密码<input type="password" value="pwd" size="50"><br>
2019-10-03 21:36:31 +08:00
性别<input type="radio" name="gender" id="radio1" value="male" checked="">
<input type="radio" name="gender" id="radio2" value="female" ><br>
2017-07-08 17:26:08 +08:00
爱好<input type="checkbox" name="love" value="eat">吃饭
<input type="checkbox" name="love" value="sleep">睡觉
<input type="checkbox" name="love" value="bat">打豆豆
</form>
```
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_33.png)
2017-07-08 17:26:08 +08:00
2019-10-03 21:36:31 +08:00
注意多个个单选框的input标签中name 的属性值可以相同但是 **id 的属性值必须是唯一的**我们知道html的标签中id的属性值是唯一的
**四种按钮的举例**
2017-07-08 17:26:08 +08:00
```html
<form>
<input type="button" value="普通按钮"><br>
<input type="submit" value="提交按钮"><br>
<input type="reset" value="重置按钮"><br>
<input type="image" value="图片按钮1"><br>
<input type="image" src="1.jpg" width="800" value="图片按钮2"><br>
<input type="file" value="文件选择框">
</form>
```
2019-10-03 17:18:39 +08:00
**前端开发工程师重点关心页面的美样式板式交互至于数据的提供和比较重的业务逻辑都是后台工程师做的事情**
2017-07-08 17:26:08 +08:00
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_35.png)
2017-07-08 17:26:08 +08:00
### `<select>`下拉列表标签
`<select>`标签里面的每一项用`<option>`表示select就是选择option选项
select标签和uloldl一样都是组标签
**`<select>`标签的属性**
2020-03-21 20:09:53 +08:00
- `multiple`可以对下拉列表中的选项进行多选属性值为 multiple也可以没有属性值也就是说既可以写成 `multiple=""`也可以写成`multiple="multiple"`
2017-07-08 17:26:08 +08:00
- `size="3"`如果属性值大于1则列表为滚动视图默认属性值为1即下拉视图
**`<option>`标签的属性**
- `selected`预选中没有属性值
举例
```html
<form>
<select>
<option>小学</option>
<option>初中</option>
<option>高中</option>
<option>大学</option>
<option selected="">研究生</option>
</select>
<br><br><br>
<select size="3">
<option>小学</option>
<option>初中</option>
<option>高中</option>
<option>大学</option>
<option>研究生</option>
</select>
<br><br><br>
<select multiple="">
<option>小学</option>
<option>初中</option>
<option selected="">高中</option>
<option selected="">大学</option>
<option>研究生</option>
</select>
<br><br><br>
</form>
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_32.png)
2017-07-08 17:26:08 +08:00
2020-03-21 20:09:53 +08:00
### `<textarea>`标签多行文本输入框
2017-07-08 17:26:08 +08:00
2020-03-21 20:09:53 +08:00
text 就是文本area 就是区域
2017-07-08 17:26:08 +08:00
**属性**
- `rows="4"`指定文本区域的行数
- `cols="20"`指定文本区域的列数
- `readonly`只读
举例
```html
<form>
<textarea name="txtInfo" rows="4" cols="20">1不爱摄影不懂设计的程序猿不是一个好的产品经理</textarea>
</form>
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_34.png)
2017-07-08 17:26:08 +08:00
上图的红框部分表示我在文本区域进行了换行所以显示的效果也出现了空白
### 表单的语义化
比如我们在注册一个网站的信息的时候有一部分是必填信息有一部分是选填信息这个时候可以利用表单的语义化
举例
```html
<form>
<fieldset>
<legend>账号信息</legend>
姓名<input value="呵呵" >逗比<br>
密码<input type="password" value="pwd" size="50"><br>
</fieldset>
<fieldset>
<legend>其他信息</legend>
2018-01-10 22:01:18 +08:00
性别<input type="radio" name="gender" value="male" checked="">
2017-07-08 17:26:08 +08:00
<input type="radio" name="gender" value="female" ><br>
爱好<input type="checkbox" name="love" value="eat">吃饭
<input type="checkbox" name="love" value="sleep">睡觉
<input type="checkbox" name="love" value="bat">打豆豆
</fieldset>
</form>
```
效果
2019-10-03 17:18:39 +08:00
![](http://img.smyhvae.com/20151002_36.png)
2017-07-08 17:26:08 +08:00
### `<label>`标签
我们先来看下面一段代码
```html
<input type="radio" name="sex" />
<input type="radio" name="sex" />
```
对于上面这样的单选框我们只有点击那个单选框小圆圈才可以选中点击这两个文字时是无法选中的于是label标签派上了用场
本质上来讲这两个文字和input标签时没有关系的而label就是解决这个问题的我们可以通过label把input和汉字包裹起来作为整体
解决方法如下
```html
<input type="radio" name="sex" id="nan" /> <label for="nan"></label>
<input type="radio" name="sex" id="nv" /> <label for="nv"></label>
```
2019-10-03 21:36:31 +08:00
上方代码中让label标签的**for 属性值** input 标签的 **id 属性值相同**那么这个label和input就有绑定关系了
2017-07-08 17:26:08 +08:00
当然了复选框也有label任何表单元素都有label
```html
<input type="checkbox" id="kk" />
2018-01-10 22:01:18 +08:00
<label for="kk">10天内免登陆</label>
2017-07-08 17:26:08 +08:00
```
## 多媒体标签
**声明**
多媒体包含音频视频Flash网页上的多媒体基本都是Flash格式的
.wmv.dat.mob.rmvb等视频格式在网页上不能直接播放需要安装第三方的插件才可以播放不同的浏览器播客上述视频格式所使用插件参数又不一样
上述格式视频一般文件较大不利于网络下载播放
一般情况下是将其它的视频格式转成Flash来在网页上播放转换软件格式工厂等
Flash格式的视频兼容性非常好Flash格式的文件很小
### `<bgsound>`标签播放背景音乐
**属性**
- `src="音乐文件的路径"`
- `loop="-1"`属性值代表播放次数-1代表循环播放
举例
```html
<body>
<bgsound src="王菲 - 清风徐来.mp3"></bgsound>
</body>
```
运行效果
打开网页后在IE 8中播放正常播放时网页上显示一片空白在google浏览器中无法播放
<br>
### `<embed>`标签播放多媒体文件音频视频等
主要应用Netscape浏览器它不是W3C规范
> 备注视频格式可以支持 mp4wav等但不是所有视频格式都支持
**属性**
- `src="多媒体文件的路径"`
- `loop="-1"`属性值代表播放次数-1代表循环播放
- `autostart="false"`打开网页时禁止自动播放默认值是true
- `volume="100"`设置默认的音量大小测试发现这个值好像不起作用哦
- width指Flash文件的宽度
- height指Flash文件的高度
- quality指Flash的播放质量质量有高有低 hight low
- pluginspage如果指定的Flash插件不存在则从pluginspage指定的地方进行下载
- type指定Flash的文件格式类型
- wmode指Flash的背景是否可以透明取值transparent是透明的
`<embed>`标签播放音频举例
```html
<body>
<embed src="王菲 - 清风徐来.mp3"></embed>
</body>
```
IE 8中的运行效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_37.png)
2017-07-08 17:26:08 +08:00
google浏览器中的运行效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_38.png)
2017-07-08 17:26:08 +08:00
在HTML5中新增了`<video>`标签播放视频
<br>
### `<object>`标签播放多媒体文件音频视频等
主要应用IE浏览器它是W3C规范
**属性**
- `classid`指定Flash插件的ID号一般存在于注册表中
- `codebase`如果Flash插件不存在则从codebase指定的地址下载
- `<param>`标签的主要作用设置具体的详细参数
**总结在网页中插入Flash时为了同时兼容多种浏览器需要将`<object>`标签和`<embed>`标签标记一起使用但使用的顺序是`<object>`中嵌套`<embed>`标记**
举例
2019-10-03 17:18:39 +08:00
2017-07-08 17:26:08 +08:00
```html
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="778" height="202">
<param name="movie" value="images/banner.swf">
<param name="quality" value="high">
<param name="wmode" value="transparent">
<embed src="images/banner.swf" width="778" height="202" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent"></embed>
</object>
```
## `<marquee>`滚动字幕标签
如果在这个标签里设置了内容那么打开网页时内容会像弹幕一样自动移动
**属性**
- `direction="right"`移动的目标方向属性值可以是`left`从右向左移动默认值`right`从左向右移动`up`从下向上移动`down`从上向下移动
- `behavior="slide"`行为方式属性值可以是`slide`只移动一次`scroll`循环移动默认值`alternate`循环移动
`alternate``scroll`属性值都是循环移动区别在于假设在`direction="right"`的情况下`behavior="scroll"`表示从左到右从左到右从左到右···`behavior="alternate"`表示从左到右从右到左从左到右···
- `scrollamount="30"`移动的速度
- `loop="3"`: 循环多少圈负值表示无限循环
- `scrolldelay="1000"`移动一次休息多长时间单位是毫秒
举例
```html
<marquee behavior="alternate" direction="down" width="300" height="200" bgcolor="#8c5dc1">我来了</marquee>
```
效果
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/2015-10-02-cnblogs_html_04.gif)
2017-07-08 17:26:08 +08:00
## html废弃标签介绍
HTML现在只负责语义而不负责样式但是HTML一开始连样式也包办了这些样式的标签都已经被废弃
2004年之前的东西
```html
<font size="9" color="red">哈哈</font>
```
下面这些标签都是css钩子而不是原意
```html
<b>加粗</b>
<u>下划线</u>
<i>倾斜</i>
<del>删除线</del>
<em>强调</em>
<strong>强调</strong>
```
这些标签是有着浓厚的样式的作用干涉了css的作用所以HTML抛弃了他们
类似的还有水平线标签
```html
<hr />
```
换行标签
```
<br />
```
但是网页中99.9999%需要换行的时候是因为另起了一个段落所以要用p而不要用`<br />`不到万不得已不要用br标签
标准的div+css页面只会用到种类很少的标签
```
div p h1 span a img ul ol dl input
```
知道每个标签的特殊用法属性比如a标签img的属性
2017-07-29 16:55:33 +08:00
## 我的公众号
2017-07-08 17:26:08 +08:00
2019-02-03 14:06:03 +08:00
想学习<font color=#0000ff>**代码之外的技能**</font>id`qianguyihao`
2017-07-08 17:26:08 +08:00
2018-01-08 23:23:43 +08:00
扫一扫你将发现另一个全新的世界而这将是一场美丽的意外
2017-07-08 17:26:08 +08:00
2018-10-02 22:10:26 +08:00
![](http://img.smyhvae.com/cnblogs/%E7%94%9F%E5%91%BD%E5%9B%A2%E9%98%9F%E5%85%AC%E4%BC%97%E5%8F%B7%E4%BA%8C%E7%BB%B4%E7%A0%81.jpg)