HTML 是一种标记语言,使用特殊的语法或标记来向浏览器描述网页的结构。HTML 元素由开始和结束标签构成,标签之间是文本内容。 不同的标签可以让文本内容以标题、段落、列表等形式展现。
大部分 HTML 元素都有一个开始标签和一个结束标签。
开始标签像这样:
<h1>
结束标签像这样:
</h1>
开始标签和结束标签的唯一区别就是结束标签多了一个斜杠。
标题标签: h1~h6
这些元素用来告诉浏览器网站的结构是什么样子。 h1 元素通常被用作主标题,h2 元素通常被用作副标题, 还有 h3、h4、h5、h6 元素,它们分别用作不同级别的标题。
<h1></h1>
<h2></h2>
<h3></h3>
<h4></h4>
<h5></h5>
<h6></h6>
段落标签: p
p 元素是网站上段落文本的首选元素。 p 是“paragraph(段落)”的缩写。
<p></p>
注释标签:
<!--注释文本-->
图片标签: img
你可以使用 img 元素来为你的网站添加图片,其中 src 属性指向图片的地址。
例如:
<img src="https://www.freecatphotoapp.com/your-image.jpg">
注意:img 元素是没有结束标签的。所有的 img 元素 必须 有 alt 属性。 alt 的属性值有两个作用,第一个作用是让屏幕阅读器可以知晓图片的内容,这会对网页的可访问性有很大提升;另一个作用是当图片无法加载时,页面需要显示的替代文本。
注意: 如果图片是纯装饰性的,把 alt 的属性值设置为空是最佳实践。理想情况下,alt 属性不应该包含特殊字符,除非有特殊需要。
超链接标签: a
网页间的跳转
你可以用 a(Anchor,简写为 a)来实现网页间的跳转。
a 需要一个 href 属性指向跳转的目的地。 同时,它还应有内容。 例如:
<a href="https://www.freecodecamp.org">this links to freecodecamp.org</a>
浏览器将显示文本 this links to freecodecamp.org,这是一个可点击的链接。 你可以通过这个链接访问 https://www.freecodecamp.org。
网页内部的跳转
a(anchor)元素也可以用于创建内部链接,跳转到网页内的各个不同部分。
要创建内部链接,你需要将链接的 href 属性值设置为一个哈希符号 # 加上你想内部链接到的元素的 id,通常是在网页下方的元素。 然后你需要将相同的 id 属性添加到你链接到的元素中。 id 是描述网页元素的一个属性,它的值在整个页面中唯一。
例如当用户点击了 Contacts 链接,页面就会跳转到网页的 Contacts 区域。
<a href="#contacts-header">Contacts</a>
...
<h2 id="contacts-header">Contacts</h2>
当用户点击 Contacts 链接时,他们将被带到带有 Contacts 标题元素的网页部分。
将a标签嵌套在段落中
你可以在其他文本元素内嵌套链接。
<p>
Here's a <a target="_blank" href="https://www.freecodecamp.org"> link to www.freecodecamp.org</a> for you to follow.
</p>
让我们来拆解一下这个例子。 通常,文本是被包裹在 p 元素内:
<p> Here's a ... for you to follow. </p>
接下来是锚点元素 <a>(它需要结束标签 </a>):
```html
<a> ... </a>
target 是锚点元素的一个属性,它用来指定链接的打开方式。 属性值 _blank 表示链接会在新标签页打开。 href 是锚点元素的另一个属性,它用来指定链接的 URL:
<a href="https://www.freecodecamp.org" target="_blank"> ... </a>
a 元素内的文本 link to www.freecodecamp.org 叫作锚文本,会显示为一个可以点击的链接:
<a href=" ... " target="...">link to freecodecamp.org</a>
此示例的最终输出结果是这样:
Here’s a link to www.freecodecamp.org for you to follow.
链接占位符#
有时你想为网站添加一个 a 元素,但还不确定要将它链接到哪里。 可以将 href 属性的值替换为#,以此来创建链接占位符。例如:
<a href="#" target="..."></a>
给图片添加链接
你可以通过把元素嵌套进 a 里使其变成一个链接。如果我们要把图片嵌套进 a 元素, 可以这样写:
<a href="#"><img src="https://cdn.freecodecamp.org/curriculum/cat-photo-app/relaxing-cat.jpg" alt="Three kittens running towards the camera."></a>
如果把 a 的 href 属性值设置为 #,创建的是一个死链接(不跳转到其他画面)。
列表标签
无序列表
HTML 有一个特定的元素用于创建无序列表。
无序列表以ul开始,中间包含一个或多个li元素, 最后以/ul结束。
例如:
<ul>
<li>milk</li>
<li>cheese</li>
</ul>
会创建一个要点列表,包括 milk 和 cheese。
有序列表
HTML 中有用于创建有序列表的特定元素。
有序列表以ol开始,中间包含一个或多个li元素。 最后以/ol结束。
例如:
<ol>
<li>Garfield</li>
<li>Sylvester</li>
</ol>
将创建一个包含 Garfield 和 Sylvester 的编号列表。
输入框标签
input 输入框可以让你轻松获得用户的输入。你可以像这样创建一个文本输入框:
<input type="text">
注意 input 输入框是没有结束标签的。
给输入框添加占位符文本
占位符文本是用户在 input 输入框中输入任何东西前的预定义文本。你可以像这样创建一个占位符:
<input type="text" placeholder="this is placeholder text">
注意: 别忘了 input 元素是 “自闭和标签”,即不需要结束标签。
表单
创建表单
我们可以只通过 HTML 来实现发送数据给服务器的表单, 只需要给 form 元素添加 action 属性即可。例如:
<form action="url-where-you-want-to-submit-form-data">
<input>
</form>
给表单添加提交按钮
给表单添加一个 submit(提交)按钮。 点击提交按钮时,表单中的数据将会被发送到 action 属性指定的 URL 上。例如:
<button type="submit">this button submits the form</button>
给表单添加一个必填字段
当你设计表单时,你可以指定某些字段为必填项(required),只有当用户填写了该字段后,才可以提交表单。
如果你想把文本输入框设置为必填项,在 input 元素中加上 required 属性就可以了,例如:
<input type="text" required>
单选框和复选框
创建一组单选按钮
单选按钮是 input 选择框的一种类型。
每一个单选按钮都应该嵌套在它自己的 label(标签)元素中。 这样,我们相当于给 input 元素和包裹它的 label 元素建立起了对应关系。
所有关联的单选按钮应该拥有相同的 name 属性。 创建一组单选按钮,选中其中一个按钮,其他按钮即显示为未选中,以确保用户只提供一个答案。
下面是一个单选按钮的例子:
<label>
<input type="radio" name="indoor-outdoor">Indoor
</label>
最佳实践是在 label 元素上设置 for 属性,让其值与相关联的 input 单选按钮的 id 属性值相同。 这使得辅助技术能够在标签和相关的 input 元素之间建立关联关系。 例如:
<input id="indoor" type="radio" name="indoor-outdoor">
<label for="indoor">Indoor</label>
我们也可以在 label 标签中嵌入 input 元素:
<label for="indoor">
<input id="indoor" type="radio" name="indoor-outdoor">Indoor
</label>
创建一组复选框
复选框是 input 选择框的一种类型。
每一个复选框都应该嵌套在它自己的 label(标签)元素中。这样我们相当于给 input 元素和包裹它的 label 元素建立起了对应关系。所有关联的复选框应该拥有相同的 name 属性。
使得 input 与 label 关联的最佳实践是在 label 元素上设置 for 属性,让其值与相关联的 input 复选框的 id 属性值相同。
下面是一个复选框的例子:
<label for="loving"><input id="loving" type="checkbox" name="personality"> Loving</label>
使用单选框和复选框的value属性
提交表单时,所选项的值会发送给服务端。 radio 和 checkbox 的 value 属性值决定了发送到服务端的实际内容。
例如:
<label for="indoor">
<input id="indoor" value="indoor" type="radio" name="indoor-outdoor">Indoor
</label>
<label for="outdoor">
<input id="outdoor" value="outdoor" type="radio" name="indoor-outdoor">Outdoor
</label>
这里有两个 radio 单选框。 当用户提交表单时,如果 indoor 选项被选中,表单数据会包含:indoor-outdoor=indoor。 也就是所选项的 name 和 value 属性值。
如果没有指明 value 属性值,则会使用默认值做为表单数据提交,也就是 on。 在这种情况下,如果用户选中 “indoor” 选项然后提交表单,表单数据则会包含 indoor-outdoor=on。 这样的表单数据看起来不够直观,因此最好将 value 属性值设置为一些有意义的内容。
给单选按钮和复选框添加默认选中项
用 checked 属性把第一个复选框和单选按钮都设置为默认选中。
为此,只需将单词 checked 添加到 input 元素的内部。 例如:
<input type="radio" name="test-name" checked>
元素嵌套
div 元素也叫内容划分元素,是一个包裹其他元素的通用容器。
它也是 HTML 中出现频率最高的元素。
和其他普通元素一样,你可以用
声明HTML的文档类型
在文档的顶部,我们需要告诉浏览器网页所使用的 HTML 的版本。 HTML 是一个在不停发展的语言,大部分浏览器都支持 HTML 的最新标准,也就是 HTML5。 大部分主流浏览器都支持最新的 HTML5 规范。 但是一些陈旧的网页可能使用的是老版本的 HTML。
你可以通过 来告诉浏览器页面上使用的 HTML 版本,”…” 部分就是版本号。 对应的就是 HTML5。
! 和大写的 DOCTYPE 是很重要的,尤其是对那些老的浏览器。 但 html 无论大写小写都可以。
所有的 HTML 代码都必须位于 html 标签中。 其中 位于 之后, 位于网页的结尾。
这是一个网页结构的列子。 你的 HTML 代码会在两个 html 标签之间。
<!DOCTYPE html>
<html>
</html>
定义HTML文档的head和body
html 的结构主要分为两大部分:head 和 body。 网页的描述应放入 head 标签, 网页的内容(向用户展示的)则应放入 body 标签。
比如 link、meta、title 和 style 都应放入 head 标签。
这是网页布局的一个例子:
<!DOCTYPE html>
<html>
<head>
<meta />
</head>
<body>
<div>
</div>
</body>
</html>
GitHub Issues