html head 头部分的标签、元素有很多,涉及到浏览器对网页的渲染,seo 等等,而各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,这就造成了很多差异性。移动互联网时代,head 头部结构,移动端的 meta 元素,显得更为重要。了解每个标签的意义,写出满足自己需求的 head 头标签,是本文的目的。本篇以一丝的文章为基础,进行扩展总结介绍常用的 head 中各个标签、元素的意义以及使用场景。
L) `9 ^6 w: w( ndoctype/ b* F) x# l+ o" ~: l* H
doctype(document type),该声明位于文档中最前面的位置,处于 html 标签之前,此标签告知浏览器文档使用哪种 html 或者 xhtml 规范。
4 E) P O1 x' N- Mdtd(document type definition) 声明以 <!doctype> 开始,不区分大小写,前面没有任何内容,如果有其他内容(空格除外)会使浏览器在 ie 下开启怪异模式(quirks mode)渲染网页。公共 dtd,名称格式为注册//组织//类型 标签//语言,注册指组织是否由国际标准化组织(iso)注册,+表示是,-表示不是。组织即组织名称,如:w3c。类型一般是 dtd。标签是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号。最后语言是 dtd 语言的 iso 639 语言标识符,如:en 表示英文,zh 表示中文。xhtml 1.0 可声明三种 dtd 类型。分别表示严格版本,过渡版本,以及基于框架的 html 文档。
* A2 ], c. Z. y+ ]% b# K●html 4.01 strict0 D7 H/ v7 [5 P$ {! y5 w9 u4 [
xml/html code复制内容到剪贴板
6 L/ \3 s+ a! K3 O: d<!doctype html public -//w3c//dtd html 4.01//en >) Z& p( O0 C% j- L
●html 4.01 transitional) @% E; U8 l: y7 I( q6 i
xml/html code复制内容到剪贴板3 L9 Y5 H( J, X- {/ r7 u* T2 ]
<!doctype html public -//w3c//dtd html 4.01 transitional//en >" \. `, ]' ~" b+ w5 W) }
●html 4.01 frameset. c5 M @5 @ D
xml/html code复制内容到剪贴板; Q- X% Z, d/ F$ q A+ N. r9 a
<!doctype html public -//w3c//dtd html 4.01 frameset//en >
`' O7 ^$ l% L- N+ l●最新 html5 推出更加简洁的书写,它向前向后兼容,推荐使用。
6 s8 D" ]2 c F2 Y' oxml/html code复制内容到剪贴板
3 m$ u- s. r E$ B6 l- p3 _<!doctype html>& ^* ~7 f4 \5 f+ b% Z7 ~, o
在 html中 doctype 有两个主要目的。
/ `* m4 Y: f. [1 p●对文档进行有效性验证。
" I; o- v3 v% n: \( X它告诉用户代理和校验器这个文档是按照什么 dtd 写的。这个动作是被动的,每次页面加载时,浏览器并不会下载 dtd 并检查合法性,只有当手动校验页面时才启用。
2 O" [' g" _% Z! {●决定浏览器的呈现模式' x, S9 E3 @9 ^, A0 ~
对于实际操作,通知浏览器读取文档时用哪种解析算法。如果没有写,则浏览器则根据自身的规则对代码进行解析,可能会严重影响 html 排版布局。浏览器有三种方式解析 html 文档。
; N! l/ ] q' `$ K6 ~1 a, A●非怪异(标准)模式
: I7 m6 i6 J6 C●怪异模式+ u* e6 @: Q" _( S
●部分怪异(近乎标准)模式 关于ie浏览器的文档模式,浏览器模式,严格模式,怪异模式,doctype 标签,可详细阅读模式?标准!的内容。
( r8 d1 C2 |, ^charset- M7 E8 x; u9 q7 a; E
声明文档使用的字符编码,, ^4 c! {& i0 F; [5 F" A
xml/html code复制内容到剪贴板4 q% {/ p$ f1 W; M3 V7 O7 d+ }- O! Q9 L$ t O
<meta charset=utf-8>
: A6 `+ a' C& R0 _ |html5 之前网页中会这样写:
: W, [9 K) Q/ @- y) i, Exml/html code复制内容到剪贴板
, w! W Y" U& g5 a1 Z<meta http-equiv=content-type content=text/html; charset=utf-8>
! _' M2 O/ }% q- W* s! u$ Elang属性" @$ `4 g y* N) y" l) W( N! k
简体中文- T6 j# y) L7 Q1 `, F, F
xml/html code复制内容到剪贴板
* X0 o8 L( x) x4 {1 {6 ~<html lang=zh-cmn-hans>
! K+ H' Q5 J b; n( d/ X) C! K繁体中文
- M* U+ h' O* h" \, m5 k) \0 j# oxml/html code复制内容到剪贴板
5 {% f; X) ~2 d' U( ?' J<html lang=zh-cmn-hant>' a6 @* D! B* S! i' ^5 M
为什么 lang=zh-cmn-hans 而不是我们通常写的 lang=zh-cn 呢
; ^: I! B s3 a( }; s0 \优先使用 ie 最新版本和 chrome8 P( M3 s. \( i$ ^
xml/html code复制内容到剪贴板% W7 W4 P* V( ~3 X3 O3 z. k
<meta http-equiv=x-ua-compatible content=ie=edge,chrome=1 />/ l' [: k O; N5 e) {/ K7 i
360 使用google chrome frame
$ s$ \1 ^& O6 M/ y0 @+ Zxml/html code复制内容到剪贴板% A8 @; V6 S: n& y9 |
<meta name=renderer content=webkit>
8 \$ U2 Q- j9 I# g* D& |360 浏览器就会在读取到这个标签后,立即切换对应的极速核。 另外为了保险起见再加入
+ A6 R" g* p9 Q9 Wxml/html code复制内容到剪贴板2 o3 C2 u6 ?+ X. Y3 @& A
<meta http-equiv=x-ua-compatible content=ie=edge,chrome=1>
: I* B, R- o Z2 @这样写可以达到的效果是如果安装了 google chrome frame,则使用 gcf 来渲染页面,如果没有安装 gcf,则使用最高版本的 ie 内核进行渲染。3 g1 j) w' G8 u
4 u8 W9 r' p% J" _2 r S4 X百度禁止转码
2 k: ^, q+ {: V. P3 Q$ x. s0 q通过百度手机打开网页时,百度可能会对你的网页进行转码,脱下你的衣服,往你的身上贴狗皮膏药的广告,为此可在 head 内添加
1 l" z t* Q# c w6 W$ c( M! o' Yxml/html code复制内容到剪贴板8 R1 x2 J: |" Q% K6 C# p) i
<meta http-equiv=cache-control content=no-siteapp />" j/ c8 h+ Y$ v" e) q, o7 S8 Y
, i H% L. j; m. Y" ^# M! n
seo 优化部分! W* Z( S1 _- \ ?5 s
页面标题<title>标签(head 头部必须)6 F8 F0 R6 R4 g
xml/html code复制内容到剪贴板0 Y. K9 @4 u: ~% c
<title>your title</title>, f% t C1 j& c) _* I" k' a7 \
页面关键词 keywords
8 P/ x" Q4 Y1 l) q, T1 N. kxml/html code复制内容到剪贴板3 T2 V3 O" ^8 Q H0 Y
<meta name=keywords content=your keywords>: C9 C1 l8 i+ A3 k/ n
页面描述内容 description
; @2 C- X' u b- S) \, Kxml/html code复制内容到剪贴板0 ^, f, D( ?+ [/ I
<meta name=description content=your description>
2 K/ e. C- w1 |8 Y0 V定义网页作者 author" M5 [' v& O% w0 H$ D8 X9 I
xml/html code复制内容到剪贴板
' t4 m+ Z' ~% @. N% t/ S9 [<meta name=author content=author,email address>
8 F9 j' \9 w* C, M6 u定义网页搜索引擎索引方式,robotterms 是一组使用英文逗号「,」分割的值,通常有如下几种取值:none,noindex,nofollow,all,index和follow。* _: Z& H5 a# i+ B7 `
xml/html code复制内容到剪贴板) ], Y7 L- m2 R$ m
<meta name=robots content=index,follow>3 F) J8 R$ l6 w2 r
viewport
2 l/ g0 A: S. E! M* Cviewport 可以让布局在移动浏览器上显示的更好。 通常会写
- D( r) N3 y! P8 w3 V7 Sxml/html code复制内容到剪贴板' N1 e7 E6 |9 P- W
<meta name=viewport content=width=device-width, initial-scale=1.0>! W6 t `5 A5 h6 h0 C. H0 d
width=device-width 会导致 iphone 5 添加到主屏后以 webapp 全屏模式打开页面时出现黑边8 D/ k) u- p ~( h$ J; j
content 参数:
& @* g; U5 _$ ?1 \1 X$ Awidth viewport 宽度(数值/device-width)
& M# f! l, z* f& ~height viewport 高度(数值/device-height)
@! O! t2 f! q$ X) m0 j" [* y ninitial-scale 初始缩放比例; o3 q; J* `$ ~% U* U A
maximum-scale 最大缩放比例
; i8 d2 V6 c; t) Y3 Zminimum-scale 最小缩放比例
1 \4 b. m( d& d% K; d% }user-scalable 是否允许用户缩放(yes/no)
* h0 z1 _# R* H4 b% F; F" Sminimal-ui ios 7.1 beta 2 中新增属性,可以在页面加载时最小化上下状态栏。这是一个布尔值,可以直接这样写:8 j. h6 q6 K2 {! f4 c: _# ^
xml/html code复制内容到剪贴板$ U% [/ v& l( ^
<meta name=viewport content=width=device-width, initial-scale=1, minimal-ui>1 a. f, s& Q) u/ }2 H( M( Z2 V4 ?
而如果你的网站不是响应式的,请不要使用 initial-scale 或者禁用缩放。4 m; `) y5 X; G" |5 f1 |0 E4 _
xml/html code复制内容到剪贴板4 L* K2 g1 p: T% j2 e
<meta name=viewport content=width=device-width,user-scalable=yes>
6 [- H7 G( y. L* s适配 iphone 6 和 iphone 6plus 则需要写:& i4 n8 [7 B- P/ |) C) F
xml/html code复制内容到剪贴板
2 \% ?/ j' F; f+ z<meta name=viewport content=width=375>
0 n4 F/ G; |* @* E! b<meta name=viewport content=width=414>
0 v* E8 N; m8 S9 V4 V大部分 4.7~5 寸的安卓设备的 viewport 宽设为 360px,iphone 6 上却是 375px,大部分 5.5 寸安卓机器(比如说三星 note)的 viewport 宽为 400,iphone 6 plus 上是 414px。
7 B/ ^7 G7 x9 W) r( aios 设备
0 e: v2 M/ d% S$ j添加到主屏后的标题(ios 6 新增)0 ]% ^# l7 h, c* `4 ^0 O
xml/html code复制内容到剪贴板
; @1 j3 N& H0 y8 a* T# J+ D<meta name=apple-mobile-web-app-title content=标题> <!-- 添加到主屏后的标题(ios 6 新增) -->
, p% m$ a5 {" g& U0 A( _是否启用 webapp 全屏模式* J1 X4 b* J: O) a7 J. s
xml/html code复制内容到剪贴板
: }/ r. ^+ B6 {. r9 \: h6 S4 z<meta name=apple-mobile-web-app-capable content=yes /> <!-- 是否启用 webapp 全屏模式 -->( h9 Y& Y) y' ?
设置状态栏的背景颜色0 U n) H z8 S4 P; d: m) _% M
xml/html code复制内容到剪贴板! M! ^, j) @* S% M' I, Y2 I: W
<meta name=apple-mobile-web-app-status-bar-style content=black-translucent />
" W( j- ^, u: A<!-- 设置状态栏的背景颜色,只有在 `apple-mobile-web-app-capable content=yes` 时生效 -->7 t1 _# s# {0 O8 y( |
只有在 apple-mobile-web-app-capable content=yes 时生效
% |6 G% @- U' o1 {9 B$ y* z9 fcontent 参数:. f' V) ^' f2 `' o# M
default 默认值。
" X3 n* ]6 t( K4 y# Nblack 状态栏背景是黑色。
/ b5 p" x S# i1 E' bblack-translucent 状态栏背景是黑色半透明。 如果设置为 default 或 black ,网页内容从状态栏底部开始。 如果设置为 black-translucent ,网页内容充满整个屏幕,顶部会被状态栏遮挡。
" [0 E/ i7 f3 Y0 i禁止数字识自动别为电话号码
6 X% d l3 ^; Y9 M+ m- zxml/html code复制内容到剪贴板# v% d/ I; _9 H0 s, X
<meta name=format-detection content=telephone=no /> <!-- 禁止数字识自动别为电话号码 -->
1 `; s* u. r+ n/ x y+ ]ios 图标
- ]7 w* j0 Q, Trel 参数: apple-touch-icon 图片自动处理成圆角和高光等效果。 apple-touch-icon-precomposed 禁止系统自动添加效果,直接显示设计原图。 iphone 和 itouch,默认 57x57 像素,必须有$ \1 `8 r! m3 O2 [7 e; g
代码如下:" V, \9 T. t0 G9 ~( J
<link rel=apple-touch-icon-precomposed href=/apple-touch-icon-57x57-precomposed.png /> <!-- iphone 和 itouch,默认 57x57 像素,必须有 -->
5 q' q5 D! ~; Aipad,72x72 像素,可以没有,但推荐有
) i H! b( \2 H1 h4 m代码如下:$ R- b+ c6 Z# j' C1 u# w
<link rel=apple-touch-icon-precomposed sizes=72x72 href=/apple-touch-icon-72x72-precomposed.png /> <!-- ipad,72x72 像素,可以没有,但推荐有 -->
6 n$ y1 ~7 Z, g. A* k, \" Z7 Dretina iphone 和 retina itouch,114x114 像素,可以没有,但推荐有% v6 o; m6 T) m# u3 r
代码如下:
0 X; [6 w, b' l x0 q2 j( e: e<link rel=apple-touch-icon-precomposed sizes=114x114 href=/apple-touch-icon-114x114-precomposed.png /> <!-- retina iphone 和 retina itouch,114x114 像素,可以没有,但推荐有 -->
. [7 u3 w5 H8 c) n, G0 aretina ipad,144x144 像素,可以没有,但推荐有) I& T' R5 v% ~3 G- c3 p$ O- \7 S
代码如下:
; G, d4 I4 {( I" W<link rel=apple-touch-icon-precomposed sizes=144x144 href=/apple-touch-icon-144x144-precomposed.png /> <!-- retina ipad,144x144 像素,可以没有,但推荐有 -->
' c7 y1 K9 s9 o; Vios 图标大小在iphone 6 plus上是180×180,iphone 6 是120x120。 适配iphone 6 plus,则需要在中加上这段
4 ~) W d$ J. T; p7 h. n- Q2 K$ i代码如下:0 Y. T) n6 \+ q/ l+ h
<link rel=apple-touch-icon-precomposed sizes=180x180 href=retinahd_icon.png>
5 N! q7 d1 F9 @1 |5 b) y6 wios 启动画面0 {2 w; A8 u- a, R; F$ L1 f
ipad 的启动画面是不包括状态栏区域的。
' i! q/ m) e% Q s: W0 O1 W! }) ^% b9 V4 Wipad 竖屏 768 x 1004(标准分辨率)# p T$ m; V% n! y4 A
代码如下:0 r! N( w% w$ G- y
<link rel=apple-touch-startup-image sizes=768x1004 href=/splash-screen-768x1004.png /> <!-- ipad 竖屏 768 x 1004(标准分辨率) -->+ H7 R1 _: _# T C" e
ipad 竖屏 1536x2008(retina): T$ J% E+ F1 R' e, b/ c1 T
代码如下:/ Q9 s5 ?3 h' E
<link rel=apple-touch-startup-image sizes=1536x2008 href=/splash-screen-1536x2008.png /> <!-- ipad 竖屏 1536x2008(retina) -->
# H0 p3 t5 z& Z2 ~+ kipad 横屏 1024x748(标准分辨率)
/ i8 j6 z! W R! Q3 a) _代码如下:" c- F9 \1 E) V6 Y3 \- F; A
<link rel=apple-touch-startup-image sizes=1024x748 href=/default-portrait-1024x748.png /> <!-- ipad 横屏 1024x748(标准分辨率) -->
5 ~4 ]) T" B; B7 q7 ]4 Nipad 横屏 2048x1496(retina)- W! y! `7 b6 \. N4 D& S
代码如下:
- Q( k+ H: A6 j# J+ b8 m9 C<link rel=apple-touch-startup-image sizes=2048x1496 href=/splash-screen-2048x1496.png /> <!-- ipad 横屏 2048x1496(retina) -->1 }$ B0 g- M' Y* s+ C
iphone 和 ipod touch 的启动画面是包含状态栏区域的。( S! |3 h8 W. m, p; _+ q3 h
iphone/ipod touch 竖屏 320x480 (标准分辨率)
) F9 f" | w4 e4 J+ S代码如下:3 |/ a Y2 p) `- I
<link rel=apple-touch-startup-image href=/splash-screen-320x480.png /> <!-- iphone/ipod touch 竖屏 320x480 (标准分辨率) -->
9 I& A7 O e8 q* ~+ I* C2 yiphone/ipod touch 竖屏 640x960 (retina)
5 Z% @8 w! @6 H, \3 j代码如下:! M. S+ `2 B% s7 O' y
<link rel=apple-touch-startup-image sizes=640x960 href=/splash-screen-640x960.png /> <!-- iphone/ipod touch 竖屏 640x960 (retina) -->
" z1 M8 k! V, o' giphone 5/ipod touch 5 竖屏 640x1136 (retina)+ @5 P$ C# B+ h% g
代码如下:
0 u' H1 }, o2 f0 O" N9 j<link rel=apple-touch-startup-image sizes=640x1136 href=/splash-screen-640x1136.png /> <!-- iphone 5/ipod touch 5 竖屏 640x1136 (retina) -->- q _ X- H$ q' `9 n
添加智能 app 广告条 smart app banner(ios 6+ safari)6 I3 Y) f" j l5 ^" I
代码如下:, K: n4 ^% B$ @
<meta name=apple-itunes-app content=app-id=myappstoreid, affiliate-data=myaffiliatedata, app-argument=myurl> <!-- 添加智能 app 广告条 smart app banner(ios 6+ safari) -->
Y7 V0 J) K0 N" ^4 E7 ]- x1 F" ?7 S1 siphone 6对应的图片大小是750×1294,iphone 6 plus 对应的是1242×2148 。0 Y/ t' J3 Q, Z2 e6 K5 k
代码如下:
( s% O6 B6 \: O5 C# R& M<link rel=apple-touch-startup-image href=launch6.png media=(device-width: 375px)>, }4 Q2 E1 ?' r% ~
<link rel=apple-touch-startup-image href=launch6plus.png media=(device-width: 414px)>3 j( ^& i! Z2 w" U5 M+ l
windows 8" ~$ x6 w5 M" t- M- c+ k* T2 O& F
windows 8 磁贴颜色
4 T) d, H+ ]8 S. t( l0 Q: `2 x代码如下:9 N! I5 n6 d; [- b: i, \# B
<meta name=msapplication-tilecolor content=#000/> <!-- windows 8 磁贴颜色 -->1 @( i" x: T0 f. W) @7 m0 B- b# N; I
windows 8 磁贴图标
" ~9 ]7 J" ~, S& i代码如下:" p$ [* K# c4 |7 ~1 Y7 M4 F* v
<meta name=msapplication-tileimage content=icon.png/> <!-- windows 8 磁贴图标 -->
9 X) z# P% u5 Mrss订阅
9 v& j) Q& R/ S" } j1 _代码如下:1 s; U- z* a2 \4 j I
<link rel=alternate type=application/rss+xml title=rss href=/rss.xml /> <!-- 添加 rss 订阅 -->. I2 b t" |+ u7 k
favicon icon; i& p: V; C$ {8 R
代码如下:
( {9 A! J: o, p2 a& S. a. X# i9 l<link rel=shortcut icon type=image/ico href=/favicon.ico /> <!-- 添加 favicon icon -->
, w+ c* B+ n& o# U& Y移动端的meta" a& n. _2 w! N* }/ y
xml/html code复制内容到剪贴板
T, k5 Q5 o+ U0 \<meta name=viewport content=width=device-width, initial-scale=1, user-scalable=no />
& D$ T! B9 J" l+ j6 ?' i+ Z- N4 j! ?<meta name=apple-mobile-web-app-capable content=yes />$ A' a8 [$ w2 S7 m6 z
<meta name=apple-mobile-web-app-status-bar-style content=black />
2 C/ ]4 D7 l2 g. x. \<meta name=format-detectioncontent=telephone=no, email=no />
) @( i: }1 K) ]9 E<meta name=viewport content=width=device-width, initial-scale=1, user-scalable=no />; b2 ~) g5 m+ t# s# B
<meta name=apple-mobile-web-app-capable content=yes /><!-- 删除苹果默认的工具栏和菜单栏 -->4 c$ t4 q& ]0 n( R# s# Z
<meta name=apple-mobile-web-app-status-bar-style content=black /><!-- 设置苹果工具栏颜色 -->
* M$ j' z$ h5 n k$ ~; ~2 y<meta name=format-detection content=telphone=no, email=no /><!-- 忽略页面中的数字识别为电话,忽略email识别 -->
5 }2 i8 h5 ]3 u6 ?<!-- 启用360浏览器的极速模式(webkit) -->
* k7 c* Z7 S* T2 R; q- b+ F: o<meta name=renderer content=webkit>$ m! V q* o5 M( ~. r5 d
<!-- 避免ie使用兼容模式 -->
2 z" ?$ \% U4 @1 c<meta http-equiv=x-ua-compatible content=ie=edge>( C' [5 _4 O" a7 h
<!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
+ q- N3 A* }0 d* D8 \, K- I4 j<meta name=handheldfriendly content=true>
* u5 C; S+ |7 k6 v<!-- 微软的老式浏览器 -->
5 t; Z/ B9 z2 h<meta name=mobileoptimized content=320>
+ w2 J. n5 q6 W* [0 `<!-- uc强制竖屏 -->7 v' S, f" V7 ?3 c( f' k
<meta name=screen-orientation content=portrait>
5 w7 o0 W% t. T2 S& w7 \<!-- qq强制竖屏 -->1 _3 ?4 L# N- I0 B( ]1 J, W
<meta name=x5-orientation content=portrait>
3 q; Q d4 P. J/ m0 B; ~, K<!-- uc强制全屏 -->/ O- J( m: \, T/ |4 T' {, h) k
<meta name=full-screen content=yes>6 }* V6 u+ P+ U0 U2 ^
<!-- qq强制全屏 -->! ~" P- S1 M/ q) R% A1 r! y# r
<meta name=x5-fullscreen content=true>
# n; e6 s2 \$ F( p8 U& k7 l3 R2 v<!-- uc应用模式 -->+ G# O# u2 c8 u/ H$ X9 |
<meta name=browsermode content=application>6 @8 r! R0 x) w3 l$ A3 D; F1 d% ^2 B
<!-- qq应用模式 -->7 Y, }2 a: c5 W) _
<meta name=x5-page-mode content=app>
. L: [7 M* j3 |/ g" V) M9 _, U C<!-- windows phone 点击无高光 -->9 c B, n. L1 o) X+ L& j
<meta name=msapplication-tap-highlight content=no>) ^! ~2 z) g# z% p- v, ]
<!-- 适应移动端end -->9 ]3 l1 E [( R$ ?
/ }# Z: }! u0 Z% n* c6 g更多网页制作信息请查看: 网页制作 |
|