HTML的碎碎念
搜索引擎优化SEO
大多数网站的新浏览者大都来自搜索引擎,而且搜索引擎的用户往往只会留意搜索结果中排名前面的几个网站,因此网站的拥有者不仅要到各大搜索引擎进行登录,还要设法提高网站在搜索结果中的排名。
搜索引擎优化(SEO)是指通过优化网站结构、内容和性能,使其更容易被搜索引擎识别和索引,从而提高网站在搜索结果中的排名。单页应用(SPA)通常通过 JavaScript 动态渲染内容,搜索引擎在抓取页面时可能无法获取完整的内容,导致内容难以被及时抓取和索引,从而影响 SEO 效果,可以使用服务器端渲染(SSR)或预渲染等技术进行优化。
SSR(Server-Side Rendering,服务端渲染)是一种由服务器在请求时生成完整 HTML 页面的技术。具体来说,当用户访问一个页面时,服务器会先将 JavaScript 渲染出的页面内容生成静态 HTML 返回给浏览器,浏览器拿到后直接展示,再通过 JavaScript 激活页面上的交互功能(称为 hydration)。
全局属性
accessKey:设置将焦点移到元素的按键组合contentEditable="{ true, false, inherit }":设置元素是否可编辑dir="{ ltr, rtl, auto }":设置元素文本方向draggable="{ true, false }":设置元素是否可拖动hidden:隐藏元素id:设置元素的唯一标识lang:设置元素的语言spellcheck="{ true, false }":设置元素是否进行拼写检查style:设置元素的行内样式tabindex="n":设置元素的 tab 键次序
<body>
background属性:设置页面的背景颜色或背景图片bgcolor属性:设置页面的背景颜色text属性:设置页面的文本颜色link属性:设置页面的链接颜色alink属性:设置页面的活动链接颜色vlink属性:设置页面的已访问链接颜色
在 HTML4 中,这些属性是<body>元素的属性,但在 HTML5 中已经被废弃,推荐使用 CSS 来设置样式。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20body {
background-color: #f0f0f0;
color: #333;
font-family: Arial, sans-serif;
}
a:link {
color: #00f;
}
a:visited {
color: #551a8b;
}
a:hover {
color: #f00;
}
a:active {
color: #f00;
}
a:focus {
outline: 1px dotted #f00;
}
<p>
- text-align 属性:设置段落的文本对齐方式
- line-height 属性:设置段落的行高
- text-indent 属性:设置段落的首行缩进
- word-spacing 属性:设置段落的单词间距
- letter-spacing 属性:设置段落的字母间距
- text-transform 属性:设置段落的文本转换方式
- text-decoration 属性:设置段落的文本装饰方式,如下划线、删除线等
块级标签(Block-level Elements)和行内标签(Inline Elements)是 HTML 中两类常见元素,它们的默认表现不同:块级元素独占一行,常用于结构布局;行内元素不会换行,常用于文本内嵌。
常见的块级标签包括:
<div>:通用容器<p>:段落<h1>~<h6>:标题<ul>、<ol>、<li>:列表及项<header>、<footer>、<nav>、<section>、<article>:语义化布局元素<table>、<form>、<fieldset>、<aside>、<main>等也属于块级元素常见的行内标签包括:
<span>:通用文本容器<a>:超链接<strong>、<b>:加粗文本<em>、<i>:强调或斜体<img>:图片<input>、<label>、<select>(尽管select视觉上可能较大,但仍属行内)<abbr>、<cite>、<code>、<small>等也都是行内元素
<div>及html5语义化
HTML5 语义化是指使用具有语义的标签(如 <header>、<footer>、<article>、<section>、<nav> 等)来构建页面结构,使代码更具可读性、结构更清晰,便于开发者理解和维护。
<article>
<article> 元素表示页面中独立的、完整的内容单元,如一篇博客文章、一则新闻、一篇论坛帖子等。<article> 元素可以包含标题、作者、发布日期等信息,也可以包含评论、标签等相关内容。
<section>
<section> 元素表示页面中的一个区块,将网页文本分割成不同的 主题区段,或将一篇文章分成不同的章节和段落。
<nav>
<nav> 元素表示页面中的导航部分,通常包含一组链接,用于帮助用户浏览或导航到其他页面。
<header>和<footer>
<footer> 元素表示页面或区块的页脚,通常包含版权信息、联系方式、相关链接等内容。
<header> 元素表示页面或区块的页眉,通常包含标题、标语、导航等内容。
<aside>
<aside> 元素表示页面中的侧边栏、广告、相关链接等内容,通常与主要内容相关,但可以独立于主要内容。
<main>
<main> 元素表示页面的主要内容,一个页面中只能包含一个 <main> 元素,用于包裹页面的主要内容部分。
区段格式
<pre>
<pre> 元素表示预格式化文本,文本中的空格、换行符等会被保留,文本内容会按照原始格式显示。
<blockquote>
<blockquote> 元素表示长引用,通常用于引用其他来源的内容,左右缩进显示。
<address>
<address> 元素表示联系信息,通常用于包含作者、版权、联系方式等信息。
<hr>
<hr> 元素表示水平分隔线,用于分隔内容。
文本格式
元素
<b>:加粗文本<i>:斜体文本<u>:下划线文本<s>:删除线文本<sub>:下标文本<sup>:上标文本<strong>:强调文本<em>:强调文本<small>:小号文本<dfn>:定义文本<code>:计算机代码文本<kbd>:键盘文本<var>:变量文本<samp>:样例文本<cite>:引用文本<abbr>:缩写文本<q>:短引用文本<mark>:标记文本
<br>
<br> 元素表示换行,用于在文本中插入换行符。
<span>
<span> 元素表示行内文本容器,通常用于设置文本样式或添加事件处理。
<time>
<time> 元素表示日期或时间,用于标记时间戳、日期、时间等信息。属性 datetime 用于指定时间戳,机器可以识别,而内容中的时间可以是人类可读的格式。
<ins>和<del>
<ins> 元素表示插入文本,通常显示为下划线;<del> 元素表示删除文本,通常显示为删除线。
<ul>、<ol>和<li>
<ul> 元素表示无序列表,列表项使用 <li> 元素表示;<ol> 元素表示有序列表,列表项使用 <li> 元素表示。
<ol>的属性有type和start,type表示列表的类型,start表示列表的起始值。比如:
1 | <ol type="A" start="3"> |
定义列表
<dl> 元素表示定义列表,包含术语(<dt> 元素)和解释(<dd> 元素)。
超链接
<a> 元素表示超链接,用于跳转到其他页面或下载文件。<a> 元素的 href 属性用于指定链接地址,target 属性用于指定链接打开方式。
| target 属性值 | 描述 |
|---|---|
| _blank | 在新窗口中打开链接 |
| _self | 在当前窗口中打开链接 |
| _parent | 在父窗口中打开链接 |
| _top | 在顶层窗口中打开链接 |
页内超链接
1 | <a href="#section1">跳转到第一节</a> |
如果标识符在其他文件则需要在前面加上文件名,如<a href="file.html#section1">跳转到第一节</a>
<base>
<base> 元素用于指定文档中所有相对 URL 的基准地址,它必须位于 <head> 中,且只能有一个。当页面中存在相对路径的链接、图片或脚本资源时,浏览器会以 <base> 的 href 属性作为它们的起点进行解析。如果未设置 <base>,则默认以当前文档的 URL 为基准路径。使用不当可能会导致资源加载异常,因此要谨慎使用。
图片
<img>
属性
src:图片地址alt:替代文本width:宽度height:高度ismap:是否为服务器端图像映射usemap:映射名称
<figure>和<figcaption>
<figure> 元素表示独立的内容块,通常包含图片、图表、代码等内容,可以使用 <figcaption> 元素为其添加标题。
1 | <figure> |
表格
<table><table>元素表示表格,包含一组行(<tr>元素),每行包含一组单元格(<td>元素)。border-collapse 属性用于设置表格边框的合并方式,border-spacing 属性用于设置表格边框的间距。<tr><tr>元素表示表格中的一行,包含一组单元格(<td>元素)。<td><td>元素表示表格中的一个单元格,包含表格中的数据。<th><th>元素表示表格中的表头单元格,通常显示为粗体居中文本。
属性 colspan 和 rowspan 用于设置单元格跨列和跨行,scope 属性用于指定表头单元格的作用范围,headers 属性用于指定与表头单元格关联的数据单元格,abbr 属性用于指定单元格的缩写。
直列式表格
针对列来处理,<colgroup> 元素表示表格中的一列或多列,<col> 元素表示表格中的一列。
1 | <table> |
影音多媒体
<vedio>与<audio>
<video> 元素表示视频,用于在网页中嵌入视频,audio 用于嵌入音频。
src:视频地址controls:显示播放控件autoplay:自动播放loop:循环播放muted:静音poster:封面图片width:宽度height:高度preload:预加载,none、metadata、auto,默认auto,表示页面加载时不加载视频,只有在用户点击播放时才加载,metadata表示加载视频的元数据,none表示不加载视频。crossorigin: 设置如何处理跨文件存取要求
嵌入浮动框架<iframe>
<iframe> 元素用于在网页中嵌入其他网页,可以用于显示地图、广告、视频等内容。
src:嵌入页面的地址srcdoc:嵌入页面的 HTML 内容, 比如<iframe srcdoc="<h1>Hello World!</h1>"></iframe>width:宽度height:高度frameborder:是否显示边框sandbox:沙箱模式,用于限制嵌入页面的行为allowfullscreen:是否允许全屏显示name:用于在页面中定位该框架
窗体
<form>和<input>
<form> 元素表示表单,用于向服务器提交数据。<form> 元素的 action 属性用于指定表单提交的地址,method 属性用于指定提交方式(get 或 post)。
action:表单提交地址method:提交方式target:提交后打开方式enctype:编码方式autocomplete:自动完成accept-charset:接受字符集
<input> 元素表示表单中的输入控件,用于接收用户输入的数据。
type:输入类型
| type属性值 | 描述 |
|---|---|
| text | 文本框 |
| password | 密码框 |
| radio | 单选框 |
| checkbox | 复选框 |
| submit | 提交按钮 |
| reset | 重置按钮 |
| button | 普通按钮 |
| file | 文件上传 |
| hidden | 隐藏域 |
| image | 图像按钮 |
html5新增的input类型
| type属性值 | 描述 |
|---|---|
| date | 日期 |
| time | 时间 |
| month | 月份 |
| 邮箱 | |
| url | 网址 |
| tel | 电话 |
| search | 搜索 |
| color | 颜色 |
| number | 数字 |
| range | 范围 |
| datetime-local | 本地日期时间 |
| week | 周 |
accept:接受内容类型alt:替代文本autocomplete:自动完成autofocus:自动获取焦点checked:默认选中disabled:禁用form:关联表单maxlength:最大长度minlength:最小长度min,max,step:最小值,最大值,步长multiple:多选name:名称pattern:正则表达式placeholder:占位符readonly:只读required:必填size:大小value:值src:图片地址
<textarea>
<textarea> 元素表示多行文本输入框,用于接收用户输入的多行文本。
cols:列数rows:行数name:名称readonly:只读required:必填placeholder:占位符maxlength:最大长度wrap:换行方式
<select>和<option>
<select> 元素表示下拉列表,用于提供选项供用户选择。
autofocus:自动获取焦点disabled:禁用multiple:多选name:名称required:必填size:可见选项数,下拉菜单的高度
<option> 元素表示下拉列表中的选项,包含在 <select> 元素中。
disabled:禁用selected:默认选中value:值label:标签
<label>
<label> 元素表示表单控件的标签,用于关联表单控件。
for:关联控件的 id
<optgroup>
<optgroup> 元素表示下拉列表中的分组,用于将选项分组显示。与 <option> 元素一起使用。
<fieldset>和<legend>
<fieldset> 元素表示表单中的一组相关控件,用于将表单控件分组显示,通常包含一个 <legend> 元素作为标题。
