html head 头部分的标签、元素有很多,涉及到浏览器对网页的渲染,seo 等等,而各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,这就造成了很多差异性。移动互联网时代,head 头部结构,移动端的 meta 元素,显得更为重要。了解每个标签的意义,写出满足自己需求的 head 头标签,是本文的目的。本篇以一丝的文章为基础,进行扩展总结介绍常用的 head 中各个标签、元素的意义以及使用场景。; A. n; b2 @( D
doctype
& }0 a, z' I( t+ l/ e4 b& S9 hdoctype(document type),该声明位于文档中最前面的位置,处于 html 标签之前,此标签告知浏览器文档使用哪种 html 或者 xhtml 规范。
5 H0 t$ W, [) m X* m% Odtd(document type definition) 声明以 <!doctype> 开始,不区分大小写,前面没有任何内容,如果有其他内容(空格除外)会使浏览器在 ie 下开启怪异模式(quirks mode)渲染网页。公共 dtd,名称格式为注册//组织//类型 标签//语言,注册指组织是否由国际标准化组织(iso)注册,+表示是,-表示不是。组织即组织名称,如:w3c。类型一般是 dtd。标签是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号。最后语言是 dtd 语言的 iso 639 语言标识符,如:en 表示英文,zh 表示中文。xhtml 1.0 可声明三种 dtd 类型。分别表示严格版本,过渡版本,以及基于框架的 html 文档。+ p3 x# Y/ h7 _# |( ]7 ^# x) D
●html 4.01 strict5 u. @/ n7 v2 G, A2 U, r. L7 ^, S' B
xml/html code复制内容到剪贴板! s: F; D' i5 E7 u) R
<!doctype html public -//w3c//dtd html 4.01//en >
$ {; [- ^- |- R+ S4 }# R# ~! F9 ]●html 4.01 transitional e8 k- y% w* G; z a; a
xml/html code复制内容到剪贴板2 c5 ~4 y( S8 S8 W, Z0 V
<!doctype html public -//w3c//dtd html 4.01 transitional//en >
: O6 s5 t! J( A8 O6 q1 V# ?' a# ] W●html 4.01 frameset1 M( F M! I8 v: K4 ^3 u
xml/html code复制内容到剪贴板
, [5 z; [' S5 ~3 W% J<!doctype html public -//w3c//dtd html 4.01 frameset//en >
8 ?" ^3 l: t9 `) c$ v●最新 html5 推出更加简洁的书写,它向前向后兼容,推荐使用。
. E/ H5 o5 E% r7 E% l; @5 ?xml/html code复制内容到剪贴板: o: R! y+ A! T9 \# L1 @
<!doctype html>% c* ]" n; E% e: X
在 html中 doctype 有两个主要目的。
* k& a7 e: o& H7 M i●对文档进行有效性验证。7 I* @" O) ?2 t! H
它告诉用户代理和校验器这个文档是按照什么 dtd 写的。这个动作是被动的,每次页面加载时,浏览器并不会下载 dtd 并检查合法性,只有当手动校验页面时才启用。3 ]5 ?+ H: E9 o0 s8 H
●决定浏览器的呈现模式4 z6 a8 m$ n7 H
对于实际操作,通知浏览器读取文档时用哪种解析算法。如果没有写,则浏览器则根据自身的规则对代码进行解析,可能会严重影响 html 排版布局。浏览器有三种方式解析 html 文档。2 {5 {! N F- m7 q9 h8 B( `9 x
●非怪异(标准)模式
: @7 n/ {. _8 X9 {$ ]) T+ K●怪异模式
) ^4 J5 j; u- ~+ x& N6 I, C●部分怪异(近乎标准)模式 关于ie浏览器的文档模式,浏览器模式,严格模式,怪异模式,doctype 标签,可详细阅读模式?标准!的内容。
( G8 u9 o, g, _charset5 l) z( n" {+ ]' M% C0 o# a
声明文档使用的字符编码,
1 O8 s0 A. L% X5 i. g$ _9 wxml/html code复制内容到剪贴板: w1 B7 f; F* F2 O- U' V8 m
<meta charset=utf-8>5 w8 b' z x6 f7 A6 {( h+ k4 [
html5 之前网页中会这样写:2 l! v0 ^, }7 q& g: N* p
xml/html code复制内容到剪贴板
7 H" R( f, q7 i<meta http-equiv=content-type content=text/html; charset=utf-8>( P4 t) A }2 b, \: h. Z
lang属性
. k+ D* u9 Z# T/ J1 t7 w简体中文0 ]# L9 M0 C% F" Z1 k, T2 c& n
xml/html code复制内容到剪贴板. \6 \5 p8 k g5 e3 z, `* q
<html lang=zh-cmn-hans>
: p6 t. q3 ]* U* J繁体中文
0 f# L. w9 g" ]xml/html code复制内容到剪贴板
% d ^0 N/ Q$ g; a" L<html lang=zh-cmn-hant>
, ?& x4 d* i6 _7 z! T# ^为什么 lang=zh-cmn-hans 而不是我们通常写的 lang=zh-cn 呢4 J( \& }4 q2 d/ T
优先使用 ie 最新版本和 chrome
6 r5 p0 n. ]% W8 Q+ G* e3 txml/html code复制内容到剪贴板6 j# n# i; j/ a6 r" h
<meta http-equiv=x-ua-compatible content=ie=edge,chrome=1 />
1 Z9 y! v4 d, u }$ d360 使用google chrome frame
' l/ w$ x$ }7 ?3 |: P$ @" i% Z4 x7 txml/html code复制内容到剪贴板( e6 P8 ?+ _% h6 y+ h$ c' Z
<meta name=renderer content=webkit>+ x( u& `* P4 \; i
360 浏览器就会在读取到这个标签后,立即切换对应的极速核。 另外为了保险起见再加入+ A, ^0 a- m! u! u0 \
xml/html code复制内容到剪贴板
) a- X# ?( K4 F+ [<meta http-equiv=x-ua-compatible content=ie=edge,chrome=1>
: h' g D" m; q" `# _ w, V这样写可以达到的效果是如果安装了 google chrome frame,则使用 gcf 来渲染页面,如果没有安装 gcf,则使用最高版本的 ie 内核进行渲染。% Y5 Z: K& J! E+ v/ w. e, X4 q( l
6 }9 G5 y% ?8 n/ P* F$ e& i
百度禁止转码
& Q, K+ X# z1 g通过百度手机打开网页时,百度可能会对你的网页进行转码,脱下你的衣服,往你的身上贴狗皮膏药的广告,为此可在 head 内添加
d' l7 x+ J) [3 Q6 z0 u2 f5 `/ V0 qxml/html code复制内容到剪贴板
; L! g# X5 V" f/ j1 ]+ n+ ]7 l<meta http-equiv=cache-control content=no-siteapp />
" i7 u! @, R& Q6 x* H* r
, d# S- a+ }( X5 l/ d4 m/ Lseo 优化部分
Z: J/ }% }# p2 [( X页面标题<title>标签(head 头部必须)
^, @4 T" g5 S# ]3 l" fxml/html code复制内容到剪贴板
8 K2 s( {+ w6 l2 F8 |4 C1 o<title>your title</title> M8 |. |# b. T) _# K$ g# i
页面关键词 keywords
4 N$ c y; U( M8 U$ }# x' Oxml/html code复制内容到剪贴板) M! L7 Z1 J3 K: Y6 C& X
<meta name=keywords content=your keywords>% g( F9 E: x$ P( }8 c
页面描述内容 description
/ F5 p8 U1 y4 k) axml/html code复制内容到剪贴板9 _, L5 r: |7 q: T0 m- P8 o Q9 r& ^6 [
<meta name=description content=your description>
4 g5 I0 p% ]* p+ r7 F; k9 V% ^- A定义网页作者 author
( k% o4 t) @$ c- L6 xxml/html code复制内容到剪贴板( u2 m1 b7 M0 M1 d( k" X6 h
<meta name=author content=author,email address>
& }" k2 V$ p! M% z: D' p" h$ h定义网页搜索引擎索引方式,robotterms 是一组使用英文逗号「,」分割的值,通常有如下几种取值:none,noindex,nofollow,all,index和follow。 ?* n3 W# k5 y# c$ M0 d7 d6 y s& n
xml/html code复制内容到剪贴板, K7 C/ z- Y2 a1 Z2 X
<meta name=robots content=index,follow>8 M; L2 j) C$ ^5 `5 S
viewport4 k: Q- q1 y' J0 y( k$ o) G# H
viewport 可以让布局在移动浏览器上显示的更好。 通常会写' v# U& ~! ?0 K! Z( x: l9 y
xml/html code复制内容到剪贴板, \; E$ l ` J' S) Q7 `4 Q7 j
<meta name=viewport content=width=device-width, initial-scale=1.0># I! y1 x% L' r3 b5 p$ d
width=device-width 会导致 iphone 5 添加到主屏后以 webapp 全屏模式打开页面时出现黑边6 f0 u+ u6 E( Q$ K! l+ C
content 参数:
; S2 ]5 ~/ u$ x- b) J) |width viewport 宽度(数值/device-width)- v7 S7 @3 g* C+ S, q# x; L# d8 U
height viewport 高度(数值/device-height)' \; b" n9 G" h8 S% O
initial-scale 初始缩放比例
4 ~8 X( e9 r% S' N+ m* D9 m+ t# u) fmaximum-scale 最大缩放比例
) b) M g$ [( M* Rminimum-scale 最小缩放比例. T/ v5 ?' i1 y# t8 y; C
user-scalable 是否允许用户缩放(yes/no)( f7 g' _4 v) t- G4 _) u, ?, g/ C
minimal-ui ios 7.1 beta 2 中新增属性,可以在页面加载时最小化上下状态栏。这是一个布尔值,可以直接这样写:0 K& |& |) y9 ]6 c6 m, S- x8 d
xml/html code复制内容到剪贴板
3 Y2 @$ \2 `% S* g. o<meta name=viewport content=width=device-width, initial-scale=1, minimal-ui>
" a1 f! V$ ^' q, [而如果你的网站不是响应式的,请不要使用 initial-scale 或者禁用缩放。. {! U% h2 I& ^. J! t( A
xml/html code复制内容到剪贴板 X7 P. p! t9 Y& v1 v* _
<meta name=viewport content=width=device-width,user-scalable=yes>
# K8 O: r9 M1 {' ^适配 iphone 6 和 iphone 6plus 则需要写:, f* R I; N4 {$ `; |; ]. N
xml/html code复制内容到剪贴板
+ ~$ O" D/ I1 U3 U3 Q9 Q<meta name=viewport content=width=375>
% _3 C2 } `( B<meta name=viewport content=width=414>0 ~* O& [' Q) E+ e3 N. I( |* v, I
大部分 4.7~5 寸的安卓设备的 viewport 宽设为 360px,iphone 6 上却是 375px,大部分 5.5 寸安卓机器(比如说三星 note)的 viewport 宽为 400,iphone 6 plus 上是 414px。
9 T6 z/ r$ A8 ]& I/ @! S J& E; l2 [ios 设备
9 |6 Y* T! t z3 u$ G添加到主屏后的标题(ios 6 新增)) B* D' L d; a$ [" z6 x; I
xml/html code复制内容到剪贴板
; |1 ?4 v6 Y, l<meta name=apple-mobile-web-app-title content=标题> <!-- 添加到主屏后的标题(ios 6 新增) -->3 b6 o% ~$ |3 m3 j& F0 x0 e& j
是否启用 webapp 全屏模式6 O) V4 F% N, G. h* V d C
xml/html code复制内容到剪贴板# j) f0 e9 T- ? T
<meta name=apple-mobile-web-app-capable content=yes /> <!-- 是否启用 webapp 全屏模式 -->
) m# U) y$ s0 k" D设置状态栏的背景颜色6 H' [9 L/ q( i
xml/html code复制内容到剪贴板
4 K5 E1 w2 w6 _5 D" d) U2 g: R<meta name=apple-mobile-web-app-status-bar-style content=black-translucent />" \, j4 d" u) W/ {
<!-- 设置状态栏的背景颜色,只有在 `apple-mobile-web-app-capable content=yes` 时生效 -->
4 ^0 e# Q+ M+ V& K4 v9 ]只有在 apple-mobile-web-app-capable content=yes 时生效
. _" r2 U- c/ _1 ^6 w: gcontent 参数:, u# x/ x! K. E s Z) T1 |
default 默认值。
( g1 ^5 O, |( c5 ^black 状态栏背景是黑色。
4 J3 z B9 P, @black-translucent 状态栏背景是黑色半透明。 如果设置为 default 或 black ,网页内容从状态栏底部开始。 如果设置为 black-translucent ,网页内容充满整个屏幕,顶部会被状态栏遮挡。- K! M9 i. f9 O, f: ]# ~! t+ w, ]% m" L
禁止数字识自动别为电话号码
7 V4 r9 R/ j) f3 Xxml/html code复制内容到剪贴板
) u$ E$ [6 q3 Z<meta name=format-detection content=telephone=no /> <!-- 禁止数字识自动别为电话号码 -->% j0 J x+ ]3 [% X9 K
ios 图标! `( G9 U# r9 _
rel 参数: apple-touch-icon 图片自动处理成圆角和高光等效果。 apple-touch-icon-precomposed 禁止系统自动添加效果,直接显示设计原图。 iphone 和 itouch,默认 57x57 像素,必须有4 I( G( Y6 Y$ E
代码如下:
# u7 y) p w g3 m9 x; k3 M; p: l<link rel=apple-touch-icon-precomposed href=/apple-touch-icon-57x57-precomposed.png /> <!-- iphone 和 itouch,默认 57x57 像素,必须有 -->: [. l& _6 O3 F' B; \ k! j
ipad,72x72 像素,可以没有,但推荐有
* a9 v, z; b1 u5 a代码如下:7 L- B+ t0 F7 k8 ^- J' T
<link rel=apple-touch-icon-precomposed sizes=72x72 href=/apple-touch-icon-72x72-precomposed.png /> <!-- ipad,72x72 像素,可以没有,但推荐有 -->6 s; p4 z& M% s1 ^/ Q' x) ~1 r
retina iphone 和 retina itouch,114x114 像素,可以没有,但推荐有" `# } t% E6 f% N$ z7 r; |
代码如下:% }5 c/ L* L/ w, a
<link rel=apple-touch-icon-precomposed sizes=114x114 href=/apple-touch-icon-114x114-precomposed.png /> <!-- retina iphone 和 retina itouch,114x114 像素,可以没有,但推荐有 -->
1 y5 G& Y* G! }9 q0 d- Pretina ipad,144x144 像素,可以没有,但推荐有
: F$ ^! U9 P* A; _) X代码如下:
4 p+ g8 O; B$ h# h2 J& O<link rel=apple-touch-icon-precomposed sizes=144x144 href=/apple-touch-icon-144x144-precomposed.png /> <!-- retina ipad,144x144 像素,可以没有,但推荐有 -->
V3 M5 k7 M* f' B7 h4 h2 vios 图标大小在iphone 6 plus上是180×180,iphone 6 是120x120。 适配iphone 6 plus,则需要在中加上这段* N- F" }6 H# U
代码如下:
3 w: `1 Y8 v; @7 Y W: @$ h( r<link rel=apple-touch-icon-precomposed sizes=180x180 href=retinahd_icon.png>3 M( x. K V! F8 M( b
ios 启动画面
4 b/ C8 o* k/ V% G& X! Sipad 的启动画面是不包括状态栏区域的。* Q: `; i- |% Y$ c, f
ipad 竖屏 768 x 1004(标准分辨率)6 d% h1 l/ h& T8 f9 @8 w
代码如下:( W- Y) h9 s2 C8 M* y5 y d6 O
<link rel=apple-touch-startup-image sizes=768x1004 href=/splash-screen-768x1004.png /> <!-- ipad 竖屏 768 x 1004(标准分辨率) -->% I/ e6 X# q0 j+ N1 J
ipad 竖屏 1536x2008(retina)! {" F; h; Z4 p. a0 R% q0 [4 n
代码如下:
9 b) C# w2 m1 @<link rel=apple-touch-startup-image sizes=1536x2008 href=/splash-screen-1536x2008.png /> <!-- ipad 竖屏 1536x2008(retina) -->
( b3 F( p u6 Y7 z2 k/ Z7 _ipad 横屏 1024x748(标准分辨率)+ @) h+ l. A$ ]: J# z9 A
代码如下:
/ F& N! s6 _3 a) A; E" V) @, S8 Y<link rel=apple-touch-startup-image sizes=1024x748 href=/default-portrait-1024x748.png /> <!-- ipad 横屏 1024x748(标准分辨率) -->8 s( M V1 `$ g0 N! l
ipad 横屏 2048x1496(retina) ?, Y% S( ]% b- p
代码如下:
9 d& K( v; L% p<link rel=apple-touch-startup-image sizes=2048x1496 href=/splash-screen-2048x1496.png /> <!-- ipad 横屏 2048x1496(retina) -->. N9 y8 S( Z8 i: Q% x5 d) V+ h( Y7 x, f
iphone 和 ipod touch 的启动画面是包含状态栏区域的。6 Z% @9 L2 {. J6 A
iphone/ipod touch 竖屏 320x480 (标准分辨率)+ V# x6 X9 ]$ _" y
代码如下:$ t/ |% N1 N. Z* Q8 D
<link rel=apple-touch-startup-image href=/splash-screen-320x480.png /> <!-- iphone/ipod touch 竖屏 320x480 (标准分辨率) -->) _9 o: N Z- C- J+ \& M
iphone/ipod touch 竖屏 640x960 (retina)
3 p" p: r+ J) V# G5 L3 o代码如下:! D% g ~1 \. w% W: P$ s7 C, n
<link rel=apple-touch-startup-image sizes=640x960 href=/splash-screen-640x960.png /> <!-- iphone/ipod touch 竖屏 640x960 (retina) -->/ V6 M$ U# r, C* `2 Q
iphone 5/ipod touch 5 竖屏 640x1136 (retina)
1 m! f9 a' V+ `$ [8 g/ f" F8 e代码如下:
1 T) l, Z% H- ~! T! f) s/ y8 m0 V& g<link rel=apple-touch-startup-image sizes=640x1136 href=/splash-screen-640x1136.png /> <!-- iphone 5/ipod touch 5 竖屏 640x1136 (retina) -->
5 Y+ B1 N- ] y+ a" Y7 f: m添加智能 app 广告条 smart app banner(ios 6+ safari)% _4 g4 t* G+ R0 G6 {! U
代码如下:8 L. J8 @) j8 ?1 _/ q P6 ~3 Z
<meta name=apple-itunes-app content=app-id=myappstoreid, affiliate-data=myaffiliatedata, app-argument=myurl> <!-- 添加智能 app 广告条 smart app banner(ios 6+ safari) -->
- M# ^6 P! N# ~/ yiphone 6对应的图片大小是750×1294,iphone 6 plus 对应的是1242×2148 。
& C. k) o+ ^9 J. d代码如下:
1 `/ x/ V+ E2 ~# V- J5 K<link rel=apple-touch-startup-image href=launch6.png media=(device-width: 375px)>
* M: y* R: O. G2 Z<link rel=apple-touch-startup-image href=launch6plus.png media=(device-width: 414px)>
6 s5 P: b& z0 s0 p) q& e$ |- Kwindows 8: T" I' F- V! E+ ^& f6 J% U9 L
windows 8 磁贴颜色2 ?4 z% G; e2 Y2 N- D& p+ K
代码如下:
, {- b+ X3 G2 Z; [& b9 e7 _<meta name=msapplication-tilecolor content=#000/> <!-- windows 8 磁贴颜色 -->
/ R( p! s, b2 P8 b+ _' J- ?$ owindows 8 磁贴图标
* G4 k" j5 B+ ~9 l# g代码如下:
5 m& f% G0 M7 x/ m4 D- e2 a<meta name=msapplication-tileimage content=icon.png/> <!-- windows 8 磁贴图标 -->
5 Y2 a# m ~6 ?: Arss订阅
" f1 C8 Z- Q/ X0 u* \' T代码如下:( Y3 h+ q1 T* I [, _7 u; ]5 d
<link rel=alternate type=application/rss+xml title=rss href=/rss.xml /> <!-- 添加 rss 订阅 -->. Z2 I3 V# o. E" D3 |
favicon icon: W2 o1 P# n* r; [& S1 V: l& y
代码如下:+ U3 z# x; l- l8 a0 I3 R
<link rel=shortcut icon type=image/ico href=/favicon.ico /> <!-- 添加 favicon icon -->& D/ U, b% M0 N+ X9 t
移动端的meta
& l6 d7 B9 D! y/ `6 @, k) txml/html code复制内容到剪贴板
+ t5 n$ m# e' H; [; B# D/ [3 |% g<meta name=viewport content=width=device-width, initial-scale=1, user-scalable=no />$ T( T- g6 ?2 a( M3 t S' K4 d) f
<meta name=apple-mobile-web-app-capable content=yes />
, c5 t6 d' G% y9 ?<meta name=apple-mobile-web-app-status-bar-style content=black />. ~/ l& H' | `5 G
<meta name=format-detectioncontent=telephone=no, email=no />4 c* Q _" z" b) g( R
<meta name=viewport content=width=device-width, initial-scale=1, user-scalable=no />
: o8 g( M6 k$ B, R0 ]<meta name=apple-mobile-web-app-capable content=yes /><!-- 删除苹果默认的工具栏和菜单栏 -->
8 T, Q% m4 R* U* S<meta name=apple-mobile-web-app-status-bar-style content=black /><!-- 设置苹果工具栏颜色 -->
* F/ x$ N2 I- H( c* d: |<meta name=format-detection content=telphone=no, email=no /><!-- 忽略页面中的数字识别为电话,忽略email识别 -->
' E0 b* `1 i5 T( K1 b1 ]# D<!-- 启用360浏览器的极速模式(webkit) -->1 @( o% m1 k: U% e1 U. e4 \
<meta name=renderer content=webkit>- x7 ?' Q1 N0 J5 G
<!-- 避免ie使用兼容模式 -->2 e- T7 V, T+ }8 C% j; m3 j, z
<meta http-equiv=x-ua-compatible content=ie=edge>" V4 _2 X9 z0 ]
<!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->! n, J4 O3 I F8 n' A
<meta name=handheldfriendly content=true>
3 Q% Q9 F; ~1 s<!-- 微软的老式浏览器 -->
( i' E) V" x8 G0 ?3 \# M<meta name=mobileoptimized content=320>
( s7 s3 t% [9 Y, p) u& [! }<!-- uc强制竖屏 -->
! |- O% O8 _6 E% B: L<meta name=screen-orientation content=portrait>
) U9 ]/ a3 i) ?! ^0 m- D<!-- qq强制竖屏 -->
) \6 ?: r. n, A4 ^) V<meta name=x5-orientation content=portrait>
) I$ q: l9 I1 a/ Y( F: x5 N; u<!-- uc强制全屏 -->
K+ X. U" \" p* u& R" q' m<meta name=full-screen content=yes>) A' [3 D/ m- E: H3 \6 y0 B' S
<!-- qq强制全屏 -->
. ?4 b9 V) Y, k& g<meta name=x5-fullscreen content=true>. _( A* }$ P j2 S6 E
<!-- uc应用模式 -->3 L2 V5 o& @9 Z- c8 j
<meta name=browsermode content=application>9 N7 _" e" d8 u J) D1 V
<!-- qq应用模式 -->0 Z' t/ o9 }% H }& `
<meta name=x5-page-mode content=app>3 e- j T F# w$ S$ I
<!-- windows phone 点击无高光 -->
6 J: P( f0 H& |. f<meta name=msapplication-tap-highlight content=no>& c) E4 P) I) e& ^+ O! \
<!-- 适应移动端end -->
9 X( W6 ?; s1 v# r9 \2 N4 u+ q/ t" T& ~# o2 R: t
更多网页制作信息请查看: 网页制作 |
|