原稿:语雀 · HTML · 原目录:HTML
HTML元素
元素分类
html中每个元素默认分为三类:块级block、行内inline、行内块inline-block
分类 | 特征 |
block |
|
inline |
|
inline-block |
|
<!DOCTYPE>
<!DOCTYPE> 声明用来告知浏览器的解析器用什么文档标准解析文档,必须在HTML文档的第一行,html5标准只有一种声明-<!DOCTYPE html>
<head> 与 metadata
<head>元素保存了页面相关的元数据(尽管<meta>中的内容也是元数据)
- <title>:页面标题,通常在页面作为标签页、收藏内容时显示
- <meta>:添加元数据,常用见👇
语雀引用内容
- <link>:添加favicons、css
- <script>:引入js,但这样所有的js代码下载-解析-解释完成后网页才会渲染(即加载<body>),期间可能出现长时间页面空白,因此现在通常把<script>放在<body>后
语义化
语义化是指使用恰当语义的html标签,让页面具有良好的结构与含义,比如<p>标签就代表段落,<article>代表正文内容等等,好处是
- 开发者友好:使用语义类标签增强了可读性,开发者也能够清晰地看出网页的结构,也更为便于团队的开发和维护
- 机器友好:带有语义的文字表现力丰富,更适合搜索引擎的爬虫爬取有效信息(见下面的SEO),语义类还可以支持读屏软件,根据文章可以自动生成目录
常见的语义标签
结构体 | 文本 | 一致 | 下面是h5中新增的切片/区段标签 |
|
|
| ![]() |
SEO
参考链接:基于html的SEO
SEO指搜索引擎优化,据百度的官方说法,相关性是排名的重要维度,前端布局或者说页面模型是相关性的重要组成部分,也就是说前端,包括关键词布局,内链调用机制,页面模型这几个点影响相关性,相关性影响排名,排名就是seo的基本目标
SEO最常用的HTML标签
| HTML不同标签在SEO优化中的权重分数
|
src 与 href
在 html 引入多媒体内容、<scirpt>标签时使用src,如<img src="" width=“200” height=“140”/>;而在建立超链接时需要使用<a href=""></a> 或 <link href=“default.css” rel=“stylesheet” >
- src 指向外部资源的位置,指向的内容会嵌入到文档中当前标签所在的位置,在请求src资源时会将其指向的资源下载并应用到文档内替换当前元素。当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕
- href 是指向网络资源所在位置(的超链接),只是用来建立和当前元素或文档之间的连接
小结:src 用于替换当前元素,href 用于在当前文档和引用资源之间确立联系
<a> 标签作用
参考链接:< a>,< img/>标签使用及锚点,路径相关 2. 超链接
<a> 标签定义超链接,用于从一张页面链接到另一张页面。可通过 target 规定在何处打开链接文档
- _self:默认,目标地址在当前选项卡打开,替换当前页面
- _blank:目标地址在新的选项卡打开
<a target="_blank" href="http://www.baidu.com/">百度</a>
- 设置锚点(页内链接)
点击锚标签后可以迅速跳转到页内或其他页面指定位置
# 当前页
<h2 id="center">本页面的h2标题</h2>
<a href="#center">跳转到本页面的h2标题处</a>
# 其他页
<h2 id="end">123.html页面的h2标题</h2>
<a href="123.html#end" target="_blank">跳转到123.html页面的h2标题处</a>
前端渲染 & 后端渲染
后端渲染(SSR) 2. 浏览器向后端请求页面 4. 后端服务器会计算所需的业务数据后将结果填充在页面的对应区域,再将页面响应给前端 6. 前端直接对收到的 html 进行解析其中已经包含页面的样式,也包含完整的数据信息
优点:首屏加载时间短、利于 SEO
缺点:前后端耦合,不利于开发维护;加大服务端压力
前端渲染(SPA) 2. 浏览器向后端请求页面 4. 后端响应一个静态的 html 页面,不对页面进行业务数据的拼接,该 html 上有 js 脚本 6. 浏览器下载、解析、执行 js 文件,通过操作 dom 对 html 内容进行填充修改
优点:可维护性高、用户体验好(首屏加载后的路由都由前端实现)
目前的 SPA 应用不再是一个页面,本质是一个集路由、数据、页面(组件)为一体的程序,在首次请求经服务端获取整个应用后,接下来的路由都由前端控制,前端以路由为中心枢纽控制一系列页面(组件)的渲染加载和数据交互
缺点: 2. 首屏加载时间长,需要等待 js 加载完毕才能看到页面 4. 不利于 SEO,搜索引擎爬取 html 文件时,只能看到基本的骨架和资源路径,没有办法取得 html 内容
