head 标签里有什么?
head 标签里有什么?
每一个 HTML 文档中,都有一个不可或缺的标签:<head>
,它作为一个容器,主要包含了用于描述 HTML 文档自身信息(元数据)的标签,这些标签一般不会在页面中被显示出来,大多情况下是给浏览器和搜索引擎看的。
可以用在 <head>
里面的标签有: <title>
, <base>
, <link>
, <style>
, <meta>
, <script>
, <noscript>
。
元信息标签介绍
<title>
定义文档的标题,显示在浏览器的标题栏或标签页上,一般会完整地概括整个网页的内容。
<base>
给页面上所有相对 URL 的提供一个基础。一份文档中只能有一个 <base>
标签。
目前我只观察到「淘宝网」使用了这个标签。
<link>
规定外部资源与当前文档的关系,常于链接样式表,如下所示:
<link rel="stylesheet" href="xxx.css" type="text/css">
当然还有很多其他的作用:
- 比如用于 SEO,主要给搜索引擎看的:
<link rel="canonical" href="...">
在网站中常有多个 url 指向同一个页面的情况,上述标签告知搜索引擎页面的主 url 是什么,以便搜索引擎保留主要页面而去除其他重复页面。
- 提供 rss 订阅的:
<link rel="alternate" type="application/rss+xml" title="RSS" href="...">
上述标签除搜索引擎可以看懂以外,也能被很多浏览器插件识别。
- 表示页面 icon 的:
<link rel="icon" href="https://xxx.png">
多数浏览器会读取这个 link 的资源并展示在页面上。
- 对页面提供预处理的:
<link rel="dns-prefetch" href="//xxx.com">
提前对一个域名做 dns 查询。强制对域名进行预读取在有的情况下很有用,。
比如, 在网站的主页上,强制在整个网站上对频繁引用的域名做预解析处理,即使它们不在主页本身上使用。虽然主页的性能可能不受影响,但是会提高站点整体性能。
<style>
包含文档的样式信息。
<meta>
一种通用的元数据信息表示标签,一般以键值对出现,如:<meta name="xxx" content="yyy">
charset 属性
<meta charset="UTF-8">
从 HTML5 开始,上述写法被推荐使用,用于声明当前文档所使用的字符编码,推荐放在 <head>
中的第一位。
http-equiv属性
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
在 HTML4 中,上述代码用于声明字符集,但是现在已不被推荐。
除了 content-type ,还有其他几个值:
content-language (已过时)、set-cookie (已过时)、default-style 、refresh 、content-security-policy
因为不常用,所以就不一一介绍了,也挺容易理解,感兴趣可以点击 这里 了解。
name 属性
其实 标签可以被自由定义,只要读取和写入的双方约定好 name 和 content 的格式就可以了。来看一个例子:
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no">
上面这种用法并不在 HTML 标准中,但是却移动端开发的事实标准。这里来解释一下 content 中的内容:
- width :页面宽度,可以是一个正整数;也可以一个字符串 "device-width" ,表示跟设备宽度相等。
- height :页面高度,可以是一个正整数;也可以一个字符串 "device-height" ,表示跟设备高度相等。
- initial-scale :初始缩放比例。
- minimum-scale : 最小缩放比例。
- maximum-scale : 最大缩放比例。
- user-scalable :是否允许用户缩放。
name 属性的值除了可以是 viewport 之外,还有相当多的值:
application-name 、author 、description 、generator 、keywords 、referrer 、robots 等。
同样的,就不一一介绍了,感兴趣可以点击 这里 了解。
<script>
用于嵌入或引用可执行脚本。来看几个 script 标签常见的全局属性:
async
使浏览器使用另一个线程下载脚本,这时不会阻塞页面渲染。当脚本下载完成后,浏览器会暂停渲染,执行脚本,执行完毕后继续渲染页面。
async 无法保证脚本的执行顺序,哪个脚本先下载结束就会先执行。
defer
同样会使浏览器并行下载脚本,但是下载完毕不会立即执行,而是会等到 DOM 加载完成后(即刚刚读取完
</html>
标签)再执行脚本。defer 可以保证脚本的执行顺序就是它们在页面上出现的顺序。
src
定义引用外部脚本的地址,指定此属性的 script 标签内不应再有嵌入的脚本。如果脚本文件使用了非英语字符,还应该注明字符的编码。如:
<script charset="utf-8" src="https://www.example.com/script.js"></script>
type
默认值是 text/javascript
想了解更多关于 <script>
标签的详细内容可以点击 这里 。
<noscript>
如果页面上的脚本类型不受支持或者当前在浏览器中关闭了脚本,则在此中定义脚本未被执行时的替代内容。
总结
本文到这里就结束了,其实关于 link 和 meta 标签还有很多没有介绍到,很多相关标签都是有特殊的需求,只有在特定情况下才会使用,比如移动端开发就会用许多在 PC 上并不需要的标签。
当然平时使用也主要是看需求,就拿我目前来说,只是些许用到过一些与 viewport 和 SEO 相关的标签。
鉴于此我推荐一个不错的学习方法,就是去各大网站查看它们的 head 标签里都有什么,遇到没见过的就去搜索一下,熟悉起来会很快。
我这边看过的网站有:「淘宝网」、「阿里巴巴」、「京东」、「网易严选」、「起点中文网」等。
(完)
head 标签里有什么?的更多相关文章
- 将javascript函数写在Html标签里
有些时候不想把函数写在script标签里了,想直接在html标签里直接加上js代码,可以这样写: <body onload="javascript:{window.location.h ...
- 在<s:iterator>标签里给动态表格添加序号
在<s:iterator>标签里给动态表格添加序号,需要用到<s:iterator>标签里的Status属性里的count eg:<s:iterator value=&q ...
- 如何在一个div标签里显示出另一个网页? <iframe src=" http://www.baidu.com " width="800px" height="200px" scrolling="no" frameborder="0"> </iframe>
如何在一个div标签里显示出另一个网页? 用在div里用iframe,就像下面的代码 <iframe src=" http://www.baidu.com " width=& ...
- Asp.Net正则获取页面a标签里的内容
Asp.Net正则获取页面a标签里的内容 string url = "http://www.114369.com"; string html = MyCLib.NetClass.S ...
- 火狐下<a>标签里嵌套的<select>不能选的bug
今天遇到了这个问题,网上一找就找到原因了:在狐火下<a>标签里嵌套的<select>不能选 可是我查找这个问题过程中依然饶了一些时间,原因是在<a>标签没有写hre ...
- img标签里的value获取
简单描述:在img标签里的value存放了需要用到的值,但是在js中获取的时候,我直接写的就是$("#imgStr").val(),结果发现是空,后来查了一下,才知道,img的va ...
- 对<tr><td>标签里的input 循环取值
需求描述:单击table整行,跳转到具体的信息页面 关键就是获取整行的id,传给后台做查询,返回list 解决思路:用带参数函数传过去id,然后在js的函数中用$("#id"). ...
- 如何在地址栏(title标签里)和收藏夹里 加上网站的标志ICO、LOGO图片
第一步:首先你必须要制作一个看起来既清楚又容易辨识的.ico格式的小图片. 我们将图标的大小定义为16x16 像素.此外在制作图形文件的时候,你可能需要把色盘设定成只使用标准的 16 色 Window ...
- <script>标签里的defer和async属性 区别(待补充)
defer与async的区别(表格显示): table th:first-of-type { width: 150px; } table th:nth-of-type(2) { } 区别 defer ...
随机推荐
- Android Studio插件之MVPHelper,一键生成MVP代码
MVP盛行,听到的最多的抱怨就是咋要写这么多接口,那么本文作者提供了一个插件,自动生成这些接口的声明.感兴趣的还可以学习该插件的写法,按照自己平时的需求修改,提供开发效率. MVPHelper 一款I ...
- 2018-10-13 21:30:51 conversion of number systems
2018-10-13 21:30:51 c language 二进制.八进制和十六进制: 1) 整数部分 十进制整数转换为 N 进制整数采用“除 N 取余,逆序排列”法. 十进制数字 36926 转 ...
- JVM知识(四):GC配置参数
JVM配置参数分为三类参数:跟踪参数.堆分配参数.栈分配参数 这三类参数分别用于跟踪监控JVM状态,分配堆内存以及分配栈内存. 跟踪参数 跟踪参数用户跟踪监控JVM,往往被开发人员用于JVM调优以及故 ...
- 【日常记录】【unity3d】 OnTriggerEnter 和 OnCollisionEnter (2D) 的区别
问题:两个物体A,B 两者都有碰撞体 collider(Box Collider,Sphere Collider,Capsule Collider等)当两物体相撞时,会进入 OnTriggerEnte ...
- npm与gulp的使用
这边将工作中使用的npm以及gulp的一些方法做了整理,方便以后查阅,至少不用去麻烦度娘了~ A.npm的使用: 1.在你所需要的文件夹里面初始化npm--> npm init -y - ...
- 4.Servlet过滤器
1.Servlet 编写过滤器 Servlet 过滤器是可用于 Servlet 编程的 Java 类,有以下目的: 在客户端的请求访问后端资源之前,拦截这些请求. 在服务器的响应发送回客户端之前,处理 ...
- [CENTOS7] 修改机器名:hostnamectl set-hostname host.domain
# hostnamectl set-hostname host.domain
- MySQL 5.7.24 privileges有哪些?
root@localhost:3306.sock [mysql]>select version();+------------+| version() |+------------+| 5.7 ...
- Python 系统学习梳理_【All】
Python学习 1. Python学习---Python安装与基础1205 2. Python学习---PyCharm的使用学习 3. Python学习---Python数据类型1206 4. Py ...
- Linux 系统的网络基础_【all】
网络基础 1.网线:568B: 白橙 橙色 白绿 蓝色 白蓝 绿色 白棕 棕色 2.交换机:电信号转发的网络设备,它可以为接入交换机的任2个网络节点设备提供电信号通信 3.路由器:连接局域网,广域网的 ...