[转载]HTML基础

这篇文章介绍了HTML的基础知识,包括初识WEB、认识HTML、HTML常用标签、表格、列表、表单、面试题等。其中讲解了浏览器内核、结构标准、表现标准和行为标准以及超文本标记语言的含义和用法。同时,文章重点介绍了页面的语义化、标签的分类以及属性的用法和取值。最后,文章涵盖了请求和响应缓存机制的内容,以及标签的语义化对代码的阅读和维护的影响。
文章转载自HTML基础 by安知鱼

初识 WEB

让我们先来了解一下什么是 web

认识web

网页 主要是由文字、图像超链接等元素构成,当然除了这些元素,网页中还可以包括音频、视频以及 Flash 等。

浏览器 是网页显示、运行的平台。

浏览器内核 (排版引擎、解释引擎、渲染引擎)

负责读取网页内容,整理讯息,计算网页的显示方式并显示页面。

浏览器内核备注
IETridentIE、猎豹安全、360 极速浏览器、百度浏览器
firefoxGecko可惜这几年已经没落了,打开速度慢、升级频繁、猪一样的队友 flash、神一样的对手 chrome。
Safariwebkit现在很多人错误地把 webkit 叫做 chrome 内核(即使 chrome 内核已经是 blink 了)。苹果感觉像被别人抢了媳妇,都哭晕在厕所里面了。
chromeChromium/Blink在 Chromium 项目中研发 Blink 渲染引擎(即浏览器核心),内置于 Chrome 浏览器之中。Blink 其实是 WebKit 的分支。大部分国产浏览器最新版都采用 Blink 内核。二次开发
Operablink现在跟随 chrome 用 blink 内核。
Web标准

构成👉 结构标准,表现标准和行为标准

  • 结构标准用于对网页元素进行整理和分类(HTML)
  • 表现标准用于设置网页元素的版式、颜色、大小等外观属性(CSS)
  • 行为标准用于对网页模型的定义及交互的编写(JavaScript)

也就是 结构+表现+行为

Web 标准的优点👇

  • 易于维护:只需更改 CSS 文件,就可以改变整站的样式
  • 页面响应快:HTML 文档体积变小,响应时间短
  • 可访问性:语义化的 HTML(结构和表现相分离的 HTML)编写的网页文件,更容易被屏幕阅读器识别
  • 设备兼容性:不同的样式表可以让网页在不同的设备上呈现不同的样式
  • 搜索引擎:语义化的 HTML 能更容易被搜索引擎解析,提升排名

初识 HTML

HTML(Hyper Text Markup Language):超文本标记语言

所谓超文本,有 2 层含义:

  • 它可以加入图片、声音、动画、多媒体等内容(超越文本限制
  • 不仅如此,它还可以从一个文件跳转到另一个文件,与世界各地主机的文件连接(超级链接文本)。
HTML规范

HTML 骨架格式

html
1
2
3
4
5
6
7
8
9
10
<!-- 页面中最大的标签 根标签 -->
<html>
<!-- 头部标签 -->
<head>
<!-- 标题标签 -->
<title></title>
</head>
<!-- 文档的主体 -->
<body></body>
</html>

团队约定大小写

  • HTML 标签名、类名、标签属性和大部分属性值统一用小写

HTML 元素标签分类

  • 常规元素(双标签)
  • 空元素(单标签)
html
1
2
3
4
5
常规元素(双标签)
<标签名> 内容 </标签名> 比如<body>我是文字</body>

空元素(单标签)
<标签名 /> 比如 <br /><br>

HTML 标签关系

  • 嵌套关系父子级包含关系
  • 并列关系兄弟级并列关系
    • 如果两个标签之间的关系是嵌套关系,子元素最好缩进一个 tab 键的身位(一个 tab 是 4 个空格)。如果是并列关系,最好上下对齐。

文档类型<!DOCTYPE >

文档类型用来说明你用的 XHTML 或者 HTML 是什么版本。<!DOCTYPE html> 告诉浏览器按照 HTML5 标准解析页面。

页面语言 lang

lang指定该 html 标签内容所用的语言

html
1
2
3
<html lang="en">
en 定义语言为英语 zh-CN定义语言为中文
</html>

lang 的作用

  • 根据根据 lang 属性来设定不同语言的 css 样式,或者字体
  • 告诉搜索引擎做精确的识别
  • 让语法检查程序做语言识别
  • 帮助翻译工具做识别
  • 帮助网页阅读程序做识别

字符集

字符集(Character set)是多个字符的集合,计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能够识别和存储各种文字。

  • UTF-8 是目前最常用的字符集编码方式
  • 让 html 文件是以 UTF-8 编码保存的, 浏览器根据编码去解码对应的 html 内容。
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(请求和响应遵循的缓存机制)
html
1
<meta name="viewport" content="width=device-width, initial-scale=1.0" />

HTML 标签的语义化

  • 方便代码的阅读和维护,样式丢失的时候能让页面呈现清晰的结构。
  • 有利于 SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
  • 方便其他设备解析,如盲人阅读器根据语义渲染网页

拓展 <base> 标签:规定页面上所有链接的默认 URL 和设置整体链接的打开状态

html
1
2
3
4
5
6
7
8
<head>
<base href="http://www.baidu.com" target="_blank" />
<base target="_self" />
</head>
<body>
<a href="">测试</a>
跳转到 百度
</body>

HTML 常用标签

下面列举一些常用标签

常用标签

排版标签

主要和 css 搭配使用,显示网页结构的标签,是网页布局最常用的标签。

  • 标题标签 h(h1~h6)
  • 段落标签 p,可以把 HTML 文档分割为若干段落
  • 水平线标签 hr
  • 换行标签 br
  • div 和 span 标签:是没有语义的,是我们网页布局最主要的 2 个盒子。

表现标签

  • bstrong 文字以粗体显示
  • iem 文字以斜体显示
  • sdel 文字以加删除线显示
  • uins 文字以加下划线显示

标签属性(行内式)

使用 HTML 制作网页时,如果想让 HTML 标签提供更多的信息,可以使用 HTML 标签的属性加以设置。

html
1
2
<标签名 属性1="属性值1" 属性2="属性值2" …> 内容 </标签名>
<手机 颜色="红色" 大小="5寸"> </手机>

图像标签 img

注意:

  • 标签可以拥有多个属性,必须写在开始标签中,位于标签名后面。
  • 属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开。
  • 采取 键值对 的格式 key=”value” 的格式
plaintext
1
<img src="wg.jpg" width="300" height="300" border="3" title="这是个小乌龟" />

链接标签(重点)

html
1
2
<a href="跳转目标" target="目标窗口的弹出方式">文本或图像</a>
target="_self" 默认窗口弹出方式 target="_blank" 新窗口弹出
属性作用
href用于指定链接目标的 url 地址,(必须属性)当为标签应用 href 属性时,它就具有了超链接的功能
target用于指定链接页面的打开方式,其取值有_self 和_blank 两种,其中_self 为默认值,_blank 为在新窗口中打开方式。

src 和 href 的区别

一句话概括:src 是引入资源的 href 是跳转 url 的

  1. src 用于替换当前元素,href 用于在当前文档和引用资源之间确立联系。
  2. src 是 source 的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求 src 资源时会将其指向的资源下载并应用到文档内,例如 js 脚本,img 图片和 frame 等元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将 js 脚本放在底部而不是头部。
  3. href 是 Hypertext Reference 的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接。如果我们在文档中添加那么浏览器会识别该文档为 css 文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么建议使用 link 方式来加载 css,而不是使用@import 方式。

注意

  1. 外部链接 需要添加 http:// www.baidu.com
  2. 内部链接 直接链接内部页面名称即可 比如 < a href=”index.html”> 首页
  3. 如果当时没有确定链接目标时,通常将链接标签的 href 属性值定义为“#”(即 href=”#”),表示该链接暂时为一个空链接。
  4. 不仅可以创建文本超链接,在网页中各种网页元素,如图像、表格、音频、视频等都可以添加超链接。

锚点定位 :通过创建锚点链接,用户能够快速定位到目标内容。

html
1
2
3
4
5
6
7
1. 使用相应的id名标注跳转目标的位置。 (找目标)
<h3 id="two">第2集</h3>

2. 使用
<a href="#id名">链接文本</a>
创建链接文本(被点击的)
<a href="#two"></a>

注释标签

html
1
2
<!-- 注释语句 -->
快捷键是: ctrl + / 或者 ctrl +shift + /

团队约定:注释内容前后各一个空格字符,注释位于要注释代码的上面,单独占一行

路径

其他知识

常用标签

预格式化文本 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 关联起来。

表格

表格

现在还是较为常用的一种标签,但不是用来布局,常见显示、展示表格式数据。因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据的时候表格运用是否熟练就显得很重要,一个清爽简约的表格能够把繁杂的数据表现得很有条理。

创建表格

html
1
2
3
4
5
6
7
<table>
<tr>
<td>单元格内的文字</td>
...
</tr>
...
</table>

table、tr、td,他们是创建表格的基本标签,缺一不可

  • table 用于定义一个表格标签。
  • tr 标签 用于定义表格中的行,必须嵌套在 table 标签中。
  • td 用于定义表格中的单元格,必须嵌套在<tr></tr>标签中。
  • 字母 td 指表格数据(table data),即数据单元格的内容,现在我们明白,表格最合适的地方就是用来存储数据的。td 像一个容器,可以容纳所有的元素。


表头单元格标签 th:一般表头单元格位于表格的第一行或第一列,并且文本加粗居中,只需用表头标签<th></th>替代相应的单元格标签<td></td>即可。
表格标题 caption:通常这个标题会被居中且显示于表格之上。caption 标签必须紧随 table 标签之后。这个标签只存在 表格里面才有意义。你是风儿我是沙

html
1
2
3
<table>
<caption>我是表格标题</caption>
</table>

表格属性


三参为 0,平时开发的我们这三个参数 border cellpadding cellspacing 为 0

合并单元格

合并的顺序我们按照 先上 后下 先左 后右 的顺序 ,合并完之后需要删除多余的单元格。

  • 跨行合并:rowspan=”合并单元格的个数”
  • 跨列合并:colspan=”合并单元格的个数”

总结表格

标签名定义说明
<table></table>表格标签就是一个四方的盒子
<tr></tr>表格行标签行标签要再 table 标签内部才有意义
<td></td>单元格标签单元格标签是个容器级元素,可以放任何东西
<th></th>表头单元格标签它还是一个单元格,但是里面的文字会居中且加粗
<caption></caption>表格标题标签表格的标题,跟着表格一起走,和表格居中对齐
clospan 和 rowspan合并属性用来合并单元格的

表格划分结构

    对于比较复杂的表格,表格的结构也就相对的复杂了,所以又将表格分割成三个部分:题头、正文和脚注。而这三部分分别用:thead,tbody,tfoot 来标注, 这样更好的分清表格结构。

注意

  1. <thead></thead>:用于定义表格的头部。用来放标题之类的东西。<thead> 内部必须拥有<tr> 标签!
  2. <tbody></tbody>:用于定义表格的主体。放数据本体 。
  3. <tfoot></tfoot>放表格的脚注之类。
  4. 以上标签都是放到 table 标签中。

列表

列表
容器里面装载着结构,样式一致的文字或图表的一种形式,叫列表。

列表最大的特点就是整齐 、整洁、 有序,跟表格类似,但是它可组合自由度会更高。

列表

无序列表 ul

  • <ul></ul>中只能嵌套<li></li>,直接在<ul></ul>标签中输入其他标签或者文字的做法是不被允许的。
  • <li>与</li>之间相当于一个容器,可以容纳所有元素。
html
1
2
3
4
5
6
<ul>
<li>列表项1</li>
<li>列表项2</li>
<li>列表项3</li>
......
</ul>

有序列表 ol

  • <ol>标签中的 type 属性值为排序的序列号,不添加 type 属性时,有序列表默认从数字 1 开始排序。
  • 常用的 type 属性值分别为是 1,a,A,i,I
  • <ol reversed=”reversed”>中的 reversed 属性能够让有序列表中的序列倒序排列。
  • <ol start=”3”>中的 start 属性值为 3,有序列表中的第一个序列号将从 3 开始排列。
html
1
2
3
4
5
<ol type="A">
<li>列表项1</li>
<li>列表二</li>
<li>列表三</li>
</ol>

自定义列表 dl

定义列表常用于对术语或名词进行解释和描述,定义列表的列表项前没有任何项目符号。

html
1
2
3
4
5
6
7
8
9
10
<dl>
<dt>名词1</dt>
<dd>名词1解释1</dd>
<dd>名词1解释2</dd>
...
<dt>名词2</dt>
<dd>名词2解释1</dd>
<dd>名词2解释2</dd>
...
</dl>