# _HTML主体
HTML CSS JavaScript精粹HTML 全局属性meta元数据指定文档中的字符编码添加作者和描述在你的站点增加自定义图标在 HTML 中应用 CSS 和 JavaScript细化HTML 元素详解1div元素样式实例HTMLCSS2.h1–h6:HTML 区域标题元素使用要点3.input:输入(表单输入)元素
| 属性 | 描述 |
|---|---|
| accesskey | 规定激活元素的快捷键。 |
| class | 规定元素的一个或多个类名(引用样式表中的类)。 |
| contenteditable | 规定元素内容是否可编辑。 |
| contextmenu | 规定元素的上下文菜单。上下文菜单在用户点击元素时显示。 |
| data-* | 用于存储页面或应用程序的私有定制数据。 |
| dir | 规定元素中内容的文本方向。 |
| draggable | 规定元素是否可拖动。 |
| dropzone | 规定在拖动被拖动数据时是否进行复制、移动或链接。 |
| hidden | 规定元素仍未或不再相关。 |
| id | 规定元素的唯一 id。 |
| lang | 规定元素内容的语言。 |
| spellcheck | 规定是否对元素进行拼写和语法检查。 |
| style | 规定元素的行内 CSS 样式。 |
| tabindex | 规定元素的 tab 键次序。 |
| title | 规定有关元素的额外信息。 |
| translate | 规定是否应该翻译元素内容。 |
元数据就是描述数据的数据,而 HTML 有一个“官方的”方式来为一个文档添加元数据——`` 元素。当然,其他在这篇文章中提到的东西也可以被当作元数据。有很多不同种类的 `` 元素可以被包含进你的页面的
元素,但是现在我们还不会尝试去解释所有类型,这只会引起混乱。我们会解释一些你常会看到的类型,先让你有个概念。在上面的示例中,这行是被包含的:
xxxxxxxxxx<meta charset="utf-8" />
这个元素简单的指定了文档的字符编码——在这个文档中被允许使用的字符集。utf-8 是一个通用的字符集,它包含了任何人类语言中的大部分的字符,意味着该 web 页面可以显示任意的语言;所以对于你的每一个页面都使用这个设置会是一个好主意!
许多meta元素包含了 name 和content属性:
name 指定了 meta 元素的类型;说明该元素包含了什么类型的信息。content 指定了实际的元数据内容。这两个 meta 元素对于定义你的页面的作者和提供页面的简要描述是很有用的。让我们看一个例子:
xxxxxxxxxx<meta name="author" content="Chris Mills" /><meta name="description" content="The MDN Web Docs Learning Area aims to providecomplete beginners to the Web with all they need to know to getstarted with developing web sites and applications." />指定作者在某些情况下是很有用的:如果你需要联系页面的作者,问一些关于页面内容的问题。一些内容管理系统能够自动获取页面作者的信息,然后用于某些用途。
指定一个包括与你的页面内容有关的关键词的描述是有用的,因为它有可能使你的页面在搜索引擎进行的相关搜索中出现得更多(这些行为在术语上被称为:搜索引擎优化 或 SEO)
为了进一步丰富你的网站设计,你可以在元数据中添加对自定义图标的引用,它们会在某些场景下显示。最常见的用例为 favicon(为“favorites icon”的缩写,在浏览器的“收藏夹”及“书签”列表中显示)。
这个不起眼的图标已经存在很多年了,16 像素的方形图标是第一种类型。你可以看见(取决于浏览器)这些图标出现在浏览器每一个打开的标签页中以及书签面板中的书签页面旁边。
页面添加网页图标的方式有:
将其保存在与网站的索引页面相同的目录中,以 .ico 格式保存(大多数浏览器支持更通用的格式,如 .gif 或 .png)
将以下行添加到 HTML 的head块中以引用它:
xxxxxxxxxx<link rel="icon" href="favicon.ico" type="image/x-icon" />
如今还有很多其他的图标类型可以考虑。例如,你可以在 MDN Web 文档的源代码中找到它:
xxxxxxxxxx<!-- 含有高分辨率 Retina 显示屏的第三代 iPad:--><linkrel="apple-touch-icon-precomposed"sizes="144x144"href="https://developer.mozilla.org/static/img/favicon144.png" /><!-- 含有高分辨率 Retina 显示屏的 iPhone:--><linkrel="apple-touch-icon-precomposed"sizes="114x114"href="https://developer.mozilla.org/static/img/favicon114.png" /><!-- 第一代和第二代 iPad:--><linkrel="apple-touch-icon-precomposed"sizes="72x72"href="https://developer.mozilla.org/static/img/favicon72.png" /><!-- 不含高分辨率 Retina 显示的 iPhone、iPod Touch 和 Android 2.1+ 设备:--><linkrel="apple-touch-icon-precomposed"href="https://developer.mozilla.org/static/img/favicon57.png" /><!-- 基本 favicon --><linkrel="icon"href="https://developer.mozilla.org/static/img/favicon32.png" />
这些注释解释了每个图标的用途——这些元素涵盖的东西提供一个高分辨率图标,这些高分辨率图标当网站保存到 iPad 的主屏幕时使用。
不用担心现在实现所有这些类型的图标——这是一个相当先进的功能,不要求你有这方面的知识来通过课程的进展。这里的主要目的是让你提前了解有这一样东西,以防当你浏览其他网站的源代码时不理解源代码的含义。
备注: 如果你的网站使用了内容安全策略(Content Security Policy,CSP)来增加安全性,这个策略会应用在 favicon 图标上。如果你遇到了图标没有被加载的问题,你需要确认 Content-Security-Policy 响应头的 img-src 指令 (en-US) 没有阻止访问图标。
如今,几乎你使用的所有网站都会使用 CSS 来让网页更加炫酷,并使用 JavaScript 来让网页有交互功能,比如视频播放器、地图、游戏以及更多功能。这些应用在网页中很常见,它们分别使用 link 元素以及 script 元素。
元素经常位于文档的头部,它有 2 个属性,rel="stylesheet"表明这是文档的样式表,而href包含了样式表文件的路径:
xxxxxxxxxx<link rel="stylesheet" href="my-css-file.css" />
script 元素也应当放在文档的头部,并包含 src 属性来指向需要加载的 JavaScript 文件路径,同时最好加上 defer 以告诉浏览器在解析完成 HTML 后再加载 JavaScript。这样可以确保在加载脚本之前浏览器已经解析了所有的 HTML 内容。这样你就不会因为 JavaScript 试图访问页面上不存在的 HTML 元素而产生错误。实际上有很多方法来处理在你的页面上加载 JavaScript,但对于现代浏览器来说,这是最可靠的方法(对于其他方法,请阅读脚本加载策略)。
script src="my-js-file.js" defer> </script
备注:**script元素看起来像一个空元素,但它并不是,因此需要一个结束标记。还可以选择将脚本放入 `` 元素中,而不是指向外部脚本文件。
作为一个“纯粹的”容器,`` 元素在语义上不表示任何特定类型的内容。然而,其可以将内容分组,从而可以使用class或是id属性方便的定义内容的格式,也可以在一段文档中划分标记出使用另一种语言书写的内容(使用lang 属性)等等。
该元素支持所有全局属性。
示例:
<div> <p>这里可以是任何内容,比如 <p>, <table>,一切由你作主!</p></div>本例使用 CSS 将样式应用于
class属性将名为“shadowbox”的样式应用于元素。xxxxxxxxxx<div class="shadowbox"> <p>Here's a very interesting note displayed in a lovely shadowed box.</p></div>xxxxxxxxxx.shadowbox { width: 15em; border: 1px solid #333; box-shadow: 8px 8px 5px #444; padding: 8px 12px; background-image: linear-gradient(180deg, #fff, #ddd 40%, #ccc);}
HTML – 标题 (Heading) 元素呈现了六个不同的级别的标题,h1级别最高,而h6级别最低。
font-size 属性。HTML 中input 元素用于为基于 Web 的表单创建交互式控件,以便接受来自用户的数据。取决于设备和用户代理不同,表单可以使用各种类型的输入数据和控件。input 元素是目前是 HTML 中最强大、最复杂的元素之一,因为它有大量的输入类型和属性组合。
input 的工作方式相当程度上取决于 type 属性的值,不同的 type 值会在各自的参考页中进行介绍。如果未指定此属性,则采用的默认类型为 text。
可用的值包括:(即input type="")
| 类型 | 描述 | |
|---|---|---|
| button | 没有默认行为的按钮,上面显示 value 属性的值,默认为空。 | |
| checkbox | 复选框,可将其值设为选中或未选中。 | |
| color | 用于指定颜色的控件;在支持的浏览器中,激活时会打开取色器。 | |
| date | 输入日期的控件(年、月、日,不包括时间)。在支持的浏览器激活时打开日期选择器或年月日的数字滚轮。 | |
| datetime-local | 输入日期和时间的控件,不包括时区。在支持的浏览器激活时打开日期选择器或年月日的数字滚轮。 | |
编辑邮箱地址的字段。类似 text 输入,但在支持的浏览器和带有动态键盘的设备上会有验证参数和相应的键盘。 | ||
| file | 让用户选择文件的控件。使用 accept 属性规定控件能选择的文件类型。 | |
| hidden | 不显示的控件,其值仍会提交到服务器。举个例子,右边就是一个隐形的控件。 | |
| image | 图形化 submit 按钮。显示的图像由 src 属性决定。如果 src 属性缺失,就会显示 alt 的内容。 | |
| month | 输入年和月的控件,没有时区。 | |
| number | 用于输入数字的控件。如果支持的话,会显示滚动按钮并提供缺省验证(即只能输入数字)。拥有动态键盘的设备上会显示数字键盘。 | |
| password | 单行的文本区域,其值会被遮盖。如果站点不安全,会警告用户。 | |
| radio | 单选按钮,允许在多个拥有相同 name 值的选项中选中其中一个。 | |
| range | 此控件用于输入不需要精确的数字。控件是一个范围组件,默认值为正中间的值。同时使用 min 和 max 来规定可接受值的范围。 | |
| reset | 此按钮将表单的所有内容重置为默认值。不推荐使用该类型。 | |
| search | 用于搜索字符串的单行文字区域。输入文本中的换行会被自动去除。在支持的浏览器中可能有一个删除按钮,用于清除整个区域。拥有动态键盘的设备上的回车图标会变成搜索图标。 | |
| submit | 用于提交表单的按钮。 | |
| tel | 用于输入电话号码的控件。拥有动态键盘的设备上会显示电话数字键盘。 | |
| text | 默认值。单行的文本字段,输入值中的换行会被自动去除。 | |
| time | 用于输入时间的控件,不包括时区。 | |
| url | 用于输入 URL 的控件。类似 text 输入,但有验证参数,在支持动态键盘的设备上有相应的键盘。 | |
| week | 用于输入以年和周数组成的日期,不带时区。 |
额外属性:
| 属性 | 类型 | 描述 |
|---|---|---|
accept | file | 文件上传控件中预期文件类型的提示 |
alt | image | 图片类型的 alt 属性。对无障碍是必需的 |
autocomplete | 除了 checkbox、radio 和按钮以外 | 表单自动填充特性提示 |
capture | file | 文件上传控件中媒体捕获方法的提示 |
checked | checkbox、radio | 控件是否选中 |
dirname | search、text | 表单字段的名称,用于在提交表单时发送元素的方向性 |
disabled | 所有类型 | 表单控件是否禁用 |
form | 所有类型 | 将控件联系到表单元素中 |
formaction | image、submit | 要提交表单的 URL 地址 |
formenctype | image、submit | 提交表单时使用的表单数据编码类型 |
formmethod | image、submit | 提交表单时所使用的 HTTP 方法 |
formnovalidate | image、submit | 绕过表单提交时的表单控件验证 |
formtarget | image、submit | 提交表单时的浏览上下文 |
height | image | 与 ![img]() 元素的 height 属性有相同含义,垂直方向上的维度值 |
list | 除了 hidden、password、checkbox、radio 和按钮以外 | 自动完成选项的 `` 的 id 属性的值 |
max | date、month、week、time、datetime-local、number、range | 最大值 |
maxlength | text、search、url、tel、email、password | value 的最大长度(字符数) |
min | date、month、week、time、datetime-local、number、range | 最小值 |
minlength | text、search、url、tel、email、password | value 的最小长度(字符数) |
multiple | email、file | 布尔值。是否允许多个值 |
name | 所有类型 | 表单的控件名称,作为键值对的一部分与表单一同提交 |
pattern | text、search、url、tel、email、password | 为了使得 value 有效,必须符合的模式 |
placeholder | text、search、url、tel、email、password、number | 当没有值设定时,出现在表单控件上的文字 |
readonly | 除了 hidden、range、color、checkbox、radio 和按钮以外 | 布尔值。如果存在,其中的值将不可编辑。 |
required | 除了 hidden、range、color 和按钮以外 | 布尔值。如果存在,一个值是必需的,或者必须勾选该值才能提交表格。 |
size | text、search、url、tel、email、password | 控件的尺寸 |
src | image | 与 ![img]() 元素的 src 属性含义相同,图片资源的地址 |
step | date、month、week、time、datetime-local、number、range | 有效的增量值 |
type | 所有类型 | 表单控件的类型 |
value | 所有类型 | 表单控件的初始值 |
width | image | 与 ![img]() 元素的 width 属性含义相同 |