这篇文章介绍了HTML的基础知识,包括初识WEB、认识HTML、HTML常用标签、表格、列表、表单、面试题等。其中讲解了浏览器内核、结构标准、表现标准和行为标准以及超文本标记语言的含义和用法。同时,文章重点介绍了页面的语义化、标签的分类以及属性的用法和取值。最后,文章涵盖了请求和响应缓存机制的内容,以及标签的语义化对代码的阅读和维护的影响。
文章转载自HTML基础 by安知鱼
初识 WEB
让我们先来了解一下什么是 web
认识web
网页 主要是由文字、图像
和超链接
等元素构成,当然除了这些元素,网页中还可以包括音频、视频以及 Flash 等。
浏览器 是网页显示、运行的平台。
浏览器内核 (排版引擎、解释引擎、渲染引擎)
负责读取网页内容,整理讯息,计算网页的显示方式并显示页面。
浏览器 | 内核 | 备注 |
---|---|---|
IE | Trident | IE、猎豹安全、360 极速浏览器、百度浏览器 |
firefox | Gecko | 可惜这几年已经没落了,打开速度慢、升级频繁、猪一样的队友 flash、神一样的对手 chrome。 |
Safari | webkit | 现在很多人错误地把 webkit 叫做 chrome 内核(即使 chrome 内核已经是 blink 了)。苹果感觉像被别人抢了媳妇,都哭晕在厕所里面了。 |
chrome | Chromium/Blink | 在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。Blink 其实是 WebKit 的分支。大部分国产浏览器最新版都采用 Blink 内核。二次开发 |
Opera | blink | 现在跟随 chrome 用 blink 内核。 |
Web标准
构成👉 结构标准,表现标准和行为标准
结构标准
用于对网页元素进行整理和分类(HTML)表现标准
用于设置网页元素的版式、颜色、大小等外观属性(CSS)行为标准
用于对网页模型的定义及交互的编写(JavaScript)
也就是 结构+表现+行为
Web 标准的优点👇
易于维护
:只需更改 CSS 文件,就可以改变整站的样式页面响应快
:HTML 文档体积变小,响应时间短可访问性
:语义化的 HTML(结构和表现相分离的 HTML)编写的网页文件,更容易被屏幕阅读器识别设备兼容性
:不同的样式表可以让网页在不同的设备上呈现不同的样式搜索引擎
:语义化的 HTML 能更容易被搜索引擎解析,提升排名
初识 HTML
HTML(Hyper Text Markup Language):超文本标记语言
所谓超文本,有 2 层含义:
- 它可以加入图片、声音、动画、多媒体等内容(
超越文本限制
) - 不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接(
超级链接文本
)。
HTML规范
HTML 骨架格式
1 | <!-- 页面中最大的标签 根标签 --> |
团队约定大小写
- HTML 标签名、类名、标签属性和大部分属性值统一用
小写
HTML 元素标签分类
- 常规元素(双标签)
- 空元素(单标签)
1 | 常规元素(双标签) |
HTML 标签关系
嵌套关系
父子级包含关系并列关系
兄弟级并列关系- 如果两个标签之间的关系是
嵌套关系
,子元素最好缩进一个 tab 键的身位(一个 tab 是 4 个空格)。如果是并列关系
,最好上下对齐。
- 如果两个标签之间的关系是
文档类型<!DOCTYPE >
文档类型用来说明你用的 XHTML 或者 HTML 是什么版本。<!DOCTYPE html> 告诉浏览器按照 HTML5 标准解析页面。
页面语言 lang
lang
指定该 html 标签内容所用的语言
1 | <html lang="en"> |
lang 的作用
- 根据根据 lang 属性来设定不同语言的 css 样式,或者字体
- 告诉搜索引擎做精确的识别
- 让语法检查程序做语言识别
- 帮助翻译工具做识别
- 帮助网页阅读程序做识别
字符集
字符集(Character set)是多个字符的集合,计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。
- UTF-8 是目前最常用的字符集编码方式
- 让 html 文件是以 UTF-8 编码保存的, 浏览器根据编码去解码对应的 html 内容。
1 | <meta charset="UTF-8" /> |
meta viewport 的用法
通常 viewport 是指视窗、视口。浏览器上(也可能是一个 app 中的 webview)用来显示网页的那部分区域。在移动端和 pc 端视口是不同的,pc 端的视口是浏览器窗口区域,而在移动端有三个不同的视口概念:布局视口、视觉视口、理想视口
meta 有两个属性 name 和 http-equiv
name 属性的取值
- keywords(关键字) 告诉搜索引擎,该网页的关键字
- description(网站内容描述) 用于告诉搜索引擎,你网站的主要内容。
- viewport(移动端的窗口)
- robots(定义搜索引擎爬虫的索引方式) robots 用来告诉爬虫哪些页面需要索引,哪些页面不需要索引
- author(作者)
- generator(网页制作软件)
- copyright(版权)
http-equiv 有以下参数
http-equiv相当于 http 的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容
- content-Type 设定网页字符集(Html4 用法,不推荐)
- Expires(期限) ,可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。
- Pragma(cache 模式),是用于设定禁止浏览器从本地机的缓存中调阅页面内容,设定后一旦离开网页就无法从 Cache 中再调出
- Refresh(刷新),自动刷新并指向新页面。
- cache-control(请求和响应遵循的缓存机制)
1 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
HTML 标签的语义化
- 方便代码的阅读和维护,样式丢失的时候能让页面呈现清晰的结构。
- 有利于 SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
- 方便其他设备解析,如盲人阅读器根据语义渲染网页
拓展 <base> 标签:规定页面上所有链接的默认 URL 和设置整体链接的打开状态
1 | <head> |
HTML 常用标签
下面列举一些常用标签
常用标签
排版标签
主要和 css 搭配使用,显示网页结构的标签,是网页布局最常用的标签。
- 标题标签 h(h1~h6)
- 段落标签 p,可以把 HTML 文档分割为若干段落
- 水平线标签 hr
- 换行标签 br
- div 和 span 标签:是没有语义的,是我们网页布局最主要的 2 个盒子。
表现标签
- b和strong 文字以粗体显示
- i和em 文字以斜体显示
- s和del 文字以加删除线显示
- u和ins 文字以加下划线显示
标签属性(行内式)
使用 HTML 制作网页时,如果想让 HTML 标签提供更多的信息,可以使用 HTML 标签的属性加以设置。
1 | <标签名 属性1="属性值1" 属性2="属性值2" …> 内容 </标签名> |
图像标签 img
注意:
- 标签可以拥有多个属性,必须写在开始标签中,位于标签名后面。
- 属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开。
- 采取 键值对 的格式 key=”value” 的格式
1 | <img src="wg.jpg" width="300" height="300" border="3" title="这是个小乌龟" /> |
链接标签(重点)
1 | <a href="跳转目标" target="目标窗口的弹出方式">文本或图像</a> |
属性 | 作用 |
---|---|
href | 用于指定链接目标的 url 地址,(必须属性)当为标签应用 href 属性时,它就具有了超链接的功能 |
target | 用于指定链接页面的打开方式,其取值有_self 和_blank 两种,其中_self 为默认值,_blank 为在新窗口中打开方式。 |
src 和 href 的区别
一句话概括:src 是引入资源的 href 是跳转 url 的
- src 用于替换当前元素,href 用于在当前文档和引用资源之间确立联系。
- src 是 source 的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求 src 资源时会将其指向的资源下载并应用到文档内,例如 js 脚本,img 图片和 frame 等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将 js 脚本放在底部而不是头部。
- href 是 Hypertext Reference 的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接。如果我们在文档中添加那么浏览器会识别该文档为 css 文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么建议使用 link 方式来加载 css,而不是使用@import 方式。
注意
- 外部链接 需要添加
http://
www.baidu.com - 内部链接 直接链接内部页面名称即可 比如 < a href=”index.html”> 首页
- 如果当时没有确定链接目标时,通常将链接标签的 href 属性值定义为“#”(即 href=”#”),表示该链接暂时为一个空链接。
- 不仅可以创建文本超链接,在网页中各种网页元素,如图像、表格、音频、视频等都可以添加超链接。
锚点定位 :通过创建锚点链接,用户能够快速定位到目标内容。
1 | 1. 使用相应的id名标注跳转目标的位置。 (找目标) |
注释标签
1 | <!-- 注释语句 --> |
团队约定:注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行
路径
其他知识
常用标签
预格式化文本 pre 标签
预格式化文本 pre 标签元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。格式化文本就是 ,按照我们预先写好的文字格式来显示页面, 保留空格和换行等。
特殊字符
什么是 XHTML
- XHTML 指可扩展超文本标签语言(EXtensible HyperText Markup Language)。
- XHTML 的目标是取代 HTML。
- XHTML 与 HTML 4.01 几乎是相同的。
- XHTML 是更严格更纯净的 HTML 版本。
- XHTML 是作为一种 XML 应用被重新定义的 HTML,是严格版本的 HTML。例如它要求标签必须小写,标签必须被正确关闭,标签顺序必须正确排列,对于属性都必须使用双引号等。
- XHTML 是一个 W3C 标准。
写 HTML 代码时应注意什么?
- 尽可能少的使用无语义的标签 div 和 span;
- 在语义不明显时,既可以使用 div 或者 p 时,尽量用 p, 因为 p 在默认情况下有上下间距,对兼容特殊终端有利;
- 不要使用纯样式标签,如:b、font、u 等,改用 css 设置。
- 需要强调的文本,可以包含在 strong 或者 em 标签中(浏览器预设样式,能用 CSS 指定就不用他们),strong 默认样式是加粗(不要用 b),em 是斜体(不用 i);
- 使用表格时,标题要用caption,表头用 thead,主体部分用 tbody 包围,尾部用 tfoot 包围。表头和一般单元格要区分开,表头用 th,单元格用 td;
- 表单域要用fieldset标签包起来,并用legend标签说明表单的用途;
- 每个 input 标签对应的说明文本都需要使用label标签,并且通过为 input 设置 id 属性,在 lable 标签中设置 for 来让说明文本和相对应的 input 关联起来。
表格
表格
现在还是较为常用的一种标签,但不是用来布局,常见显示、展示表格式数据
。因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候表格运用是否熟练就显得很重要
,一个清爽简约的表格能够把繁杂的数据表现得很有条理。
创建表格
1 | <table> |
table、tr、td
,他们是创建表格的基本标签,缺一不可
- table 用于定义一个表格标签。
- tr 标签 用于定义表格中的行,必须嵌套在 table 标签中。
- td 用于定义表格中的单元格,必须嵌套在
<tr></tr>
标签中。 - 字母 td 指表格数据(table data),即数据单元格的内容,现在我们明白,表格最合适的地方就是用来存储数据的。td 像一个容器,可以容纳所有的元素。
表头单元格标签 th:一般表头单元格位于表格的第一行或第一列,并且文本加粗居中,只需用表头标签<th></th>替代相应的单元格标签<td></td>即可。
表格标题 caption:通常这个标题会被居中且显示于表格之上。caption 标签必须紧随 table 标签之后。这个标签只存在 表格里面才有意义。你是风儿我是沙
1 | <table> |
表格属性
三参为 0,平时开发的我们这三个参数 border
cellpadding
cellspacing
为 0
合并单元格
合并的顺序我们按照 先上 后下 先左 后右
的顺序 ,合并完之后需要删除多余的单元格。
- 跨行合并:rowspan=”合并单元格的个数”
- 跨列合并:colspan=”合并单元格的个数”
总结表格
标签名 | 定义 | 说明 |
---|---|---|
<table></table> | 表格标签 | 就是一个四方的盒子 |
<tr></tr> | 表格行标签 | 行标签要再 table 标签内部才有意义 |
<td></td> | 单元格标签 | 单元格标签是个容器级元素,可以放任何东西 |
<th></th> | 表头单元格标签 | 它还是一个单元格,但是里面的文字会居中且加粗 |
<caption></caption> | 表格标题标签 | 表格的标题,跟着表格一起走,和表格居中对齐 |
clospan 和 rowspan | 合并属性 | 用来合并单元格的 |
表格划分结构
对于比较复杂的表格,表格的结构也就相对的复杂了,所以又将表格分割成三个部分:题头、正文和脚注。而这三部分分别用:thead,tbody,tfoot 来标注, 这样更好的分清表格结构。
注意
- <thead></thead>:用于定义表格的头部。用来放标题之类的东西。<thead> 内部必须拥有<tr> 标签!
- <tbody></tbody>:用于定义表格的主体。放数据本体 。
- <tfoot></tfoot>放表格的脚注之类。
- 以上标签都是放到 table 标签中。
列表
列表
容器里面装载着结构,样式一致的文字或图表的一种形式,叫列表。
列表最大的特点就是整齐 、整洁、 有序,跟表格类似,但是它可组合自由度会更高。
列表
无序列表 ul
- <ul></ul>中只能嵌套<li></li>,直接在<ul></ul>标签中输入其他标签或者文字的做法是不被允许的。
- <li>与</li>之间相当于一个容器,可以容纳所有元素。
1 | <ul> |
有序列表 ol
- <ol>标签中的 type 属性值为排序的序列号,不添加 type 属性时,有序列表默认从数字 1 开始排序。
- 常用的 type 属性值分别为是 1,a,A,i,I
- <ol reversed=”reversed”>中的 reversed 属性能够让有序列表中的序列倒序排列。
- <ol start=”3”>中的 start 属性值为 3,有序列表中的第一个序列号将从 3 开始排列。
1 | <ol type="A"> |
自定义列表 dl
定义列表常用于对术语或名词进行解释和描述,定义列表的列表项前没有任何项目符号。
1 | <dl> |