Skip to content

HTML 基础

1. HTML 基础

1.1 HTML 标签

标签又称元素,是 HTML 的基本组成单位。从直观上,可以将标签分为双标签与单标签,绝大多数标签是双标签:

  • 双标签:<标签名>标签体</标签名>,第一个叫开始(开放)标签,第二个叫结束(闭合)标签。
  • 单标签:<标签名/>,其中 / 可省略。

标签名不区分大小写,但开发中推荐小写,更加规范。

HTML
<marquee>hello world!</marquee> <!-- 双标签 -->
<input> <!-- 单标签 -->

1.2 标签属性

标签属性通常写在开始标签和单标签中,以 属性名:属性值 的形式出现,但有些特殊属性,以属性名的形式单独出现。

标签属性值应始终被包括在引号内,可使用单/双引号,并且属性、属性值对大小写不敏感,开发中推荐小写。

HTML
<marquee loop="1">hello world!</marquee>
<input disabled> <!-- 只有属性值 -->

1.3 HTML 基本结构

html 标签是最外围标签,限定了文档的开始点和结束点。

head 标签用于定义文档头部,描述了文档的各种属性和信息,包括文档的标题,在 Web 中的位置以及和其它文档的关系。

body 标签定义文档的主体,包含了文档的所有内容(比如文本、超链接、图像、表格等),是用户可以直接观看到的内容。

1.4 HTML 文档声明

DOCTYPE 是文档类型(document type)的缩写,声明于 HTML 文档的最前面,是网页的必备组成部分,以避免浏览器的怪异模式。

1.5 HTML 编码

可以通过 meta 标签配合 charset 属性指定字符编码。

1.6 HTML 设置语言

html 标签中可以通过 lang 属性设置语言,浏览器显示对应的翻译提示,也有利于搜索引擎优化。

1.7 HTML 标准结构

HTML
<!DOCTYPE html>
<html lang="zh-CN">
  <head>
    <meta charset="utf-8">
    <title>hello</title>
  </head>
  <body>
    <p>这是一段文字</p>
  </body>
</html>

2. 标签

2.1 排版标签

  • <h1><h6> 是标题标签,<h1> 最好只写一个,其它能多写。
  • <p> 是段落标签。
  • div 标签没有整体含义,用于整体布局。
  • 标题标签不能互相嵌套,段落标签内不能有 <h1><h6><p> 以及 <div>

2.2 语义化标签

语义化标签就是用特定标签去表达特定的含义,比如标题标签、段落标签,优势如下:

  • 代码结构清晰,可读性强。
  • 有利于 SEO 优化。
  • 方便设备解析(如屏幕阅读器)。

2.3 块级元素和行内元素

  • 块级元素(如排版标签)独占一行,行内元素(如 <input>)不独占一行。
  • 块级元素中能写行内元素和几乎全部的块级元素,行内元素中能写行内元素,但不能写块级元素。
  • <h1><h6> 不能相互嵌套,<p> 中不要写块级标签。

2.4 文本标签

文本标签通常用于包裹词汇、短语等,写在排版标签里,相对排版标签来说,文本标签更微观(词汇、短语),常见文本标签有:

  • <em>:表示要着重阅读的内容,双标签。
  • <strong>:十分重要的内容,语气比 <em> 强,双标签。
  • <span>:没有语义,用于包裹短语的通用容器,双标签。

2.5 图片标签

图片标签: <img>,单标签。

常用属性:

  • src:图片路径。
  • alt:图片描述,便于搜索引擎了解图片内容,当图片无法访问时,部分浏览器会显示 alt 的值。
  • width:图片宽度,设定后高度会等比例缩放。
  • height:图片高度,设定后宽度会等比例缩放。

常见图片格式:

  • jpg:一种有损的压缩格式,支持颜色丰富、占用空间较小,不支持透明背景,适合对细节没有极高要求的场景。
  • png:一种无损压缩格式、支持颜色丰富、支持透明背景,占用空间略大。
  • bmp:不进行压缩的格式,保留的细节更多,占用空间极大。
  • gif:仅支持256种颜色、支持简单透明背景、支持动图。
  • webp:专门用来在网页中呈现图片,具备上述几种格式的优点,但兼容性不太好。
  • base64 格式:把图片进行 base64 编码,形成一段文本,直接作为 img 标签的 src 属性值即可,使用场景:比较小的,需要和网页一起加载的图片。

2.6 超链接

超链接:<a> 标签,双标签。

常用属性:

  • href:要跳转的具体路径。
  • target:跳转时如何打开页面,默认为 _self,在本页中打开,设为 _blank,在新标签页打开。

注意:<a> 标签是行内元素,但它可以包裹除它之外的任何元素。

跳转文件
可以通过 <a> 标签来打开文件,有些格式(jpg、MP4、GIF、PDF等)浏览器能直接打开,浏览器不能打开的文件,会自动触发下载。

如果想强制触发下载,需要设置 download 属性,属性值即为下载文件的名称,如:

html
<a href="./resource/天下无贼.mp4" target="_self" download="电影.mp4">下载电影</a>

跳转锚点
锚点就是网页中的一个标记点,通过 <a> 标签可以跳转到网页的指定位置。

具体方式:

  1. 设置锚点:
html
<!-- 方式一:a标签配合name属性 -->
<a name="test1"></a>
<!-- 方式二:其它标签配合id属性 -->
<a id="test2">锚点位</a>
<!-- 具有 href 属性的是超链接,具有 name 属性的是锚点 -->
<!-- name 和 id 都区分大小写,且 id 最好别是数字开头 -->
  1. 跳转锚点:
html
<!-- 跳转到test1锚点 -->
<a href="#test1">去test1锚点位</a>
<!-- 跳转到页面顶部 -->
<a href="#">回到顶部</a>
<!-- 刷新本页面 -->
<a href=" ">刷新本页面</a>
<!-- 执行一段js,不知道执行什么,可以留空,javascript: ; -->
<a href="javascript:alert(1);">点我弹窗</a>

唤起指定应用

html
<a href="tel:10010">电话联系</a
<a href="mailto:1234567@qq.com">邮件联系</a
<a href="sms:1234567@qq.com">短信联系</a

2.7 列表

有序列表

html
<ol>
  <li>把冰箱门打开</li>
  <li>把大象放进去</li>
  <li>把冰箱门关上</li>
</ol>

无序列表

html
<ul>
  <li>长沙</li>
  <li>衡阳</li>
  <li>岳阳</li>
</ul>

列表嵌套
可以在 <li> 标签中嵌套子列表,建议最多嵌套三层:

html
<ul>
  <li>长沙</li>
  <li>
    <span>衡阳</span>
    <ul>
      <li>蒸湘区<li>
      <li>石鼓区<li>
      <li>高新区<li>
    </ul>
  </li>
  <li>岳阳</li>
</ul>

<li> 标签最好写在 <ul><ol> 中,不要单独使用。

自定义列表
自定义列表就是包含术语名称和术语描述的列表,一个 <dl> 就是一个自定义列表,dt 就是术语名称,dd 就是术语描述(可以有多个)。

html
<dl>
  <dt>做笔记</dt>
  <dl>笔记可以是电子版</dl>
  <dl>笔记也可以是纸质版</dl>
</dl>

2.8 表格

表格:<table>,双标签。

常用属性:

  • width:设置表格宽度。
  • height:设置表格最小高度,表格最终高度可能比设置的大。
  • border:设置表格边框宽度,仅控制最外侧边框,不控制单元格边框。
  • cellspacing:设置单元格之间的间距。

表格标题:<caption>,双标签。

表格头部:<thead>,双标签。

常用属性:

  • height:设置表格头部高度。
  • align:设置单元格水平对齐方式(left/center/rught)。
  • valign:设置单元格的垂直对齐方式(top/middle/bottom)。

表格主体:<tbody>,双标签,常用属性与 thead 相同。

表格注脚:tfoot<>,双标签,常用属性与 thead 相同。

表格行:<tr>,双标签,常用属性与 thead 相同。

单元格:<th><td>,双标签,表头中用 <th>,表格主体、脚注中用 <td>

常用属性:

  • width:设置单元格宽度,同列单元格均受影响。
  • height:设置单元格高度,同行单元格均影响。
  • align:设置单元格水平对齐方式。
  • valign:设置单元格垂直对齐方式。
  • rowspan:指定要跨的行数。
  • colspan:指定要跨的列数。

2.9 几个常用标签

  • <br>:换行。
  • <hr>:分割线。
  • <pre>:按原文显示,不会对空格进行处理,通常用来嵌入代码。

2.10 表单

通过 <form> 标签来创建表单,常用属性如下:

  • action:用于指定表单的提交地址。
  • target:用于控制表单提交后如何打开页面,类似 <a> 标签。
  • method:用于控制表单的提交方式,GETPOST

表单常用控件 文本框和密码框:将 input 标签的 type 属性设为 text 则为文本框,设为 password 则为密码输入框,常用属性如下:

  • name:设置数据的名称。
  • value:设置输入框默认输入值。
  • maxlength:输入框最大可输入长度。

单选框:将 input 标签的 type 属性设为 radio 则为单选框,常用属性如下:

  • name 属性:数据名称,想要单选效果,多个radioname属性值要一致。
  • value:提交的数据值,必须设置。
  • checked:让该单选框默认选中。
html
<input type="radio" name="sex" value="male">男
<input type="radio" name="sex" value="fmale">女

复选框:将 input 标签的 type 属性设为 checkbox 则为复选框,常用属性如下:

  • name 属性:数据名称。
  • value:提交的数据值,必须设置。
  • checked:让该复选框默认选中。
html
<input type="checkbox" name="hobby" value="swiming">游泳
<input type="checkbox" name="hobby" value="running">跑步
<input type="checkbox" name="hobby" value="shopping">购物

隐藏域:将 input 标签的 type 属性设为 hidden,是用户不可见的区域,作用是提交表单时携带一些固定数据,常用属性如下:

  • name:数据名称。
  • value:提交的数据值。
html
<input type="hidden" name="tag" value="100">

提交按钮:将 input 标签的 type 属性设为 submit,与 <button> 标签的区别如下:

  • <input> 标签编写的提交按钮要使用 value 属性指定按钮文字。
  • 二者都不要指定 name 属性。
  • <button> 标签 type 属性默认值是 submit
html
<input type="submit" value="提交">
<button>提交</button>

重置按钮:将 input 标签的 type 属性设为 reset 则为重置按钮,通过 value 属性指定按钮文字,也可以将 button 标签的 type 属性设为 reset 来设置重置按钮,同样不需要 name 属性。

html
<input type="reset" value="重置">
<button type="reset">提交</button>

普通按钮:将 button 标签的 type 属性设为 button 则为普通按钮,若不写 type 会引起表单提交。

文本域:<textarea> 标签,双标签,常用属性如下:

  • rows 属性指定默认显示的行数,cols 属性指定默认显示的列数。
  • 不能指定 type 属性,其它属性与普通文本框一致。

下拉框:<select><option> 标签,都是双标签,常用属性如下:

  • <select> 标签中设置 name 属性指定数据名,在 <option> 标签中设定 value 属性,没设置则提交 <option> 标签中间的文字,设置了则提交 value 值。
  • <option> 标签设置 selected 属性,该标签默认被选中。

禁用表单控件
给表单控件标签设置 disabled 可以禁用该控件。

label 标签
label 标签可与表单控件相关联,关联之后点击文字,与之对应的表单控件就会获取焦点。

两种关联方式:

  1. label 标签的 for 属性的值等于表单控件的 id
  2. 把表单控件和文字套在 label 标签里。

2.11 框架标签

框架标签:<iframe>,双标签。通过框架标签,可以在网页中嵌入广告,也可以与超链接和表单配合,展示不同的内容,常用属性如下:

  • name:框架的名字,可以去 a 标签和表单的 target 属性配合使用。
  • widthheight 分别设置宽和高,frameborder 可以设置是否显示边框。

2.12 字符实体

通过字符实体,可以渲染一些特殊的符号,如大于号,小于号,常见的字符实体有:空格 &nbsp;,大于号 &gt;,小于号 &lt;,版权 &copy;, 元 &yen 等。

2.13 HTML 全局属性

常见的全局属性有 id, classstyledirtitlelang,其中 dir 可以控制内容的方向,title 可以给标签设置一个文字提示,lang 可以给标签设置语言,这些属性都不要在 <head><meta><script><style><title> 标签中使用。

2.14 meta 元信息

配置字符编码:

html
<meta charset="utf-8">

针对 IE 浏览器的兼容性配置:

html
<meta http-equiv='X-UA-Compatible' content="IE-edge>

针对移动端配置:

html
<meta name="viewport" content="width=device-width, initial-scale=1.0">

配置网页关键字:

html
<meta name="keywords" content="8-12个关键字,英文逗号隔开">

配置网页描述信息:

html
<meta name="description" content="对网站的描述">

最后更新于: