什么是HTML
HTML (HyperText Markup Language) 不是一门编程语言,而是一种用来告知浏览器如何组织页面的标记语言。HTML 可复杂、可简单,一切取决于开发者。它由一系列的元素(elements)组成,这些元素可以用来包围不同部分的内容,使其以某种方式呈现或者工作。 HTML标签不区分大小写,但最好仅用小写字母
HTML元素
- 开始标签(Opening tag):包含元素的名称(本例为 p),被大于号、小于号所包围。表示元素从这里开始或者开始起作用 —— 在本例中即段落由此开始。
- 结束标签(Closing tag):与开始标签相似,只是其在元素名之前包含了一个斜杠。这表示着元素的结尾 —— 在本例中即段落在此结束。初学者常常会犯忘记包含结束标签的错误,这可能会产生一些奇怪的结果。
- 内容(Content):元素的内容,本例中就是所输入的文本本身。
- 元素(Element):开始标签、结束标签与内容相结合,便是一个完整的元素。
元素也可以有属性(Attribute)
- href: 这个属性声明超链接的web地址,当这个链接被点击浏览器会跳转至href声明的web地址。例如:href="www.mozilla.org/"。
- title: 标题title属性为超链接声明额外的信息,比如你将链接至那个页面。例如:title="TheMozillahomepage"。当鼠标悬浮时,将出现一个工具提示。
- target: 目标target属性用于指定链接如何呈现出来。例如,target="_blank"将在新标签页中显示链接。如果你希望在目前标签页显示链接,只需忽略这个属性。 如果省略包裹属性值的引号可能会导致浏览器误解 单引号和双引号都可以,但不能在一个属性值中混用,如:
<a href="http://www.example.com'>示例站点链接</a> //错误
//而在一个HTML中已使用一种引号,你可以在此引号中嵌套另外一种引号
<a href="http://www.example.com" title="你觉得'好玩吗'?">示例站点链接</a>
//如果你想将引号当作文本显示在html中,你就必须使用实体引用。
布尔属性
有时你会看到没有值的属性,它是合法的。这些属性被称为布尔属性,他们只能有跟它的属性名一样的属性值。例如disabled 属性,他们可以标记表单输入使之变为不可用(变灰色),此时用户不能向他们输入任何数据。
<input type="text" disabled="disabled"> or 简写<input type="text" disabled>
两种重要的元素
- 块级元素在页面中以块的形式展现——相对与其前面的内容它会出现在新的一行,其后的内容也会被挤到下一行展现。块级元素通常用于展示页面上结构化的内容,例如段落、列表、导航菜单、页脚等等。一个以block形式展现的块级元素不会被嵌套进内联元素中,但可以嵌套在其它块级元素中。
- 内联元素通常出现在块级元素中并包裹文档内容的一小部分,而不是一整个段落或者一组内容。内联元素不会导致文本换行:它通常出现在一堆文字之间例如超链接元素<a>或者强调元素<em>和<strong>。
空元素
不是所有元素都拥有开始标签,内容和结束标记. 一些元素只有一个标签,通常用来在此元素所在位置插入/嵌入一些东西。例如:元素<img>是用来在元素<img>所在位置插入一张指定的图片。例子如下:
<img src="https://raw.githubusercontent.com/mdn/beginner-html-site/gh-pages/images/firefox-icon.png">
tips: Empty elements 有时也被叫作 void elements.
HTML结构
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>我的测试站点</title>
</head>
<body>
<p>这是我的页面</p>
</body>
</html>
- : 声明文档类型.很久以前,早期的HTML(大约1991年2月),文档类型声明类似于链接,规定了HTML页面必须遵从的良好规则,能自动检测错误和其他有用的东西。然而现在没有人再这样写,需要保证每一个东西都正常工作已成为历史。你只需要知道是最短的有效的文档声明。
- : 元素。这个元素包裹了整个完整的页面,是一个根元素。
- : 元素. 这个元素是一个容器,它包含了所有你想包含在HTML页面中但不想在HTML页面中显示的内容。这些内容包括你想在搜索结果中出现的关键字和页面描述,CSS样式,字符集声明等等。以后的章节能学到更多关于元素的内容。
- : 这个元素设置文档使用utf-8字符集编码,utf-8字符集包含了人类大部分的文字。基本上他能识别你放上去的所有文本内容。毫无疑问要使用它,并且它能在以后避免很多其他问题。
- : 设置页面标题,出现在浏览器标签上,当你标记/收藏页面时它可用来描述页面。
- : 元素。 包含了你访问页面时所有显示在页面上的内容,文本,图片,音频,游戏等等。
实体引用:在HTML中包含特殊字符
<p>HTML 中用 <p> 来定义段落元素。</p>
<p>HTML 中用 <p> 来定义段落元素</p>
<!--在下面的实时输出中,你会看到第一段是错误的,因为浏览器会认为第二个<p>是开始一个新的段落! 第二段是正确的,因为我们用字符引用来代替了角括号('<'和'>'符号). -->
HTML标签
:斜体 :强调
什么是HTML 头部?
在页面加载完成的时候,标签head里的内容,是不会在页面中显示出来的。它包含了像页面的<title>(标题) ,CSS(如果你选择用 CSS 来为 HTML 内容添加样式),指向自定义图标的链接和其他的元数据(描述HTML的数据,比如,作者,和描述文档的重要关键词)。
元数据:<meta>元素
<meta charset="utf-8">
<!--这个元素简单的指定了文档的字符编码 —— 在这个文档中被允许使用的字符集。 utf-8 是一个通用的字符集,它包含了任何人类语言中的大部分的字符。 这意味着你的web页面可以显示任意的语言;所以对于你的每一个页面都使用这个设置会是一个好主意!比如说,你的页面可以很好的处理英语和日语-->
添加作者和描述 许多 元素包含了name 和 content 特性:
- name 指定了meta 元素的类型; 说明该元素包含了什么类型的信息。
- content 指定了实际的元数据内容。
<meta name="author" content="Chris Mills">
<meta name="description" content="The MDN Learning Area aims to provide
complete beginners to the Web with all they need to know to get
started with developing web sites and applications.">
<!--这两个meta 元素对于定义你的页面的作者和提供页面的内容描述是很有用的。 -->
指定包含关于页面内容的关键字的页面内容的描述是很有用的,因为它可能或让你的页面在搜索引擎的相关的搜索出现得更多 (这些行为术语上被称为 Search Engine Optimization, or SEO.)
元数据是用来描述数据的数据(Data that describes other data)。单单这样说,不太好理解,我来举个例子。
下面是契诃夫的小说《套中人》中的一段,描写一个叫做瓦莲卡的女子:
(她)年纪已经不轻,三十岁上下,个子高挑,身材匀称,黑黑的眉毛,红红的脸蛋--一句话,不是姑娘,而是果冻,她那样活跃,吵吵嚷嚷,不停地哼着小俄罗斯的抒情歌曲,高声大笑,动不动就发出一连串响亮的笑声:哈,哈,哈! 这段话里提供了这样几个信息:年龄(三十岁上下)、身高(个子高挑)、相貌(身材匀称,黑黑的眉毛,红红的脸蛋)、性格(活跃,吵吵嚷嚷,不停地哼着小俄罗斯的抒情歌曲,高声大笑)。有了这些信息,我们就可以大致想像出瓦莲卡是个什么样的人。推而广之,只要提供这几类的信息,我们也可以推测出其他人的样子。
这个例子中的"年龄"、"身高"、"相貌"、"性格",就是元数据,因为它们是用来描述具体数据/信息的数据/信息。
当然,这几个元数据用来刻画个人状况还不够精确。我们每个人从小到大,都填过《个人情况登记表》之类的东西吧,其中包括姓名、性别、民族、政治面貌、一寸照片、学历、职称等等......这一套元数据才算比较完备。 参考MDN的举例:developer.mozilla.org/zh-CN/docs/…
在你的站点增加自定义图标
这个不起眼的图标已经存在很多很多年了,16 x 16 像素是这种图标的第一种类型。你可以看见这些图标出现在浏览器每一个打开的页面中的标签页中中以及在书签面板中的书签页面中 页面添加图标的方式有:
- 将其保存在与网站的索引页面相同的目录中,以.ico格式保存(大多数浏览器将支持更通用的格式,如.gif或.png,但使用ICO格式将确保它能在如Internet Explorer 6一样久远的浏览器显示)
- 将以下行添加到HTML 中以引用它:
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon">
在HTML中应用CSS和JavaScript
- <link> 元素经常位于文档的头部。这个link元素有2个属性,rel="stylesheet"表明这是文档的样式表,而 href包含了样式表文件的路径:
- <script> 部分没必要非要放在文档头部;实际上,把它放在文档的尾部(在 标签之前)是一个更好的选择,这样可以确保在加载脚本之前浏览器已经解析了HTML内容(如果脚本加载某个不存在的元素,浏览器会报错)。
<link rel="stylesheet" href="my-css-file.css">
<script src="my-js-file.js"></script>
为文档设定主语言
最后,值得一提的是你可以(而且确实应该)为你的站点设定语言,这个可以通过添加lang属性到HTML开始标签中来实现.这在很多方面都很有用。如果你的HTML文档的语言设置好了,那么你的HTML文档就会被搜索引擎更有效地索引(例如,允许它在特定于语言的结果中正确显示),对于那些使用屏幕阅读器的视障人士也很有用(比如,法语和英语中都有“six”这个单词,但是发音却完全不同)。
<html lang="en-US">
HTML 文字处理基础
<!--在HTML中,每个段落是通过\<p> 元素标签进行定义的.-->
<p>我是一个段落,千真万确。</p>
<!--每个标题(Heading)是通过“标题标签”进行定义的-->
<h1>我是文章的标题</h1>
一些最佳实践:
- 优选地,您应该只对每个页面使用一次<h1> — 这是顶级标题,所有其他标题位于层次结构中的下方
- 请确保在层次结构中以正确的顺序使用标题。不要使用<h3>来表示副标题,后面跟<h2>来表示副副标题-这是没有意义的,会导致奇怪的结果。
- 在可用的六个标题级别中,您应该旨在每页使用不超过三个,除非您认为有必要使用更多。具有许多级别的文档(即,较深的标题层次结构)变得难以操作并且难以导航。在这种情况下,如果可能,建议将内容分散在多个页面上。
为什么我们需要结构化
- 用户在阅读网页时,往往会快速浏览以查找相关内容,经常只是阅读开头的标题(我们通常在一个网页上会花费很少的时间 spend a very short time on a web page)。如果用户不能在几秒内看到一些有用的内容,他们很可能会感到沮丧并离开。
- 对您的网页建立索引的搜索引擎将标题的内容视为影响网页搜索排名的重要关键字。没有标题,您的网页在SEO(搜索引擎优化)方面效果不佳。
- 严重视力障碍者通常不会阅读网页;他们用听力来代替。完成这项工作的软件叫做屏幕阅读器(screen reader)。该软件提供了快速访问给定文本内容的方法。在使用的各种技术中,它们通过朗读标题来提供文档的概述,让用户能快速找到他们需要的信息。如果标题不可用,用户将被迫听到整个文档的大声朗读。
- 使用CSS样式化内容,或者使用JavaScript做一些有趣的事情,你需要包含相关内容的元素,所以CSS / JavaScript可以有效地定位它。
为什么需要语义
在我们身边的任何地方都要依赖语义学 — 我们依靠以前的经验就知道日常事物都代表什么;当我们看到什么,我们就会知道它代表什么。举个例子, 我们知道红色交通灯表示“停止”,绿色交通灯表示”通行“。 如果运用了错误的语义,事情会迅速地变得非常棘手 (难道有某个国家使用红色代表通行?我不希望如此)
同样的道理,我们需要确保使用了正确的元素来给予内容正确的意思、作用以及外形。在这里,<h1> 元素也是一个语义元素,它给出了包裹在您的页面上用来表示顶级标题的角色(或意义)的文本。
<h1>这是一个顶级标题</h1>
一般来说,浏览器会给它一个更大的字形来让它看上去像个标题(虽然你可以使用CSS让它变成任何你想要的样式。更重要的是,它的语义值将以多种方式被使用,比如通过搜索引擎和屏幕阅读器(上文提到过的)。 在另一方面,你可以让任一元素看起来像一个顶级标题,
<span style="font-size: 32px; margin: 21px 0;">这是顶级标题吗?</span>
<!--这是一个 <span> 元素,它没有语义。当您想要对它用CSS(或者JS)时,您可以用它包裹内容,且不需要附加任何额外的意义(在未来的课程中你会发现更多这类元素)。我们已经对它使用了CSS来让它看起来像一个顶级标题。然而,由于它没有语义值,所以它不会有任何上文提到的帮助。最好的方法是使用相关的HTML元素来标记这个项目。-->
列表 Lists
- 无序 Unordered
- 有序Ordered 这个标记的结构和无序列表一样,除了你需要用<ol> 元素将所有项目包裹, 而不是用<ul>
- 嵌套列表 Nesting lists
<ol>
<li>先用蛋白一个、盐半茶匙及淀粉两大匙搅拌均匀,调成“腌料”,鸡胸肉切成约一厘米见方的碎丁并用“腌料”搅拌均匀,腌渍半小时。</li>
<li>用酱油一大匙、淀粉水一大匙、糖半茶匙、盐四分之一茶匙、白醋一茶匙、蒜末半茶匙调拌均匀,调成“综合调味料”。</li>
<li>鸡丁腌好以后,色拉油下锅烧热,先将鸡丁倒入锅内,用大火快炸半分钟,炸到变色之后,捞出来沥干油汁备用。</li>
<li>在锅里留下约两大匙油,烧热后将切好的干辣椒下锅,用小火炒香后,再放入花椒粒和葱段一起爆香。随后鸡丁重新下锅,用大火快炒片刻后,再倒入“综合调味料”继续快炒。
<ul>
<li>如果你采用正宗川菜做法,最后只需加入花生米,炒拌几下就可以起锅了。</li>
<li>如果你在北方,可加入黄瓜丁、胡萝卜丁和花生米,翻炒后起锅。</li>
</ul>
</li>
</ol>
迄今为止我们已经讨论的元素都是意义清楚的语义元素。<b>, <i>, 和 <u> 的情况却有点复杂。它们出现于人们要在文本中使用粗体、斜体、下划线但CSS仍然不被完全支持的时期。像这样的元素,仅仅影响表象而且没有语义,被称为表象元素(presentational elements)并且不应该再被使用。因为正如我们在之前看到的,语义对可访问性,SEO(搜索引擎优化)等非常重要。
一种关于下划线的警告:人们很容易把下划线和超链接联系起来。因此,在Web上,最好只在链接上使用下划线。当语义适合时使用<u>元素,但是有时候在Web上用CSS改变下划线默认的的样式更加合适
超链接
注意:URL可以指向HTML文件、文本文件、图像、文本文档、视频和音频文件以及可以在网络上保存的任何其他内容。 如果浏览器不知道如何显示或处理文件,它会询问您是否要打开文件(需要选择合适的本地应用来打开或处理文件)或下载文件(以后处理它)。
链接的解析
通过将文本(或其他内容,见块级链接)转换为<a>元素内的链接来创建基本链接, 给它一个href属性(也称为目标),它将包含您希望链接指向的网址。
<p>I'm creating a link to
<a href="https://www.mozilla.org/en-US/">the Mozilla homepage</a>.
</p>
使用title属性添加支持信息
您可能要添加到您的链接的另一个属性是标题;这旨在包含关于链接的补充有用信息,例如页面包含什么样的信息或需要注意的事情
<p>I'm creating a link to
<a href="https://www.mozilla.org/en-US/"
title="The best place to find more information about Mozilla's
mission and how to contribute">the Mozilla homepage</a>.
</p>
<!--当鼠标指针悬停在链接上时,标题将作为提示信息出现-->
注意:链接的标题仅当鼠标悬停在其上时才会显示,这意味着使用键盘来导航网页的人很难获取到标题信息。如果标题信息对于页面非常重要,你应该使用所有用户能都方便获取的方式来呈现,例如放在常规文本中。
统一资源定位符(URL)与路径(path)快速入门
统一资源定位符(英文:Uniform Resource Locator,简写:URL)是一个定义了在网络上的位置的一个文本字符串。例如Mozilla的英文主页定位在https://www.mozilla.org/en-US/.
我们的根目录还有两个目录—— pdfs 和projects,它们分别包含一个 PDF (project-brief.pdf) 文件和一个index.html 文件。请注意你可以有两个index.html文件,前提是他们在不同的目录下,许多网站就是如此。第二个index.html或许是项目相关信息的主登录界面。
- 指向当前目录:如果index.html(目录顶层的index.html)想要包含一个超链接指向contacts.html,你只需要指定想要链接的文件名,因为它与当前文件是在同一个目录的. 所以你应该使用的URL是contacts.html
<p>Want to contact a specific staff member?
Find details on our <a href="contacts.html">contacts page</a>.</p>
- 指向子目录:如果index.html (目录顶层index.html)想要包含一个超链接指向 projects/index.html,您需要先进入projects/项目目录,然后指明要链接到的文件index.html。 通过指定目录的名称,然后是正斜杠,然后是文件的名称。因此您要使用的URL是projects / index.html
<p>Visit my <a href="projects/index.html">project homepage</a>.</p>
- 指向上级目录: 如果你想在projects/index.html中包含一个指向pdfs/project-brief.pdf的超链接,你必须先返回上级目录,然后再回到pdf目录。“返回上一个目录级”使用两个英文点号表示 — .. — 所以你应该使用的URL是 ../pdfs/project-brief.pdf
<p>A link to my <a href="../pdfs/project-brief.pdf">project brief</a>.</p>
超链接除了可以链接到文档外,也可以链接到HTML文档的特定部分(被称为文档片段)。要做到这一点,你必须首先给要链接到的元素分配一个id属性。
h2 id="Mailing_address">Mailing address</h2>
<!--然后链接到那个特定的id,您可以在URL的结尾使用一个哈希符号(#)指向它,例如:-->
<p>Want to write us a letter? Use our <a href="contacts.html#Mailing_address">mailing address</a>.</p>
<!--你甚至可以在同一份文档下,通过链接文档片段,来链接到同一份文档的另一部分:-->
<p>The <a href="#Mailing_address">company mailing address</a> can be found at the bottom of this page.</p>
绝对URL和相对URL
绝对URL: 指向由其在Web上的绝对位置定义的位置,包括 protocol(协议) and domain name(域名).。像下面的例子,如果index.html 页面上传到projects这一个目录 。并且projects目录位于web服务站点的根目录, web站点的域名为http://www.example.com, 那么这个页面就可以通过http://www.example.com/projects/index.html访问 ( 或者通过http://www.example.com/projects/来访问, 因为在没有指定特定的URL的情况下,大多数web服务会默认访问加载index.html这类页面)
相对URL: 指向与您链接的文件相关的位置,更像我们在前面一节中所看到的位置。例如,如果我们想从示例文件链接http://www.example.com/projects/index.html转到相同目录下的一个PDF文件, URL就是文件名URL — 例如 project-brief.pdf —没有其他的信息要求. 如果PDF文件能够在projects的子目录pdfs中访问到, 相对路径就是pdfs/project-brief.pdf (对应的绝对URL就是 www.example.com/projects/pd…
在写链接时有一些好的做法: 把链接放在你的页面上很容易。这还不够。我们需要让所有的读者都可以使用链接,不管他们当前的环境和哪些工具。例如:
- 使用屏幕阅读器的用户喜欢从页面上的一个链接跳到另一个链接,并且脱离上下文来阅读链接。
- 搜索引擎使用链接文本为索引目标文件所以,在链接文本中包含关键词是一个很好的主意,以有效地描述与之相关的信息。
- 读者往往会浏览页面而不是阅读每一个字,他们的眼睛会被页面的特征所吸引,比如链接。他们会找到描述性的链接。
<!--好的做法-->
<p><a href="https://firefox.com/">
Download Firefox
</a></p>
<!--不好的做法-->
<p><a href="https://firefox.com/">
Click here
</a>
to download Firefox</p>
tips:
- 不要重复URL作为链接文本的一部分 — URL看起来很丑,当屏幕朗读器一个字母一个字母的读出来的时候听起来就更丑了。
- 不要在链接文本中说“link”或“links to”——它只是噪音。屏幕阅读器告诉人们有一个链接。可视化用户也会知道有一个链接,因为链接通常是用不同的颜色设计的,并且存在下划线(这个惯例一般不应该被打破,因为用户习惯了它。)
- 保持你的链接标签尽可能短-长链接尤其惹恼屏幕阅读器用户,他们必须听到整件事读出来。
从上面的描述中,您可能认为始终使用绝对链接是一个好主意;毕竟,当页面像相对链接那样移动时,它们不会中断。但是,当链接到同一网站的其他位置时,你应该使用相对链接(当链接到另一个网站时,你需要使用绝对链接)
- 首先,检查代码要容易得多——相对URL通常比绝对URL短得多,这使得阅读代码更容易。
- 其次,在可能的情况下使用相对URL更有效。当使用绝对URL时,浏览器首先通过DNS(见万维网是如何工作的)查找服务器的真实位置,然后再转到该服务器并查找所请求的文件。另一方面,相对URL,浏览器只在同一服务器上查找被请求的文件。因此,如果你使用绝对URL而不是相对URL,你就会不断地让你的浏览器做额外的工作,这意味着它的效率会降低。
链接到非html资源 ——留下清晰的指示
当链接到一个需要下载的资源(如PDF或Word文档)或流媒体(如视频或音频)或有另一个潜在的意想不到的效果(打开一个弹出窗口,或加载Flash电影),你应该添加明确的措辞,以减少任何混乱。如下的例子会让人反感:
- 如果你是在低带宽连接,点击一个链接,然后就开始下载大文件。
- 如果你没有安装Flash播放器,点击一个链接,然后突然被带到一个需要Flash的页面。
<p><a href="http://www.example.com/large-report.pdf">
Download the sales report (PDF, 10MB)
</a></p>
<p><a href="http://www.example.com/video-stream/">
Watch the video (stream opens in separate tab, HD quality)
</a></p>
<p><a href="http://www.example.com/car-game">
Play the car game (requires Flash)
</a></p>
<!--当您链接到要下载的资源而不是在浏览器中打开时,您可以使用 download 属性来提供一个默认的保存文件名。下面是一个下载链接到Firefox 的 Windows最新版本的示例:-->
<a href="https://download.mozilla.org/?product=firefox-latest-ssl&os=win64&lang=en-US"
download="firefox-latest-64bit-installer.exe">
Download Latest Firefox for Windows (64-bit) (English, US)
</a>
电子邮件链接
当点击一个链接或按钮时,打开一个新的电子邮件发送信息而不是连接到一个资源或页面,这种情况是可能做到的。这样做是使用<a>元素和mailto:URL的方案。
<a href="mailto:nowhere@mozilla.org">Send email to nowhere</a>
实际上,邮件地址甚至是可选的。如果你忘记了(也就是说,你的href仅仅只是简单的"mailto:"),一个新的发送电子邮件的窗口也会被用户的邮件客户端打开,只是没有收件人的地址信息,这通常在“分享”链接是很有用的,用户可以发送给他们选择的地址邮件
高阶文字排版
描述列表
在 HTML 基础部分,我们讨论了如何在 HTML 中标记基本的列表,但是我们没有提到你偶尔会遇到的第三种类型的列表—描述列表 (description list) 。这种列表的目的是标记一组项目及其相关描述,例如术语和定义,或者是问题和答案等。让我们看一组术语和定义的示例:
<dl>
<dt>内心独白</dt>
<dd>戏剧中,某个角色对自己的内心活动或感受进行念白表演,这些台词只面向观众,而其他角色不会听到。</dd>
<dt>语言独白</dt>
<dd>戏剧中,某个角色把自己的想法直接进行念白表演,观众和其他角色都可以听到。</dd>
<dt>旁白</dt>
<dd>戏剧中,为渲染幽默或戏剧性效果而进行的场景之外的补充注释念白,只面向观众,内容一般都是角色的感受、想法、以及一些背景信息等。</dd>
</dl>
引用
- 块引用
如果一个块级内容(一个段落、多个段落、一个列表等)从其他地方被引用,你应该把它用
元素包裹起来表示,并且在cite属性里用URL来指向引用的资源。例如,下面的例子就是引用的MDN的
元素页面:
<p>The <strong>HTML <code><blockquote></code> Element</strong> (or <em>HTML Block
Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p>
<!--要把这些转换为块引用,我们要这样做:-->
<blockquote cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote">
<p>The <strong>HTML <code><blockquote></code> Element</strong> (or <em>HTML Block
Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p>
</blockquote>
- 行内引用
行内元素用同样的方式工作,除了使用
元素。例如,下面的标记包含了从MDN
页面的引用:
<p>The quote element — <code><q></code> — is <q cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q">intended
for short quotations that don't require paragraph breaks.</q></p>
浏览器默认将其作为普通文本放入引号内表示引用,就像下面:
The quote element — — is intended for short quotations that don't require paragraph breaks.(
元素旨在用于不需要分段的短引用)
引文
cite属性内容不会被浏览器显示、屏幕阅读器阅读,需使用 JavaScript 或 CSS,浏览器才会显示cite的内容。如果你想要确保引用的来源在页面上是可显示的,更好的方法使用元素:
<p>According to the <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote">
<cite>MDN blockquote page</cite></a>:
</p>
<blockquote cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/blockquote">
<p>The <strong>HTML <code><blockquote></code> Element</strong> (or <em>HTML Block
Quotation Element</em>) indicates that the enclosed text is an extended quotation.</p>
</blockquote>
<p>The quote element — <code><q></code> — is <q cite="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q">intended
for short quotations that don't require paragraph breaks.</q> -- <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/q">
<cite>MDN q page</cite></a>.</p>
缩略语
另一个你在web上看到的相当常见的元素是<abbr>——它常被用来包裹一个缩略语或缩写,并且提供缩写的解释(包含在title属性中)
<p>我们使用 <abbr title="超文本标记语言(Hypertext Markup Language)">HTML</abbr> 来组织网页文档。</p>
<p>第 33 届 <abbr title="夏季奥林匹克运动会">奥运会</abbr> 将于 2024 年 8 月在法国巴黎举行。</p>
这些代码的显示效果如下(当光标移动到项目上时会出现提示):
我们使用 HTML 来组织网页文档。
第 33 届 奥运会 将于 2024 年 8 月在法国巴黎举行。
标记联系方式
HTML有个用于标记联系方式的元素——<address>。它仅仅包含你的联系方式
<address>
<p>Chris Mills, Manchester, The Grim North, UK</p>
</address>
<!--但要记住的一点是,<address>元素是为了标记编写HTML文档的人的联系方式,而不是任何其他的内容。因此,如果这是Chris写的文档,上面的内容将会很好。-->
上标和下标
当你使用日期、化学方程式、和数学方程式时会偶尔使用上标和下标。 <sup> 和<sub>元素可以解决这样的问题
<p>咖啡因的化学方程式是 C<sub>8</sub>H<sub>10</sub>N<sub>4</sub>O<sub>2</sub>。</p>
<p>如果 x<sup>2</sup> 的值为 9,那么 x 的值必为 3 或 -3。</p>
<!--咖啡因的化学方程式是 C8H10N4O2。
如果 x2 的值为 9,那么 x 的值必为 3 或 -3。-->
展示计算机代码
有大量的HTML元素可以来标记计算机代码:
<code>: 用于标记计算机通用代码。 <pre>: 对保留的空格(通常是代码块)——如果您在文本中使用缩进或多余的空白,浏览器将忽略它,您将不会在呈现的页面上看到它。但是,如果您将文本包含在<pre></pre>标签中,那么空白将会以与你在文本编辑器中看到的相同的方式渲染出来。 <var>: 用于标记具体变量名。 <kbd>: 用于标记输入电脑的键盘(或其他类型)输入。 <samp>: 用于标记计算机程序的输出。
<pre><code>const para = document.querySelector('p');
para.onclick = function() {
alert('噢,噢,噢,别点我了。');
}</code></pre>
<p>请不要使用 <code><font></code> 、 <code><center></code> 等表象元素。</p>
<p>在上述的 JavaScript 示例中,<var>para</var> 表示一个段落元素。</p>
<p>按 <kbd>Ctrl</kbd>/<kbd>Cmd</kbd> + <kbd>A</kbd> 选择全部内容。</p>
<pre>$ <kbd>ping mozilla.org</kbd>
<samp>PING mozilla.org (63.245.215.20): 56 data bytes
64 bytes from 63.245.215.20: icmp_seq=0 ttl=40 time=158.233 ms</samp></pre>
<!--代码效果:const para = document.querySelector('p');
para.onclick = function() {
alert('噢,噢,噢,别点我了。');
}
请不要使用 <font> 、 <center> 等表象元素。
在上述的 JavaScript 示例中,para 表示一个段落元素。
按 Ctrl/Cmd + A 选择全部内容。
$ ping mozilla.org
PING mozilla.org (63.245.215.20): 56 data bytes
64 bytes from 63.245.215.20: icmp_seq=0 ttl=40 time=158.233 ms-->
标记时间和日期
HTML 还支持将时间和日期标记为可供机器识别的格式的
<time datetime="2016-01-20">2016年1月20日</time>
<!-- 标准简单日期 -->
<time datetime="2016-01-20">20 January 2016</time>
<!-- 只包含年份和月份-->
<time datetime="2016-01">January 2016</time>
<!-- 只包含月份和日期 -->
<time datetime="01-20">20 January</time>
<!-- 只包含时间,小时和分钟数 -->
<time datetime="19:30">19:30</time>
<!-- 还可包含秒和毫秒 -->
<time datetime="19:30:01.856">19:30:01.856</time>
<!-- 日期和时间 -->
<time datetime="2016-01-20T19:30">7.30pm, 20 January 2016</time>
<!-- 含有时区偏移值的日期时间 -->
<time datetime="2016-01-20T19:30+01:00">7.30pm, 20 January 2016 is 8.30pm in France</time>
<!-- 调用特定的周 -->
<time datetime="2016-W04">The fourth week of 2016</time>