HTML简介

137 阅读4分钟

概述

HTML 是网页使用的语言,定义了网页的结构和内容。浏览器访问网站,其实就是从服务器下载 HTML 代码,然后渲染出网页。

HTML 的全名是“超文本标记语言”,最大特点就是支持超链接,点击链接就可以跳转到其他网页,从而构成了整个互联网。

一个简单网页的 HTML 源码。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <title>网页标题</title>
</head>
<body>
  <p>Hello World</p>
</body>
</html>

HTML、CSS、JavaScript三者任务

HTML 语言定义网页的结构和内容,CSS 样式表定义网页的样式,JavaScript 语言定义网页与用户的互动行为。

网页的基本概念

标签

标签放在一对尖括号里面,大多数标签都是成对出现的.HTML 标签名是大小写不敏感。不过,一般习惯都是使用小写。 HTML 语言忽略缩进和换行,内容的缩进和换行,主要靠 CSS 来实现

<title>这是标题标签</title>
<p>这是段落标签</p>
<div>div容器</div>
<meta charset="utf-8"> <!--单行注释,<meta>标签就没有结束标签 -->

<div>
  <p>
    这就是标签嵌套
  </p>
 </div>
<!-- 这是
多行
注释
 -->

元素

浏览器渲染网页时,会把 HTML 源码解析成一个标签树,每个标签都是树的一个节点(node)。这种节点就称为网页元素(element)。所以,“标签”和“元素”基本上是同义词,只是使用的场合不一样:标签是从源码角度来看,元素是从编程角度来看,比如<p> 标签对应网页的p元素。

嵌套的标签就构成了网页元素的层级关系。

<div><p>hello world</p></div>

上面代码中,div元素内部包含了一个p元素。上层元素又称为“父元素”,下层元素又称为“子元素”,即div是p的父元素,p是div的子元素。

块级元素、行内元素

所有元素可以分成两大类:块级元素(block)和行内元素(inline)。

块级元素默认占据一个独立的区域,在网页上会自动另起一行,占据 100% 的宽度。

<p>hello</p>
<p>world</p>

上面代码中,p元素是块级元素,因此浏览器会将内容分成两行显示。

行内元素默认与其他元素在同一行,不产生换行。比如,span就是行内元素,通常用来为某些文字指定特别的样式。

<span>world</span>
<span>hello</span>

上面代码中,span元素是行内元素,因此浏览器会将两行内容放在一行显示。

属性

属性(attribute)是标签的额外信息,使用空格与标签名和其他属性分隔。

<img src="demo.jpg" width="500">

上面代码中, <img> 标签有两个属性: src 和 width 。

属性可以用等号指定属性值,比如上例的demo.jpg就是src的属性值。属性值一般放在双引号里面,这不是必需的,但推荐总是使用双引号。

注意,属性名是大小写不敏感的,onclick和onClick是同一个属性。

网页的基本标签

符合 HTML 语法标准的网页,应该满足下面的基本结构。

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="utf-8">
  <title></title>
</head>
<body>
</body>
</html>

分行写,只是为了提高可读性。

表示文档类型,告诉浏览器如何解析网页。

<html>

标签树结构的顶层节点,该标签的lang属性,表示网页内容默认的语言。

<html lang="zh-CN">

上面代码表示,网页是中文内容。如果是英文内容, zh-CN 要改成 en 。

<head>

<head>标签是一个容器标签,用于放置网页的元信息。它的内容不会出现在网页上,而是为网页渲染提供额外信息。它的子元素一般有下面七个,后文会一一介绍。

  • <meta>:设置网页的元数据。
  • <link>:连接外部样式表。
  • <title>:设置网页标题。
  • <style>:放置内嵌的样式表。
  • <script>:引入脚本。
  • <noscript>:浏览器不支持脚本时,所要显示的内容。
  • <base>:设置网页内部相对 URL 的计算基准。

<meta>

一个<meta>标签就是一项元数据,网页可以有多个<meta>。<meta>标签约定放在<head>内容的最前面。

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Page Title</title>
</head>

<meta>标签有五个属性,分别是:

  1. charset 属性:用来指定网页的编码方式

  2. name属性表示元数据的名字,content属性表示元数据的值。

<head>
  <meta name="description" content="HTML 语言入门">
  <meta name="keywords" content="HTML,教程">
  <meta name="author" content="张三">
</head>

上面代码包含了三个元数据:description是网页内容的描述,keywords是网页内容的关键字,author是网页作者。

  1. http-equiv属性用来覆盖 HTTP 回应的头信息字段,content属性是对应的字段内容。
<meta http-equiv="Content-Type" content="Type=text/html; charset=utf-8">
<meta http-equiv="refresh" content="30">
<meta http-equiv="refresh" content="30;URL='http://website.com'">

<title>

<title>标签用于指定网页的标题,会显示在浏览器窗口的标题栏。

<head>
  <title>网页标题</title>
</head>

<body>

<body>标签是一个容器标签,用于放置网页的主体内容。

<html>
  <head>
    <title>网页标题</title>
  </head>
  <body>
    <p>hello world</p>
  </body>
</html>

空格和换行

标签内容的头部和尾部的空格,一律忽略不计。标签内容里面的多个连续空格(包含制表符\t),会被浏览器合并成一个。HTML 源码里面的换行,不会产生换行效果。