HTML文档头部与元数据

HTML文档头部与元数据

在之前的文章中,我对 html 文档的内容做了简单的分割,这篇文章对其中的文档标题—— head 部分进行一个简单的总结~

如果没有耐心看长篇大论,可以直接到本文末尾,将会有一个包含了本文大部分内容的 demo~

文档头部的作用

head 标签本身并不携带任何信息,它主要是作为盛放其它语义类标签的容器。

head 大部分内容是不可见的,除了 title 和 图标之外。head 中可以包含的标签有 basetitlescriptstylelinkmeta

下面从简到繁开始总结

base

base 标签的作用是给页面上的所有的相对路径提供一个基础URL

<base href="http://www.raaabbit.ink" target="_blank">

注意:

  • 一份 html 文档最多只有一个 base 标签,多出的 base 都不会生效
  • 这个标签存在一定的危险性,容易造成和 javascript 的配合问题

title

title 标签的作用是给页面赋予一个标题,并呈现在浏览器 tab 上,可以参考我的另一篇文章 -> html文档标题

注意:
这个标签要能够尽量概括页面的内容,因为它可能还会作为收藏夹中的标题,作为搜索引擎的搜索结果,作为社交平台分享的标题等等,应当能够起到概括内容的作用

script

script 是一段可执行脚本,一般来说都是 js 代码

<script type="text/javascript" src="./javascript.js">

一般来说,为了保证效率,script 会被放在 body 的末尾,具体原因请参考我的另外一篇文章 -> body末尾引入JS与JS异步加载

其他关于 script 标签的细节将会在 js 基础相关的 blog 里面写到

style

style 是直接写入在页面内部的样式

<style>
    body{
        background:#fff;
    }
</style>

相比这种方式,使用 link 引入外部的 CSS 样式表更容易维护

link

link 标签相对于前面的几个标签来说要稍稍复杂一些

link 的作用是制定外部资源和当前文档的关系,具有属性href、ref、media、hreflan、type和sizes。其中 href、ref和media 更加常用。

使用 link 标签的例子:

<!-- 引入外部 CSS 样式表 -->
<link rel="stylesheet" href="./style.css">
<!-- 引入页面小图标 -->
<link rel="shortcut icon" href="ico.ico"/>   

其中 rel 说明引入的资源文件是样式表,href 表示引用的文件位置是当前目录下的 style.css

link的rel属性

属性值 作用
alternate 指示链接到该文档的另一个版本
author 指示链接到当前文档的作者主页
help 指向一个跟网站或页面相关的帮助文档
icon 引入代表当前文档的图标,新的sized属性与这个属性结合使用,指定链接图片的宽高
license 链接到当前的文档的版权声明
next 指示链接到文档是一组文档中的下一份
pingback 处理当前文档被引用情况的服务器地址
prefetch 指明需要缓存的目标资源
prev 标明了上一个文档
search 链接到可以用于搜索当前页面和相关页面的资源
sidebar 链接到可以作为附属上下文的文档
stylesheet 引入样式表
tag 创建应用于当前文档的标签

link的media属性

这个属性的主要作用是进行媒体查询,按照媒体类型来决定是否引入这个资源文件:

属性值 作用
screen 计算机屏幕
tty 终端
tv 电视
projection 投影仪
handheld 手持设备
print 打印的页面
braille 盲文设备
aural 语音合成器
all 所有

当然按照媒体查询的规则,也是可以直接按照尺寸进行查询的,CSS中的媒体查询请参考文章 -> CSS基本语法/几个特别的规则语法

<link rel="stylesheet" media="(max-width: 800px)" href="example.css" />

meta

meta是本文的重头戏,因为这一部分在 head 中占据的比重尤其之大,并且它也最为复杂,那我们就按照类别进行简单的梳理:

charset 声明字符集(必要!!)

声明页面的字符集是必要的,并且要写在最前面,否则有很大可能会导致乱码

<meta charset="utf-8">

通常我们会声明字符编码为 utf-8,这种编码方式也被称作“万国码”可以兼容很多语言。

具有name属性的meta(基本)

具有 name 和 content 属性的 meta 标签是最基本的

name用来执行元数据的名,content用来执行元数据的值:

<meta name="keywords" content="Raaabbit 的 博客">

这个就表示页面的 关键字Raaabbit 的 博客 这样做会对 SEO 更加有利

注意: name 是一种相对更加自由的约定,http 标准规定了一些 name 作为大家使用的共识,同时也鼓励开发者发明自己的 name 使用。

下面是一些常见的name和content组合的总结:

name content 作用
keywords 字符串 设置网页的关键词有利于SEO
description 字符串 用一段文字描述网页,有利于SEO
generator 字符串 说明使用的编辑器
author 字符串 说明作者信息
robots All/Index/Nofollow/Noindex/None 页面可被搜索引擎搜索的情况
copyright 字符串 版权信息
application-name 字符串 应用名称
viewport width,height,inital-scale,minimum-scale,maximum-scale,user-scalable 决定页面的大小和缩放
referrer never/always/origin/default 跳转策略,有助于安全性

注意: viewport 并不是 HTML 的标准定义,但是收到浏览器的支持并成为事实标准

具有http-equiv属性的meta

设置了http-equiv属性的meta是一个编译指令,即由服务器提供的来指示页面应如何加载

<meta http-equiv="X-UA-Compatible" content="IE=Edge">

比如上面的这段代码就能够让 IE 浏览器以最高级的 Edge 模式进行渲染

下面也对常见的一些 http-equiv 进行一个总结

http-equiv content 作用
content-type text/html;Charset=UTF-8 指定http编码方式
content-language zh-cn 指定内容的语言
set-cookies 模拟 http 请求头set-cookie,设置cookie
default-style 指定默认样式表
refresh 5;url=https://raaabbit.github.io/ 指定时间(5s)后刷新或者跳转(如果没有url就是刷新)
X-UA-Compatible 声明 UA 兼容性
cache-control no-cache 清除缓存
Expires GMT 时间格式 设置网页缓存到期时间
Pragma no-cache 设置浏览器禁止从本地缓存中调用
window-Target _top 强制页面在当前窗口中以独立页面显示,防止页面被当作 frame
content-security-policy 声明内容安全策略
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章