HTML简介

HTML是网页的基础,定义了网页的结构和内容。它包括各种标签,如标题、段落、样式、脚本等。HTML5是当前版本,与CSS和JavaScript共同构建网页。学习HTML涉及理解标签的用法、元素层级、属性设置等,同时掌握基本标签如<div>、<p>、<span>等以及它们在网页布局和内容呈现中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML超文本标记语言

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

HTML 的全名是“超文本标记语言”(HyperText Markup Language),上个世纪90年代由欧洲核子研究中心的物理学家蒂姆·伯纳斯-李(Tim Berners-Lee)发明。它的最大特点就是支持超链接,点击链接就可以跳转到其他网页,从而构成了整个互联网。

1999年,HTML 4.01 版发布,成为广泛接受的 HTML 标准。2014年,HTML 5 发布,这是目前正在使用的版本。

浏览器的网页开发,涉及三种技术:HTML、CSS 和 JavaScript。HTML 语言定义网页的结构和内容,CSS 样式表定义网页的样式,JavaScript 语言定义网页与用户的互动行为。HTML 语言是网页开发的基础,CSS 和 JavaScript 都是基于 HTML 才能生效,即使没有这两者,HTML 本身也能使用,可以完成基本的内容展示。

网页的基本概念

标签
网页的 HTML 代码由许许多多不同的标签(tag)构成。学习 HTML 语言,就是学习各种标签的用法。标签用来告诉浏览器,如何处理这段代码。标签的内容就是浏览器所要渲染的、展示在网页上的内容。标签放在一对尖括号里面(比如<title>),大多数标签都是成对出现的,分成开始标签和结束标签,结束标签在标签名之前加斜杠(比如</title>)。但是,也有一些标签不是成对使用,而是只有开始标签,没有结束标签,比如<meta>标签。这种单独使用的标签,通常是因为标签本身就足够完成功能了,不需要标签之间的内容。实际应用中,它们主要用来提示浏览器,做一些特别处理。
嵌套标签:标签可以嵌套。

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

上面代码中,<div>标签内部包含了一个<p>标签。
嵌套时,必须保证正确的闭合顺序,不能跨层嵌套,否则会出现意想不到的渲染结果。
元素
浏览器渲染网页时,会把 HTML 源码解析成一个标签树,每个标签都是树的一个节点(node)。这种节点就称为网页元素(element)。所以,“标签”和“元素”基本上是同义词,只是使用的场合不一样:标签是从源码角度来看,元素是从编程角度来看,比如<p>标签对应网页的p元素。
嵌套的标签就构成了网页元素的层级关系。

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

上面代码中,div元素内部包含了一个p元素。上层元素又称为“父元素”,下层元素又称为“子元素”,即divp的父元素,pdiv的子元素。
元素又分两大类:块级元素和行级元素(行内元素)
块级元素默认占据一个独立的区域,在网页上会自动另起一行,占据 100% 的宽度。

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

上面代码中,p元素是块级元素,因此浏览器会将内容分成两行显示。
行内元素默认与其他元素在同一行,不产生换行。比如,span就是行内元素,通常用来为某些文字指定特别的样式。

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

上面代码中,span元素是行内元素,因此浏览器会将两行内容放在一行显示。
属性
属性(attribute)是标签的额外信息,使用空格与标签名和其他属性分隔。

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

上面代码中,<img>标签有两个属性:srcwidth
属性可以用等号指定属性值,比如上例的demo.jpg就是src的属性值。属性值一般放在双引号里面,这不是必需的,但推荐使用双引号。注意,属性名是大小写不敏感的
空格与换行
HTML 语言有自己的空格处理规则。标签内容的头部和尾部的空格,一律忽略不计。
多个连续空格,浏览器会将它们合并成一个。
浏览器还会将文本里面的换行符(\n)和回车符(\r),替换成空格。
基本标签
<title>标签用于指定网页的标题,会显示在浏览器窗口的标题栏。
<head>标签是一个容器标签,用于放置网页的元信息。它的内容不会出现在网页上,而是为网页渲染提供额外信息。
<body>标签是一个容器标签,用于放置网页的主体内容。浏览器显示的页面内容,都放置在它的内部。它是<html>的第二个子元素,紧跟在<head>后面。
<meta>标签用于设置或说明网页的元数据,必须放在<head>里面。一个<meta>标签就是一项元数据,网页可以有多个<meta><meta>标签约定放在<head>内容的最前面。
<link>:连接外部样式表。
<title>:设置网页标题。
<style>:放置内嵌的样式表。
<script>:引入JavaScript脚本。
<noscript>:浏览器不支持JavaScript脚本时,所要显示的内容。
<base>:设置网页内部相对 URL 的计算基准。
<!-- 注释标签 -->:标签内部代码都无效,浏览器不解析,仅起到注释作用
文本标签
<div>是一个通用标签,表示一个区块(division)。它没有语义,如果网页需要一个块级元素容器,又没有其他合适的标签,就可以使用这个标签。
<p>标签是一个块级元素,代表文章的一个段落(paragraph)。不仅是文本,任何想以段落显示的内容,比如图片和表单项,都可以放进<p>元素。
<span>是一个通用目的的行内标签(即不会产生换行),不带有任何语义。它通常用作 CSS 样式的钩子,如果需要对某些行内内容指定样式,就可以把它们放置在<span>
<br>让网页产生一个换行效果。该标签是单独使用的,没有闭合标签。
<wbr>标签跟<br>很相似,表示一个可选的断行。如果一行的宽度足够,则不断行;如果宽度不够,需要断行,就在<wbr>的位置的断行。它是为了防止浏览器在一个很长的单词中间,不正确地断行或者不断行,所以事先标明可以断行的位置,主要用于欧洲一些单词很长的语言或者 URL 的断行。
<hr>用来在一篇文章中分隔两个不同的主题,浏览器会将其渲染为一根水平线。该标签是单独使用的,没有闭合标签。
<pre>是一个块级元素,表示保留原来的格式(preformatted),即浏览器会保留该标签内部原始的换行和空格。浏览器默认以等宽字体显示标签内容。
<strong>是一个行内元素,表示它包含的内容具有很强的重要性,需要引起注意。浏览器会以粗体显示内容。
<em>是一个行内标签,表示强调(emphasize),浏览器会以斜体显示它包含的内容。
<i>标签与<em>相似,也表示与其他地方有所区别,浏览器会以斜体显示。它是 Italic 的缩写。
<sub>标签将内容变为下标,<sup>标签将内容变为上标。它们都是行内元素,主要用于数学公式、分子式等。
<var>标签表示代码或数学公式的变量。
<u>标签是一个行内元素,表示对内容提供某种注释,提醒用户这里可能有问题,基本上只用来表示拼写错误。浏览器默认以下划线渲染内容。
<s>标签是一个行内元素,为内容加上删除线。
<blockquote>是一个块级标签,表示引用他人的话。浏览器会在样式上,与正常文本区别显示。
<cite>标签表示引言出处或者作者,浏览器默认使用斜体显示这部分内容。<cite>不一定跟<blockquote>一起使用。如果文章中提到资料来源,也可以单独使用。
<q>是一个行内标签,也表示引用。它与<blockquote>的区别,就是它不会产生换行。
<code>标签是一个行内元素,表示标签内容是计算机代码,浏览器默认会以等宽字体显示。
<kbd>标签是一个行内元素,原意是用户从键盘输入的内容,现在扩展到各种输入,包括语音输入。浏览器默认以等宽字体显示标签内容。<kbd>可以嵌套,方便指定样式。
<samp>标签是一个行内元素,表示计算机程序输出内容的一个例子。浏览器默认以等宽字体显示。
<mark>是一个行内标签,表示突出显示的内容。Chrome 浏览器默认会以亮黄色背景,显示该标签的内容。
<small>是一个行内标签,浏览器会将它包含的内容,以小一号的字号显示,不需要使用 CSS 样式。它通常用于文章附带的版权信息或法律信息。
<time>是一个行内标签,为跟时间相关的内容提供机器可读的格式。
<data>标签与<time>类似,也是提供机器可读的内容,但是用于非时间的场合。
<address>标签是一个块级元素,表示某人或某个组织的联系方式。该标签有几个注意点。
(1)如果是文章里提到的地址(比如提到搬家前的地址),而不是联系信息,不要使用<address>标签。
(2)<address>的内容不得有非联系信息,比如发布日期。
(3)<address>不能嵌套,并且内部不能有标题标签(<h1>~<h6>),也不能有<article><aside><section><nav><header><footer>等标签。
(4)通常,<address>会放在<footer>里面
<abbr>标签是一个行内元素,表示标签内容是一个缩写。它的title属性给出缩写的完整形式,或者缩写的描述。鼠标悬停在该元素上方时,title属性值作为提示,会完整显示出来。
<ins>标签是一个行内元素,表示原始文档添加(insert)的内容。<del>与之类似,表示删除(delete)的内容。它们通常用于展示文档的删改。
<dfn>是一个行内元素,表示标签内容是一个术语(definition),本段或本句包含它的定义。为了脚本操作的方便,可以把术语的定义写入<dfn>标签的title属性。
<ruby>标签表示文字的语音注释,主要用于东亚文字,比如汉语拼音和日语的片假名。它默认将语音注释,以小字体显示在文字的上方。
<rp>标签的用处,是为不支持语音注释的浏览器,提供一个兼容方案。对于那些支持语音注释的浏览器,该标签的内容不显示。
<rt>标签用于放置语音注释。
<rb>标签用于划分文字单位,与语音注释一一对应。
<rbc>标签表示一组文字,通常包含多个<rb>元素。<rtc>标签表示一组语音注释,跟<rbc>对应。
<bdo>标签是一个行内元素,表示文字方向与网页主体内容的方向不一致。<bdo>dir属性,指定具体的文字方向。它有两个值,ltr表示从左到右,rtl表示从右到左。
<bdi>标签用于不确定文字方向的情况。比如,网页有一个部分是用户输入的内容,但是不知道输入内容的文字方向。这种情况就可以使用<bdi>标签,告诉浏览器,不确定文字的方向,由浏览器自己决定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值