邂逅HTML | 青训营

35 阅读16分钟

1. HTML常用标签

1.1 排版标签

排版标签主要和css搭配使用,显示网页结构的标签,是网页布局最常用的标签。

1)标题标签h

其基本语法格式如下:

<h1>   标题文本   </h1>
<h2>   标题文本   </h2>
<h3>   标题文本   </h3>
<h4>   标题文本   </h4>

2)段落标签p

作用语义:

可以把 HTML 文档分割为若干段落。在网页中要把文字有条理地显示出来,离不开段落标签,就如同我们平常写文章一样,整个网页也可以分为若干个段落,而段落的标签就是

<p>  文本内容  </p>

是HTML文档中最常见的标签,默认情况下,文本在一个段落中会根据浏览器窗口的大小自动换行。

3)水平线标签hr

在网页中常常看到一些水平线将段落与段落之间隔开,使得文档结构清晰,层次分明。这些水平线可以通过插入图片实现,也可以简单地通过标签来完成,就是创建横跨网页水平线的标签。其基本语法格式如下:


<hr/>是单标签

在网页中显示默认样式的水平线。

4)换行标签br

在HTML中,一个段落中的文字会从左到右依次排列,直到浏览器窗口的右端,然后自动换行。如果希望某段文本强制换行显示,就需要使用换行标签

<br/>

5)div 和 span标签

div span 是没有语义的 是我们网页布局主要的2个盒子 想必你听过 css+div

<div> 这是头部 </div>
<span>今日价格</span>
  • div标签 用来布局的,但是现在一行只能放一个div
  • span标签 用来布局的,一行上可以放好多个span

1.2 文本格式化标签

在网页中,有时需要为文字设置粗体、斜体或下划线效果,这时就需要用到HTML中的文本格式化标签,使文字以特殊的方式显示。

1.3 标签属性

所谓属性就是外在特性 比如 手机的颜色 手机的尺寸 ,总结就是手机的。。

  • 手机的颜色是黑色n
  • 手机的尺寸是 8寸
  • 水平线的长度是 200
  • 图片的宽度 是 300

使用HTML制作网页时,如果想让HTML标签提供更多的信息,可以使用HTML标签的属性加以设置。其基本语法格式如下:

<标签名 属性1="属性值1" 属性2="属性值2" …> 内容 </标签名>
<手机 颜色="红色" 大小="5寸">  </手机>

1.4 图像标签img

要想在网页中显示图像就需要使用图像标签,接下来将详细介绍图像标签以及和他相关的属性。

语法如下:

<img src="图像URL" />

该语法中src属性用于指定图像文件的路径和文件名,他是img标签的必需属性。

border 后面我们会用css来做,这里就记住这个border 单词就好了

**注意: **

  1. 标签可以拥有多个属性,必须写在开始标签中,位于标签名后面。
  2. 属性之间不分先后顺序,标签名与属性、属性与属性之间均以空格分开。
  3. 采取 键值对 的格式 key="value" 的格式

1.5 链接标签

在HTML中创建超链接非常简单,只需用标签把文字包括起来就好。

语法格式:

<a href="跳转目标" target="目标窗口的弹出方式">文本或图像</a>

href:用于指定链接目标的url地址,(必须属性)当为标签应用href属性时,它就具有了超链接的功能

target:用于指定链接页面的打开方式,其取值有_self和_blank两种,其中_self为默认值,__blank为在新窗口中打开方式。

注意:

  1. 外部链接 需要添加 http:// www.baidu.com
  2. 内部链接 直接链接内部页面名称即可 比如 < a href="index.html"> 首页
  3. 如果当时没有确定链接目标时,通常将链接标签的href属性值定义为“#”(即href="#"),表示该链接暂时为一个空链接。
  4. 不仅可以创建文本超链接,在网页中各种网页元素,如图像、表格、音频、视频等都可以添加超链接。
  5. 下载链接:如果href里面地址是一个文件或压缩包,会下载这个文件
  6. 锚点链接:跳转作用

1.6 特殊字符

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DPCDK6or-1649660175960)(C:\Users\28318\AppData\Roaming\Typora\typora-user-images\image-20211223140528608.png)]

要用到时查一下就行

2. 路径

实际工作中,我们的文件不能随便乱放,否则用起来很难快速的找到他们,因此我们需要一个文件夹来管理他们。

**目录文件夹: **

就是普通文件夹,里面只不过存放了我们做页面所需要的 相关素材,比如 html文件, 图片 等等。

**根目录 **

打开目录文件夹的第一层 就是 根目录

页面中的图片会非常多, 通常我们再新建一个文件夹专门用于存放图像文件(images),这时再插入图像,就需要采用“路径”的方式来指定图像文件的位置。路径可以分为: 相对路径和绝对路径

相对路径

以引用文件之网页所在位置为参考基础,而建立出的目录路径。因此,当保存于不同目录的网页引用同一个文件时,所使用的路径将不相同,故称之为相对路径。

同一级路径,只需输入图像文件的名称即可。

下一级路径,加一个“/”

上一级路径,加上“../”

绝对路径

绝对路径以Web站点根目录为参考基础的目录路径。之所以称为绝对,意指当所有网页引用同一个文件时,所使用的路径都是一样的。

D:\web\img\logo.gif,或完整的网络地址,例如 www.itcast.cn/images/logo…

注意:

绝对路径用的较少,我们理解下就可以了。 但是要注意,它的写法 特别是符号 \ 并不是 相对路径的 /

3. 表格 table

3.1 创建表格

在HTML网页中,要想创建表格,就需要使用表格相关的标签。

创建表格的基本语法:

<table>
  <tr>
    <td>单元格内的文字</td>
    ...
  </tr>
  ...
</table>

要深刻体会表格、行、单元格他们的构成。

在上面的语法中包含基本的三对HTML标签,分别为 table、tr、td,他们是创建表格的基本标签,缺一不可,下面对他们进行具体地解释

  1. table用于定义一个表格标签。
  2. tr标签 用于定义表格中的行,必须嵌套在 table标签中。
  3. td 用于定义表格中的单元格,必须嵌套在标签中。
  4. 字母 td 指表格数据(table data),即数据单元格的内容,现在我们明白,表格最合适的地方就是用来存储数据的。

**总结: **

  • 表格的主要目的是用来显示特殊数据的
  • 一个完整的表格有表格标签(table),行标签(tr),单元格标签(td)组成,没有列的标签
  • 中只能嵌套 类的单元格
  • 标签,他就像一个容器,可以容纳所有的元素

3.2 表格属性

表格有部分属性我们不常用,这里重点记住 cellspacing 、 cellpadding。

我们经常有个说法,是三参为0, 平时开发的我们这三个参数 border cellpadding cellspacing 为 0

案例1:

<table width="500" height="300" border="1" cellpadding="20" cellspacing="0" align="center">
   <tr>  <th>姓名</th>   <th>性别</th> <th>年龄</th>  </tr>
   <tr>  <td>刘德华</td> <td></td> <td>55</td>  </tr>
   <tr>  <td>郭富城</td> <td></td> <td>52</td>  </tr>
   <tr>  <td>张学友</td> <td></td> <td>58</td>  </tr>
   <tr>  <td>黎明</td>   <td></td> <td>18</td>  </tr>
   <tr>  <td>刘晓庆</td> <td></td> <td>63</td>  </tr>
</table>

3.3 表头单元格标签th

作用:

一般表头单元格位于表格的第一行或第一列,并且文本加粗居中

语法:

只需用表头标签替代相应的单元格标签即可。

<table width="500" border="1" align="center" cellspacing="0" cellpadding="0">
		<tr>  
			<th>姓名</th> 
			<th>性别</th>
			<th>电话</th>
		</tr>
		<tr>
			<td>小王</td>
			<td></td>
			<td>110</td>
		</tr>
		<tr>
			<td>小明</td>
			<td></td>
			<td>120</td>
		</tr>	
	</table>

th 也是一个单元格 只不过和普通的 td单元格不一样,它会让自己里面的文字居中且加粗

3.4 表格标题caption

定义和用法

<table>
   <caption>我是表格标题</caption>
</table>

**注意: **

  1. caption 元素定义表格标题,通常这个标题会被居中且显示于表格之上。
  2. caption 标签必须紧随 table 标签之后。
  3. 这个标签只存在 表格里面才有意义。

3.5 合并单元格(难点)

合并单元格是我们比较常用的一个操作,但是不会合并的很复杂。

3.5.1 合并单元格2种方式

  • 跨行合并:rowspan="合并单元格的个数"
  • 跨列合并:colspan="合并单元格的个数"

3.5.2 合并单元格顺序

**合并的顺序我们按照 先上 后下 先左 后右 的顺序 **

3.5.3 合并单元格三步曲

  1. 先确定是跨行还是跨列合并
  2. 根据 先上 后下 先左 后右的原则找到目标单元格 然后写上 合并方式 还有 要合并的单元格数量 比如 :
  3. 删除多余的单元格 单元格

3.6 拓展阅读@

表格划分结构

对于比较复杂的表格,表格的结构也就相对的复杂了,所以又将表格分割成三个部分:题头、正文和脚注。而这三部分分别用:thead,tbody,tfoot来标注, 这样更好的分清表格结构

注意:

  1. 用于定义表格的头部。用来放标题之类的东西。
  2. 用于定义表格的主体。放数据本体 。
  3. 放表格的脚注之类。
  4. 以上标签都是放到table标签中。

4. 列表标签

前面我们知道表格一般用于数据展示的,但是网页中还是有很多跟表格类似的布局,如下图~~ 我们用什么做呢?

答案是列表, 那什么是列表? 表格是用来显示数据的,那么列表就是用来布局的。 因为非常整齐和自由

4.1 无序列表 ul

无序列表的各个列表项之间没有顺序级别之分,是并列的。其基本语法格式如下:

<ul>
  <li>列表项1</li>
  <li>列表项2</li>
  <li>列表项3</li>
  ......
</ul>

4.2 有序列表 ol

有序列表即为有排列顺序的列表,其各个列表项按照一定的顺序排列定义,有序列表的基本语法格式如下:

<ol>
  <li>列表项1</li>
  <li>列表项2</li>
  <li>列表项3</li>
  ......
</ol>

所有特性基本与ul 一致。 但是实际中比 无序列表 用的少很多。

4.3 自定义列表

定义列表常用于对术语或名词进行解释和描述,定义列表的列表项前没有任何项目符号。其基本语法如下:

<dl>
  <dt>名词1</dt>
  <dd>名词1解释1</dd>
  <dd>名词1解释2</dd>
  ...
  <dt>名词2</dt>
  <dd>名词2解释1</dd>
  <dd>名词2解释2</dd>
  ...
</dl>

5. 表单标签

**作用: **

表单目的是为了收集用户信息。

在我们网页中, 我们也需要跟用户进行交互,收集用户资料,此时也需要表单。

在HTML中,一个完整的表单通常由表单控件(也称为表单元素)、提示信息和表单域3个部分构成。

**表单控件: **

包含了具体的表单功能项,如单行文本输入框、密码输入框、复选框、提交按钮、重置按钮等。

提示信息:

一个表单中通常还需要包含一些说明性的文字,提示用户进行填写和操作。

表单域:

他相当于一个容器,用来容纳所有的表单控件和提示信息,可以通过他定义处理表单数据所用程序的url地址,以及数据提交到服务器的方法。如果不定义表单域,表单中的数据就无法传送到后台服务器。

5.1 input 控件

  • 语法:
<input type="属性值" value="你好">
  • 标签为单标签
  • type属性设置不同的属性值用来指定不同的控件类型
  • 除了type属性还有别的属性
  • 常用属性:

1. type 属性

  • 这个属性通过改变值,可以决定了你属于那种input表单。
  • 比如 type = 'text' 就表示 文本框 可以做 用户名, 昵称等。
  • 比如 type = 'password' 就是表示密码框 用户输入的内容 是不可见的。
用户名: <input type="text" /> 
密  码:<input type="password" />

2. value属性值

用户名:<input type="text"  name="username" value="请输入用户名">
  • value 默认的文本值。 有些表单想刚打开页面就默认显示几个文字,就可以通过这个value 来设置。

3. name属性

用户名:<input type="text"  name=“username” />

name表单的名字, 这样,后台可以通过这个name属性找到这个表单。 页面中的表单很多,name主要作用就是用于区别不同的表单。

  • name属性后面的值,是我们自己定义的。
  • radio 如果是一组,我们必须给他们命名相同的名字 name 这样就可以多个选其中的一个啦
<input type="radio" name="sex"  /><input type="radio" name="sex" />
  • name属性,我们现在用的较少, 但是,当我们学ajax 和后台的时候,是必须的。

4. checked属性

  • 表示默认选中状态。 较常见于 单选按钮和复选按钮。
性    别:
<input type="radio" name="sex" value="男" checked="checked" /><input type="radio" name="sex" value="女" />

上面这个,表示就默认选中了 男 这个单选按钮

5.2 label标签

目标:

label标签主要目的是为了提高用户体验。 为用户提高最优秀的服务。

概念:

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

作用:

用于绑定一个表单元素, 当点击label标签的时候, 被绑定的表单元素就会获得输入焦点。

如何绑定元素呢?

  1. 第一种用法就是用label直接包括input表单。
<label> 用户名: <input type="type" name="usename" value="请输入用户名">   </label>
  1. 第二种用法 for 属性规定 label 与哪个表单元素绑定。
<label for="sex"></label>
<input type="radio" name="sex"  id="sex">

当我们鼠标点击 label标签里面的文字时, 光标会定位到指定的表单里面

5.3 textarea控件(文本域)

  • 语法:
<textarea >
  文本内容
</textarea>
  • 作用:

    通过textarea控件可以轻松地创建多行文本输入框.cols="每行中的字符数" rows="显示的行数" 我们实际开发不用

5.4 select下拉列表

语法:

<select>
  <option>选项1</option>
  <option>选项2</option>
  <option>选项3</option>
  ...
</select>
  • 注意:
  1. 中至少包含一对 option
  2. 在option 中定义selected =" selected "时,当前项即为默认选中项。
  3. 但是我们实际开发会用的比较少

6. form表单域

收集的用户信息怎么传递给服务器?

通过form表单域

目的:

在HTML中,form标签被用于定义表单域,以实现用户信息的收集和传递,form中的所有内容都会被提交给服务器。

**语法: **

<form action="url地址" method="提交方式" name="表单名称">
  各种表单控件
</form>

常用属性:

action: url地址 用于指定接收并处理表单数据的服务器程序的url地址。

method: get/post 用于设置表单数据的提交方式,其取值为get或post。

name: 名称 用于指定表单的名称,以区分同一个页面中的多个表单。

注意:

每个表单都应该有自己表单域。我们现在做页面,不写看不到效果,但是 如果后面学 ajax 后台交互的时候,必须需要 form表单域。

7. 高频面试题

1. src 和 href 的区别

src 和 href 都是用来引用外部的资源,它们的区别如下:

  • src: 表示对资源的引用,它指向的内容会嵌入到当前标签所在的位置。src 会将其指向的资源下载并应⽤到⽂档内,如请求 js 脚本。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执⾏完毕,所以⼀般 js 脚本会放在页面底部。
  • href: 表示超文本引用,它指向一些网络资源,建立和当前元素或本文档的链接关系。当浏览器识别到它指向的⽂件时,就会并⾏下载资源,不会停⽌对当前⽂档的处理。 常用在 a、link 等标签上。

简单来说,src 执行时会暂停其他资源的处理,href 不会

2. 对 HTML 语义化的理解

语义化是指 根据内容的结构化(内容语义化),选择合适的标签(代码语义化)。通俗来讲就是用正确的标签做正确的事情。

语义化的优点如下:

  • 对机器友好,带有语义的文字表现力丰富,更适合搜索引擎的爬虫爬取有效信息,有利于 SEO。除此之外,语义类还支持读屏软件,根据文章可以自动生成目录;
  • 对开发者友好,使用语义类标签增强了可读性,结构更加清晰,开发者能清晰的看出网页的结构,便于团队的开发与维护。

常见的语义化标签:

<header></header>  头部

<nav></nav>  导航栏

<section></section>  区块(有语义化的div)

<main></main>  主要区域

<article></article>  主要内容

<aside></aside>  侧边栏

<footer></footer>  底部

3. script 标签中 defer 和 async 的区别

如果没有 defer 或 async 属性,浏览器会立即加载并执行相应的脚本。它不会等待后续加载的文档元素,读取到就会开始加载和执行,这样就阻塞了后续文档的加载。

下图可以直观的看出三者之间的区别:

image.png

其中蓝色代表 js 脚本网络加载时间,红色代表 js 脚本执行时间,绿色代表 html 解析。

defer 和 async 属性都是去异步加载外部的 JS 脚本文件,它们都不会阻塞页面的解析,其区别如下:

  • 执行顺序: 多个带 async 属性的标签,不能保证加载的顺序;多个带 defer 属性的标签,按照加载顺序执行;
  • **脚本是否并行执行:**async 属性,当浏览器遇到 script 标签时,文档的解析不会停止,其他线程将下载脚本,脚本下载完成后开始执行脚本,脚本执行的过程中文档将停止解析,直到脚本执行完毕;defer 属性,加载后续文档的过程和 JS 脚本的加载(此时仅加载不执行)是并行进行的(异步——新开了个线程去加载脚本),JS 脚本需要等到文档所有元素解析完成之后才执行,DOMContentLoaded 事件触发执行之前。

推荐的应用场景

defer

如果你的脚本代码依赖于页面中的DOM元素(文档是否解析完毕),或者被其他脚本文件依赖。

async

如果你的脚本并不关心页面中的DOM元素(文档是否解析完毕),并且也不会产生其他脚本需要的数据。

defer是“渲染完再执行”,async是“下载完就执行”