关于html页面head标签顺序
一般是按照具体经验来分配。
如:
- <meta>
- <title>
- <link> \ <style>
- <base>
- <script>
当然,约往后位置约不重要。比如 4 5 调换也没啥大事儿。
基本规律是:
- meta 最好写在第一个,特别是 meta chaset 设定必须写第一个,它们是元数据,能让数据获取方得知此页面的元数据。最先得知页面编码,进而获取之后meta(如果有)内的作者、关键字等数据(因为这些内容可能是非ASCII字符)时,可以用指定编码方式获取。获取方得到全部元数据后可以自行判断是否继续获取其后内容。
- title 紧随 meta 之后是因为可能获取方需要知道页面标题信息,并且在最先获取 chaset 信息后知道此标题的编码方式。如果获取方是页面浏览器,那么它可以最先用正确的页面编码方式显示标题给用户。
- link、style 紧随 meta,其实还是主要为 link 大部分都是 CSS 样式文件考虑。由于外联样式可以并行下载,不会阻塞后续处理工作,style 也能让浏览器尽快得知页面排版布局信息。
- base 一般情况下用的不多,只要不放第一个基本没啥关系。
- script 放在最后,是基于script 不关是下载还是执行都会阻塞页面考虑,让它尽量偏后。(当然,这在绝大部分现代浏览器中不是事儿了,它会尽量"拖后"外联脚本下载时机)现在大多数情况没有特殊需求 script 都不放在 head 里了,而是放在 body 最后一个子节点上(也有给扔 html body 之外的,浏览器容错还是能给它修正回 body 最后节点上)。
大牛总结:
首先要指定编码,当然服务端也要指定编码,保持一致。
然后是对于可以切换内核的浏览器提示优先切换内核,诸如国内占比比较大的360浏览器6.0版本之后。然后是IE相关的浏览器使用其支持的最高版本的文档模式。
接着考虑可以使用viewport来支持不同尺寸和分辨率的设备。
关于页面相关说明,诸如作者可以在适当位置添加。
蜘蛛是否抓取索引的标志可以考虑添加。
接着是dns-prefetch缓存assets相关的域名。
如果你确定页面多数内容是弹出新窗口,那么可以指定页面的链接打开模式。
对于不支持或者禁用脚本的网站,可以使用转向带参数,请求无脚本时候的网站内容。
页面标题是页面必不可少的,同时也是蜘蛛索引的重要指标,可以考虑程序动态输出。
引入主要的样式文件,同时根据设备类型来引入设备相关的样式文件,以支持平板以及打印机。
前端脚本通过后端变量设置版本,以利于文档和静态资源的更新。
关于前置全局脚本,需要做到:
如果页面不作为iframe内容使用,要防止恶意被嵌套,发生误导或者钓鱼相关的事情。
如果使用类名作为钩子来告知页面程序是否支持调用,可以在此进一步处理。
对于旧版本的IE,这里特指版本小于等于IE8的老旧浏览器,如果要做优雅降级,那么需要再此做前置程序处理。
如果页面程序存在依赖数据来渲染的情况,前置的数据也推荐放置于此。
如果页面依赖脚本加载器,可以在此添加加载器脚本。
对于旧版本的浏览器可以使用IE条件注释配合shim脚本,以及respond来提供一些额外的功能支持,以减少写代码时的额外处理,以及保持一致性访问。
页面关键词和相关说明也是至关重要的,如果你做SEO的话。
如果你还要提供RSS以及PING,请也在此一并提供。
对于搜索引擎提供shortlink,以合并改版rewrite后的状况。