HTML 入门与进阶

文章の目录

HTML 概述

HTML 文件结构

HTML 文件结构

HTML5 文件结构

字符集与编码

乱码问题

HTML 标签

HTML 注释

HTML 标题

HTML 段落

HTML 文本修饰标签

加粗、斜体、下划线、删除线

角标效果

​编辑

HTML 预留格式

HTML 水平线

HTML 换行

HTML 缩写

HTML 区域

HTML 行内组合

HTML 图像

绝对路径和相对路径

HTML 超链接

HTML 列表

无序列表

有序列表

自定义列表

HTML 表格

表格布局

表格属性

单元格跨行和跨列

HTML 表单

HTML 表单元素

文本框、密码框

按钮

单选框、复选框

文件上传

隐藏字段

label 标签

下拉列表

表单元素分组

文本域

选项列表

表单元素属性

按钮

内联框架

页面中嵌入另一个文档

区域中内容的切换

框架集

Web 语义化

HTML 范围内的语义化


正文

HTML 概述

HTML(HyperText MarkUp Language):超文本标记语言

  • 是制作网页的标准语言
  • HTML 不区分大小写,但建议小写
  • 标记语言是一套标记标签
  • HTML 使用标记标签来描述网页

HTML 标签:HTML 标记标签通常被称为 HTML 标签

  • 由尖括号包围。
  • 通常是成对出现的。
  • 标签对中第一个标签是开始标签,第二个标签是结束标签。
  • 双标签:由开始标签和结束标签两部分构成,结束标签比开始标签多了一个“/”,必须成对使用。

    单标签:在开始标签中进行关闭,即以开始标签的结束而结束。

HTML 文档 = 网页

  • HTML 文档描述网页
  • HTML 文档包含 HTML 标签和纯文本
  • HTML 文档也被称为网页

HTML 元素

  • HTML 元素指的是从开始标签到结束标签的所有代码。
  • 大多数 HTML 元素可以嵌套(可以包含其他 HTML 元素)。

HTML 属性

  • HTML 标签可以拥有属性。属性提供了有关 HTML 元素的更多的信息。
  • 属性总是以名称/值对的形式出现,比如 name="value"。
  • 属性总是在 HTML 元素的开始标签中规定。

HTML 文件结构

.htm 或 .html 文件

HTML 文件结构

<html>
    <head>
        
    </head>
    <body>
        
    </body>
</html>
  • 头部:浏览器、搜索引擎所需信息
  • 主体:网页中包含的具体内容

HTML5 文件结构

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
</head>
<body>
</body>
</html>
  • <!DOCTYPE html>:文档类型:符合 HTML5 标准。
  • lang 属性:英语 language 的缩写,意思是语言:"en" 代表英语,"zh-CN" 代表中文。
  • <meta>:元数据
  • charset属性:字符集编码方式

字符集与编码

字符(Character):文字、符号,如123 abc 一二三 ! , %@

字符集(Charset):字符的集合

  • 字符集——语言文字
  • 比如英文字符集、汉字字符集、日文汉字字符集

编码:将字符和二进制码对应起来

HTML 字符集:

  • ASCII:数字、英文字母、符号进行了编码
  • GB2312:简体中文
  • Unicode:所有语言
  • UTF-8:所有语言,占用空间更小

乱码问题

  • 源文件保存时的编码
  • 源文件声明 <meta charset="编码方式">

不一致,就会出现乱码问题。

HTML 标签

HTML 注释

<!-- This is a comment -->

HTML 标题

标题是通过 <h1> - <h6> 等标签进行定义的。

<h1>定义最大的标题(一级标题),<h6>定义最小的标题(六级标题)。

例:

<h1>一级标题</h1>

注:

  • 浏览器会自动地在标题的前后添加空行(标题独占一行,自动换行)。
  • 默认情况下,HTML 会自动地在块级元素前后添加一个额外的空行,比如段落、标题元素。

HTML 段落

<p>这是一个段落</p>

注:

  • 浏览器会自动地在段落的前后添加空行( <p> 是块级元素)。
  • 当显示页面时,浏览器会移除源代码中多余的空格和空行。所有连续的空格或空行都会被算作一个空格。需要注意的是,HTML 代码中的所有连续的空行(换行)也被显示为一个空格。
  • 空格字符:&nbsp;

HTML 文本修饰标签

加粗、斜体、下划线、删除线

<b>加粗</b>
<i>斜体</i>
<u>下划线</u>
<s>删除线</s>    <!-- HTML5 不支持 s 标签,请使用 del 标签 -->

<!-- 推荐使用语义化标签取而代之 -->

<strong></strong>
<em></em>
<ins></ins>
<del></del>

角标效果

<!-- 上角标 -->
2<sup>10</sup>

<!-- 下角标 -->
H<sub>2</sub>O

HTML 预留格式

<pre>
function() {
    console.log("Hello");
}
</pre>

定义预格式化的文本。

文本中的空格和换行符都会被保留。

注:

  • <pre> 标签的一个常见应用就是用来表示计算机的源代码

HTML 水平线

<hr />

<hr /> 标签在 HTML 页面中创建水平线

hr 元素可用于分隔内容

HTML 换行

<br />

HTML 缩写

<abbr title="巴黎圣日耳曼" > PSG </abbr>

  • <abbr> 标签标记一个缩写
  • title 属性定义鼠标悬浮在字体上时的提示文字

HTML 区域

<div></div>

HTML 行内组合

<span></span>

组合行内元素,以便通过 css 样式来格式化

HTML 图像

<img src="url" alt="替换文本"/>

url 属性指存储图像的位置。

alt 属性用来为图像定义一串预备的可替换的文本。当浏览器无法载入图像时,替换文本属性可以告诉读者他们失去的信息。

注:

  • title 属性定义鼠标悬浮在图片上时的提示文字。

绝对路径和相对路径

绝对路径:以根目录为基准

相对路径:以该文档所在位置为基准

  • "." —— 代表目前所在的目录,可以省略"./"直接引用
  • "../" —— 表示源文件所在目录的上一级目录
  • 引用下级目录的文件,直接写下级目录文件的路径即可

HTML 超链接

<a href="url">文字或图片</a>

href 属性规定链接的目标。

target 属性规定在何处打开链接文档:

  • target="_blank" —— 浏览器总在一个新打开、未命名的窗口中载入目标文档
  • target="_self" —— 默认。在相同的框架中打开被链接文档

补充:

<!-- 虚拟超链接 -->
<a href="#"></a>


<!-- 锚链接 -->
<a href="#idName"></a>
<!-- 链接到 id = idName 的元素处 -->


<!-- 唤起指定应用 -->
<a href="tel:12345678999">电话</a>
<a href="mailto:sample@163.com">邮箱</a>
<a href="sms:10086">短信</a>
<!-- 在移动设备(手机)上效果更好,此处只列举了三种唤起应用的方法 -->

HTML 列表

无序列表

无序列表始于 <ul> 标签。每个列表项始于 <li> 标签。

此列表项目使用粗体圆点(典型的小黑圆圈)进行标记。

有序列表

有序列表始于 <ol> 标签。每个列表项始于 <li> 标签。

此列表项目使用数字进行标记。

注:

  • 列表的列表项内部可以使用段落、换行符、图片、链接以及其他列表等等。

例:

<ul>
    <li><a href="#">无序列表内嵌套超链接</a></li>
    <li><a href="#">无序列表内嵌套超链接</a></li>
</ul>

自定义列表

<dl>
    <dt>列表项</dt>
    <dd>对列表项的描述</dd>
    <dt>列表项</dt>
    <dd>对列表项的描述</dd>
</dl>

注:

  • 自定义列表不仅仅是一列项目,而是项目及其注释的组合。
  • 自定义列表以 <dl> 标签开始。每个自定义列表项以 <dt> 开始。每个自定义列表项的描述以 <dd> 开始。

HTML 表格

表格由 <table> 标签来定义。每个表格均有若干行(由 <tr> 标签定义),每行被分割为若干单元格(由 <td> 标签定义)。

表格布局

表格的标题

  • <caption> 标签定义表格的标题。
  • <caption> 标签必须直接放置到 <table> 标签之后。
  • 每个表格只能定义一个标题。

表格的头部、主体和尾部

<thead> 标签定义表格的表头。该标签用于组合 HTML 表格的表头内容。

<tfoot> 标签定义表格的页脚(脚注或表注)。该标签用于组合 HTML 表格中的表注内容。

<tbody> 标签定义表格主体(正文)。该标签用于组合 HTML 表格的主体内容。

注:

  • thead、tfoot 以及 tbody 元素应该结合起来使用。
  • 必须在 table 元素内部使用这些标签。

表格的行和单元格

<tr> 标签定义 HTML 表格中的行。

<th> 标签定义表格中的表头单元格。大多数浏览器会把表头显示为粗体居中的文本。

<td> 标签定义表格中的标准单元格

注:

  • HTML 表格有两类单元格:
    • 表头单元 —— 包含头部信息(由 th 元素创建)
    • 标准单元 —— 包含数据(由 td 元素创建)
  • tr 元素包含一个或多个 th 或 td 元素

实例:

<!-- 表格的整体标准实现 -->
<table border="1">
    <caption></caption>
    <thead>
        <tr>
            <th></th>
        </tr>
    </thead>

    <tfoot>
        <tr>
            <td></td>
        </tr>
    </tfoot>

    <tbody>
        <tr>
            <td></td>
        </tr>
    </tbody>
</table>

<!-- 表格的简化实现 -->
<table border="1">
    <tr>
        <th></th>
    </tr>
    <tr>
        <td></td>
    </tr>
</table>

表格属性

<table> 标签属性

border:规定表格边框的宽度。如果不定义边框属性,表格将不显示边框。

cellpadding:规定单元边沿与其内容之间的空白

cellspacing:规定单元格之间的空白

其他属性

align:<table> 标签的 align 属性规定表格相对于周围元素的对齐方式。<thead>、<tfoot>、<tbody>、<tr>、<th>、<td> 标签的 align 属性规定其中内容的水平对齐方式。

valign:<thead>、<tfoot>、<tbody>、<tr>、<th>、<td> 标签的 valign 属性规定其中内容的垂直对齐方式。

width、height、bgcolor

注:

  • 在设置元素样式的时候,请使用 css 样式代替元素的样式属性。

单元格跨行和跨列

<td> rowspan 属性 —— 单元格跨行

语法:

<td rowspan="number"></td>

<!--
number:规定单元格应该横跨的行数
-->

<td> colspan 属性 —— 单元格跨列

语法:

<td colspan="number"></td>

<!--
number:规定单元格应该横跨的列数
-->

HTML 表单

<form action="数据处理网页" method="">表单元素</form>

  • 是一个区域,采集用户信息。
  • action 属性定义在提交表单时执行的动作。
  • method 属性规定在提交表单时所用的 HTTP 方法( GET 或 POST )。

HTML 表单元素

文本框、密码框、按钮、单选、复选、下拉列表、文本域等。

文本框、密码框

<!-- 文本框 -->
<input type="text" name="" value="" />

<!-- 密码框 -->
<input type="password" name="" value="" />

注:

  • value 属性的值为默认文本。

按钮

<!-- 按钮 -->
<!-- 普通按钮,点击时不进行任何操作,可以和 JavaScript 结合使用以实现按钮的触发的功能 -->
<input type="button" value="按钮" />

<!-- 提交按钮 -->
<!-- 点击时会提交表单 -->
<input type="submit" value="提交" />

<!-- 重置按钮 -->
<!-- 点击时会重置表单中的所有元素 -->
<input type="reset" value="重置" />

注:

  • value 属性的值为按钮上显示的文字。

单选框、复选框

<!-- 单选框 -->
<input type="radio" name="" value="" />

<!-- 复选框 -->
<input type="checkbox" name="" value="" />

注:

  • checked:当设置 checked(checked="checked")时,该选项被默认选中。
  • value 属性值的内容不会出现在用户界面。value 属性值只在提交表单时向服务端传递数据(处于选中状态的按钮的值才会传递到服务端、未选中按钮是不会传递数据到服务端的)。
  • 单选框 name 属性的值需要一致,复选框则不需要。

文件上传

<!-- 定义文件选择字段和“选择文件”(“选择...”)按钮,供文件上传 -->
<input type="file" name="" />

隐藏字段

<!-- 定义隐藏字段,隐藏字段对于用户是不可见的,但是其数据会随着表单一起提交。隐藏字段常常存储默认值,或者由 JavaScript 改变它们的值 -->
<input type="hidden" name="" value="" />

label 标签

<label> 标签为 input 元素定义标注(标记)。

label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。

<label> 标签的 for 属性应当与相关元素的 id 属性相同。

注:

  • "for" 属性可把 label 绑定到另外一个元素。请把 "for" 属性的值设置为相关元素的 id 属性的值。

例:

<input type="radio" name="gender" id="male" value="male"/><label for="male">男</label>
<input type="radio" name="gender" id="female" value="female"/><label for="female">女</label>

下拉列表

  • <select> 元素定义下拉列表
  • <option> 元素定义待选择的选项

例:

<select name="cars">
    <option value="volvo">Volvo</option>
    <option value="saab">Saab</option>
    <option value="fiat">Fiat</option>
    <option value="audi">Audi</option>
</select>

注:

  • 列表通常会把首个选项显示为被选选项。
  • 可以通过添加 selected 属性来定义预定义选项(被选择的那一项)。

<optgroup> 标签

  • <optgroup> 标签定义选项组。
  • <optgroup> 元素用于组合选项。当您使用一个长的选项列表时,对相关的选项进行组合会使处理更加容易。
  • 必需的属性:label 属性,为选项组规定描述。

例:

籍贯:
<select>
    <optgroup label="石家庄市">
        <option>裕华区</option>
        <option>桥西区</option>
    </optgroup>

    <optgroup label="邯郸市">
        <option>丛台区</option>
        <option>邯山区</option>
    </optgroup>
</select>

表单元素分组

使用 <fieldset> 标签对表单中的相关元素进行分组。

<fieldset> 标签可以将表单内的相关元素分组。

<fieldset> 标签会在相关表单元素周围绘制边框。

<legend> 标签为 <fieldset> 元素定义标题。

例:

<fieldset>
    <legend>基本信息</legend>
    姓名:<input type="text" />
    爱好:<input type="text" />
</fieldset>

文本域

<textarea> 标签定义一个多行的文本输入控件。

文本区域中可容纳无限数量的文本,其中的文本的默认字体是等宽字体(通常是 Courier)。

可以通过 cols 和 rows 属性来规定 textarea 的尺寸大小,不过更好的方法是使用 CSS 的 height 和 width 属性。

选项列表

<datalist> 标签定义选项列表。请与 input 元素配合使用该元素,来定义 input 可能的值。

datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表。

请使用 input 元素的 list 属性来绑定 datalist。

例:

<input list="cars" />
<datalist id="cars">
    <option>Pagani</option>
    <option>Bentley</option>
    <option>Porsche</option>
    <option>Bugatti</option>
    <option>Lamborghini</option>
</datalist>

<!--
    1、datalist 设置 id 属性
    2、在关联的 input 输入框 设置 list 属性引用 id 值(不需要 # 号)
-->

表单元素属性

1、name 属性:

  • name 属性规定 input 元素的名称。
  • name 属性用于对提交到服务器的表单数据进行标识,或者在客户端通过 JavaScript 引用表单数据。
  • 只有设置了 name 属性的表单元素才能在提交表单时传递它们的值。

2、其他 input 元素属性:

  • readonly 属性
    • readonly 属性规定输入字段为只读(不能修改)。
    • readonly 属性不需要值。它等同于 readonly="readonly"。
  • disabled 属性
    • disabled 属性规定输入字段是禁用的。
    • 被禁用的元素是不可用和不可点击的。
    • 被禁用的元素不会被提交。
    • disabled 属性不需要值。它等同于 disabled="disabled"。
  • maxlength 属性
    • maxlength 属性规定输入字段允许的最大长度。
    • 如设置 maxlength 属性,则输入控件不会接受超过所允许数的字符。
    • 该属性不会提供任何反馈。如果需要提醒用户,则必须编写 JavaScript 代码。

按钮

<button> 标签定义一个按钮。

在 <button> 元素内部,可以放置内容,比如文本或图像。这是该元素与使用 <input> 元素创建的按钮之间的不同之处。

注:

  • 请始终为 <button> 元素规定 type 属性。不同的浏览器对 <button> 元素的 type 属性使用不同的默认值。
    • type 属性值:
      • button
      • reset
      • submit
  • 如果在 HTML 表单中使用 <button> 元素,不同的浏览器可能会提交不同的按钮值。请使用 <input> 在 HTML 表单中创建按钮。

内联框架

<iframe> 标签规定一个内联框架。

一个内联框架被用来在当前 HTML 文档中嵌入另一个文档。

属性:

  • src —— 规定在 <iframe> 中显示的文档的 URL。
  • name —— 规定 <iframe> 的名称。

注:

  • 可以把需要的文本放置在 <iframe> 和 </iframe> 之间,这样就可以应对不支持 <iframe> 的浏览器。
  • 使用 CSS 为 <iframe>(包括滚动条)定义样式。

页面中嵌入另一个文档

<body>
    <div>
	    <h1>页面头部</h1>
	</div>
	<div>
		<h1>页面主体内容</h1>
		<iframe src="main.html">
			您的浏览器不支持 iframe。
		</iframe>
	</div>
	<div>
		<h1>页面尾部</h1>
	</div>
</body>

main.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<p>这里是页面的主体内容。</p>
	</body>
</html>

效果:

区域中内容的切换

操作步骤:

  1. 在内联框架 iframe 元素设置 name 属性
  2. 在相应需要关联的元素 设置 target 属性,引用内联框架的 name 属性值
<body>
	<div>
		<h4>学生列表:</h4>
		<ol>
			<li><a href="./zhangsan.html" target="student">张三</a></li>
			<li><a href="./lisi.html" target="student">李四</a></li>
			<li><a href="./wangwu.html" target="student">王五</a></li>
		</ol>
		<iframe src="details.html" name="student">
			您的浏览器不支持 iframe。
		</iframe>
	</div>
</body>

zhangsan.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<ul>
			<li>学号:1001</li>
			<li>姓名:张三</li>
			<li>性别:男</li>
			<li>年龄:22</li>
		</ul>
	</body>
</html>

details.html:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<p>点击上方学生列表显示学生详细信息</p>
	</body>
</html>

效果:

框架集

<frameset> 标签定义一个框架集(HTML5 不支持 <frameset> 标签)。

<frame> 标签定义 <frameset> 中的子窗口(框架)(HTML5 不支持 <frame> 标签)。

<frameset> 元素被用来组织一个或者多个 <frame> 元素。每个 <frame> 有各自独立的文档。

<frameset> 元素规定在框架集中存在多少列或多少行,以及每行每列占用的百分比/像素。

属性:

  • cols —— 规定框架集中列的数目和尺寸
  • rows —— 规定框架集中行的数目和尺寸

注:

  • <frameset> 标签不能写在 <body> 标签之中,当有 <frameset> 标签时就不能有 <body> 标签。

例:

<frameset cols="25%,*,25%">
<!-- * 表示占用区域的剩余空间 -->
	<frame src="./zhangsan.html" >
	<frame src="./lisi.html" >
	<frame src="./wangwu.html" >
</frameset>

<frameset> 标签可以嵌套:

<frameset rows="12%,*">

    <frame src="top.html" />

	<frameset cols="20%,*">
	    <frame src="left.html" />			
		<frame src="right.html" name="rightframe" />
        <!-- 在 left.html 中相应需要关联的元素设置 target 属性,引用 name 属性值(rightframe),可以实现在右侧区域中内容的切换 -->
	</frameset>
	
</frameset>	

Web 语义化

让页面具有良好的结构与含义,从而让人和机器都能快速理解网页内容。

优点:

  • 结构清晰,利于团队的开发、维护
  • 有利于搜索引擎理解
  • SEO(Search Engine OPtimization)搜索引擎优化
  • 兼容不同设备

HTML 范围内的语义化

<i>斜体,无语义</i>
<em>强调</em>


<b>粗体,无语义</b>
<strong>重点强调</strong>


<u>下划线,无语义</u>
<ins>下划线</ins>


<s>删除线,无语义</s>
<del>删除线</del>

以上几组实现效果一样,但是下面是语义化标签,更推荐使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值