Head First HTML
HTML是HyperText Markup Language 超文本标记语言
的缩写。
HTML是由一套标记标签 (markup tag)组成,通常就叫标签。
基本元素
普通元素
元素 | 简介 |
---|---|
<h1> | 标题 |
<p> | 段落(paragraph),自带换行效果 |
<b> 或 <strong> | 粗体,推荐用 <strong> |
<br /> | 空行 |
<i> 或 <em> | 斜体 |
<pre> | 预格式,用来显示代码 |
<del> | 删除线 |
<ins> | 下划线(尽量不用,因为会跟超链接混淆) |
<a> | 定义超链接,用于从一张页面链接到另一张页面。 |
例子 |
1 | <html> |
<meta>解决了中文编码问题,如果 GB2312 不行,就用UTF-8
在标签中可以加入属性,比如居中
1 | <h1 >未设置居中的标题</h1> |
图片元素
元素 | 简介 |
---|---|
<img src=”http://example.com/hello.png"/> | 图片(链接可以是本地也可以是联网) |
<img width=”200” height=”200” src=”http://example.com/hello.png"/> | 设置图片宽高 |
<img src=”http://example.cn/not_exist.gif“ alt=”加载失败” /> | alt用来显示图片加载失败时的提示语 |
让图片显示在页面左边
1 | <div align="left"> |
超链接
文字超链接
1 | <a href="http://www.12306.com" title="跳转到http://www.12306.com">www.12306.com</a> |
图片超链接
1 | <a href="http://www.12306.com"> |
表格
三行二列的表格
- <tr> 表示 行
- <td> 表示 列
- border属性表示边框
- width表示宽度(屏幕是1920*1080,那横向就有1920像素)
1 | <table border="1" width="800px"> |
align
水平对齐,valign
垂直对齐,bgcolor
背景颜色colspan
属性表示,这一行横跨了 第一列和第二列rowspan
属性表示,这一列纵跨了 第一行和第二行
列表
无序列表
1 | <ul> |
效果:
- DOTA
- LOL
有序列表
1 | <ol> |
效果:
- 地卜师
- 卡尔
字体和颜色
<font>
标签表示字体
可用 color
属性 和 size
属性
1 | <font color="green">绿色默认大小字体</font> |
<div> 和 <span>
这两种标签都是布局用的,本身没有任何显示效果,通常是用来结合css进行页面布局
- div是块元素,即自动换行,常见的块元素还有h1,table,p
- span是内联元素,即不会换行,常见的内联元素还有img,a,b,strong
例子
1 | <img style="margin-left:50px" src="http://how2j.cn/example.gif"/> |
转义
有时候我们确实想输入 <h> 这几个符号,但是HTML渲染的时候会自动把他们渲染成元素,而使我们看不到,这时候就要用转义。
显示 | 转义 |
---|---|
空格 | |
< | < |
> | > |
& | & |
" (引号) | " |
' (撇号)(IE不支持) | ' |
文本框
<input>
标签中的 type 属性,设置为 text 是文本框, password 是密码框
- 属性
disabled="disabled"
可以让文本框只输出,不能输入 - 属性
id='id'
可以给这个标签添加唯一id号
有初始值的文本框
1 | <input type="text" value="666"> |
获取文本框的值
1 | document.getElementById(id).value; |
如果需要类型转换,对整体做 parseInt(); 方法
给文本框赋值
1 | var d = 66; |
有提示语的文本框(HTML5 only)
1 | <input type="text" placeholder="请输入账号"> |
密码框
1 | <input type="password"> |
选择框
<input>
标签中的 type 属性,设置为 radio
是单选, checkbox
是复选。
单选框
checked
属性表示默认选中name
属性表示同一组
1 | 是<input type="radio" name="yesOrNo" value="是" > |
是 否
复选框
1 | <input type="checkbox" name="Ojbk" value="jerry" > |
jerry calm superman
下拉列表
<select>
标签表示一个下拉列表, <option>
标签是下拉列表的每个项
multiple="multiple"
属性表示可以多选,按ctrl或shift进行多选selected="selected"
属性表示默认选中
1 | <select multiple="multiple" selected="selected" > |
单选 多选(按住ctrl)
按钮
使用<input>标签
<input>
标签中的 type 属性,设置为 button
是 按钮
1 | <input type="button" value="我是按钮"> |
- 注意:普通按钮不具备在表单中提交的功能,如要提交,用
type="submit"
,见下文。
<input>
标签中的 type 属性,设置为 reset
,可以把输入框的改动复原
1 | <input type="reset" value="重置"> |
使用<button>标签
<button></button>
即按钮标签,与<input type="button">
不同的是,<button>
标签功能更为丰富。按钮标签里的内容可以是文字也可以是图像
- 如果
<button>
的type="submit"
,那么它就具备提交form的功能
1 | <button><img src="http://how2j.cn/example.gif"/></button> |
效果:
表单(form)
<form>
用于向服务器提交数据,比如账号密码
action
属性表示要提交的服务器页面地址method
属性表示HTTP方法(get or post)
1 | <form method="get" action="http:/127.0.0.1/login.jsp"> |
> 通常,我们提交一些文本数据,可以用 get 方法,而且数据会在浏览器地址栏显示出来。但是假若我们想提交二进制数据,比如上传文件,就必须用post。此外,为了安全起见,登录功能也要用post
- 如果要提交图片,把 input 标签的type属性改为 image
表单中 id 跟 name 的区别
name是传到服务器被服务器识别的
id是HTML中该元素的唯一标识
文本域
<textarea>
标签表示文本域
cols
和rows
表示宽高
1 | <textarea cols="15" rows="5">abc |
如何去除两个紧邻元素的空格?
当我们想让两张图片紧挨着,如:
1 | <img id="1" src="../static/icon/star_hollow_hover.png"> |
却发现中间多了一个空格。去除方法是:在父div上添加font-size: 0
1 | <div id="img_group" style="font-size: 0;"> |
HTML页面调试
- Chrome F12 开发者选项
- 上传你的HTML页面到 https://validator.w3.org/