HTML基础篇(1)——Meta

经过这些天的折腾,终于开始了我的博客之旅。刚开始本来打算写一写我对compass雪碧图的一个扩展应用的。但是想想我决定写一个系列的教程以及一些高级的应用。

于是乎我决定先回顾一下我从接触前端以来所学习的一些知识。就从基础的HTML开始。

head部分

一、<meta>标签

1.概要

标签提供关于HTML文档的元数据。元数据不会显示在页面上,但是对于机器是可读的。它可用于浏览器(如何显示内容或重新加载页面),搜索引擎(关键词),或其他 web 服务。 —— W3School

必要属性

属性 描述
content some text 定义与http-equiv或name属性相关的元信息

可选属性

属性 描述
http-equiv content-type / expire / refresh / set-cookie 把content属性关联到HTTP头部。
name author / description / keywords / generator / revised / others 把 content 属性关联到一个名称。
content some text 定义用于翻译 content 属性值的格式。

 2.通用

  • 字符编码
    <meta charset="UTF-8">
    <meta http-equiv="Content-Type" contect="text/html";charset=UTF-8">
    

    上面简单的是HTML5新的申明方式,下面的是旧的。有时候做一些兼容要用到。

  • 页面关键词
    <meta name="keywords" content="搜索引擎索引的关键字放这里" />
  • 页面描述
    <meta name="description" content="一个不超过150个字符且能准确反映网页内容的描述标签"/>
  • 搜索引擎索引方式
    1. all:文件将被检索,且页面上的链接可以被查询;
    2. none:文件将不被检索,且页面上的链接不可以被查询;
    3. index:文件将被检索;
    4. follow:页面上的链接可以被查询;
    5. noindex:文件将不被检索;
    6. nofollow:页面上的链接不可以被查询。
      <meta name="robots" content="index,follow" />
  • 页面重定向和刷新:content内的数字代表时间(秒),既多少时间后刷新。 如果加url,则会重定向到指定网页(搜索引擎能够自动检测,也很容易被引擎视作误导而受到惩罚)
    <meta http-equiv="refresh" content="0;url=" />

 3.移动设备

  • viewport:能优化移动浏览器的显示。如果不是响应式网站,不要使用initial-scale或者禁用缩放。大部分4.7-5寸设备的viewport宽设为360px;5.5寸设备设为400px;iphone6设为375px;ipone6 plus设为414px。
    <meta name="viewport" content="width=device-width, initial-scale=1.0,maximum-scale=1.0, user-scalable=no"/>

    width:宽度(数值 / device-width)(范围从200 到10,000,默认为980 像素);     height:高度(数值 / device-height)(范围从223 到10,000);     initial-scale:初始的缩放比例 (范围从>0 到10);     minimum-scale:允许用户缩放到的最小比例;    maximum-scale:允许用户缩放到的最大比例;     user-scalable:用户是否可以手动缩 (no,yes);    minimal-ui:可以在页面加载时最小化上下状态栏。(已弃用)

    注意,很多人使用initial-scale=1到非响应式网站上,这会让网站以100%宽度渲染,用户需要手动 移 动页面或者缩放。如果和 initial-scale=1同时使用user-scalable=no或maximum-scale=1,则用户将不能放大/缩小网页来看到全部的内容。width=device-width会导致 iPhone 5 添加到主屏后以 WebApp 全屏模式打开页面时出现黑边

  • 添加智能 App 广告条 Smart App Banner:告诉浏览器这个网站对应的app,并在页面上显示下载banner(如下图)。参考文档
    <meta name="apple-itunes-app" content="app-id=myAppStoreID, affiliate-data=myAffiliateData, app-argument=myURL">
  • 忽略识别邮箱
    <meta name="format-detection" content="email=no" />
    <meta name="format-detection" content="telephone=no"/>
  • 忽略数字自动识别为电话号码
    <meta content="telephone=no" name="format-detection" />
  • 添加到主屏后的标题
    <meta name="apple-mobile-web-app-title" content="标题">
  • 隐藏状态栏/设置状态栏颜色:只有在开启WebApp全屏模式时才生效。content的值为default | black | black-translucent 。
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
  • WebApp全屏模式:伪装app,离线应用。
    <meta name="apple-mobile-web-app-capable" content="yes" /><!-- 启用 WebApp 全屏模式 -->
  • 其他 参考文档
    <!-- 启用360浏览器的极速模式(webkit) -->
    <meta name="renderer" content="webkit">
    <!-- 避免IE使用兼容模式 -->
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
    <meta name="HandheldFriendly" content="true">
    <!-- 微软的老式浏览器 -->
    <meta name="MobileOptimized" content="320">
    <!-- uc强制竖屏 -->
    <meta name="screen-orientation" content="portrait">
    <!-- QQ强制竖屏 -->
    <meta name="x5-orientation" content="portrait">
    <!-- UC强制全屏 -->
    <meta name="full-screen" content="yes">
    <!-- QQ强制全屏 -->
    <meta name="x5-fullscreen" content="true">
    <!-- UC应用模式 -->
    <meta name="browsermode" content="application">
    <!-- QQ应用模式 -->
    <meta name="x5-page-mode" content="app">
    <!-- windows phone 点击无高光 -->
    <meta name="msapplication-tap-highlight" content="no">

4.网页相关

  • 优先使用 IE 最新版本和 Chrome
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" /><!-- 关于X-UA-Compatible -->
    <meta http-equiv="X-UA-Compatible" content="IE=6" ><!-- 使用IE6 -->
    <meta http-equiv="X-UA-Compatible" content="IE=7" ><!-- 使用IE7 -->
    <meta http-equiv="X-UA-Compatible" content="IE=8" ><!-- 使用IE8 -->
    
  • 浏览器内核控制:国内浏览器很多都是双内核(webkit和Trident),webkit内核高速浏览,IE内核兼容网页和旧版网站。而添加meta标签的网站可以控制浏览器选择何种内核渲染。参考文档
     <meta name="renderer" content="webkit|ie-comp|ie-stand">

国内双核浏览器默认内核模式如下:
1. 搜狗高速浏览器、QQ浏览器:IE内核(兼容模式)
2. 360极速浏览器、遨游浏览器:Webkit内核(极速模式)

  • 转码申明:用百度打开网页可能会对其进行转码(比如贴广告),避免转码可添加如下meta
    <meta http-equiv="Cache-Control" content="no-siteapp" />
  • 站点适配:主要用于PC-手机页的对应关系。
    <meta name="mobile-agent"content="format=[wml|xhtml|html5]; url=url">
    <!--
    [wml|xhtml|html5]根据手机页的协议语言,选择其中一种;
    url="url" 后者代表当前PC页所对应的手机页URL,两者必须是一一对应关系。
     -->
    
  • Windows 8
    <meta name="msapplication-TileColor" content="#000"/> <!-- Windows 8 磁贴颜色 -->
    <meta name="msapplication-TileImage" content="icon.png"/> <!-- Windows 8 磁贴图标 -->
    
  • 禁止浏览器从本地计算机的缓存中访问页面内容:这样设定,访问者将无法脱机浏览。
    <meta http-equiv="Pragma" content="no-cache">

二、<title>标签

<title> 标签定义文档的标题,在所有 HTML 文档中是必需的。

<title>元素:

  • 定义浏览器工具栏中的标题
  • 提供页面被添加到收藏夹时的标题
  • 显示在搜索引擎结果中的页面标题

三、<link>标签

<link>标签一般是用来导入CSS样式,这里就不举例子了,但是有时候会用来引用标签图标.

  • 具体用法如下
    <link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72-precomposed.png">
    <link rel="apple-touch-icon-precomposed" sizes="57x57" href="apple-touch-icon-57x57-precomposed.png">
    <link rel="shortcut icon" href="favicon.ico"/>
    // iPhone
    <link href="apple-touch-startup-image-320x460.png" media="(device-width: 320px)" rel="apple-touch-startup-image" />
    // iPhone Retina
    <link href="apple-touch-startup-image-640x920.png" media="(device-width: 320px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
    // iPhone 5
    <link href="apple-touch-startup-image-640x1096.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image">
    // iPad portrait
    <link href="apple-touch-startup-image-768x1004.png" media="(device-width: 768px) and (orientation: portrait)" rel="apple-touch-startup-image" />
    // iPad landscape
    <link href="apple-touch-startup-image-748x1024.png" media="(device-width: 768px) and (orientation: landscape)" rel="apple-touch-startup-image" />
    // iPad Retina portrait
    <link href="apple-touch-startup-image-1536x2008.png" media="(device-width: 1536px) and (orientation: portrait) and (-webkit-device-pixel-ratio: 2)" rel="apple-touch-startup-image" />
    // iPad Retina landscape
    <link href="apple-touch-startup-image-1496x2048.png"media="(device-width: 1536px) and (orientation: landscape) and (-webkit-device-pixel-ratio: 2)"rel="apple-touch-startup-image" />

这里多说一句,还有其他方法实现标签图标,具体有兴趣的朋友可以查看一下苹果官网。思路大概是用JS去控制的。