html head 头部分的标签、元素有很多,涉及到浏览器对网页的渲染,seo 等等,而各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,这就造成了很多差异性。移动互联网时代,head 头部结构,移动端的 meta 元素,显得更为重要。了解每个标签的意义,写出满足自己需求的 head 头标签,是本文的目的。本篇以一丝的文章为基础,进行扩展总结介绍常用的 head 中各个标签、元素的意义以及使用场景。. ^4 U0 F. L% J( e# B' h
doctype
3 P V* [; ?) Gdoctype(document type),该声明位于文档中最前面的位置,处于 html 标签之前,此标签告知浏览器文档使用哪种 html 或者 xhtml 规范。
0 v6 O1 f# s B: ]dtd(document type definition) 声明以 <!doctype> 开始,不区分大小写,前面没有任何内容,如果有其他内容(空格除外)会使浏览器在 ie 下开启怪异模式(quirks mode)渲染网页。公共 dtd,名称格式为注册//组织//类型 标签//语言,注册指组织是否由国际标准化组织(iso)注册,+表示是,-表示不是。组织即组织名称,如:w3c。类型一般是 dtd。标签是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号。最后语言是 dtd 语言的 iso 639 语言标识符,如:en 表示英文,zh 表示中文。xhtml 1.0 可声明三种 dtd 类型。分别表示严格版本,过渡版本,以及基于框架的 html 文档。
- @6 [* P: D; |0 c4 {7 k, r●html 4.01 strict
6 P7 L; u: J, Vxml/html code复制内容到剪贴板 k! x0 U6 S1 K9 @0 q
<!doctype html public -//w3c//dtd html 4.01//en >& Y' J* O; o- B. K
●html 4.01 transitional
" L% @. J7 x) l% u1 S# kxml/html code复制内容到剪贴板
- j/ Z) z x0 L! F% v4 G8 H/ w<!doctype html public -//w3c//dtd html 4.01 transitional//en >
+ v+ n% }' J( |# U3 O●html 4.01 frameset
: w% ]9 d+ w3 F6 l* xxml/html code复制内容到剪贴板
; g9 L- ^) d3 H3 ^<!doctype html public -//w3c//dtd html 4.01 frameset//en >* G! w' i5 |( `& q7 O; N& e: k( @
●最新 html5 推出更加简洁的书写,它向前向后兼容,推荐使用。; U% W9 B% c& j7 s% T
xml/html code复制内容到剪贴板5 n" S* @( l" Y- K9 h
<!doctype html>
/ P* T5 ~& B" |5 h9 L4 A在 html中 doctype 有两个主要目的。6 }3 d9 Q: |0 S2 ]9 C# J2 a
●对文档进行有效性验证。) x' O% m$ T# D6 Q% n+ g, q9 ?
它告诉用户代理和校验器这个文档是按照什么 dtd 写的。这个动作是被动的,每次页面加载时,浏览器并不会下载 dtd 并检查合法性,只有当手动校验页面时才启用。
2 m% m2 W- t( K O●决定浏览器的呈现模式/ U1 I" u" p2 g# B( y! i
对于实际操作,通知浏览器读取文档时用哪种解析算法。如果没有写,则浏览器则根据自身的规则对代码进行解析,可能会严重影响 html 排版布局。浏览器有三种方式解析 html 文档。
% \2 U0 o! R2 D, L2 k: Y●非怪异(标准)模式2 o0 T# M1 a3 S: g2 S9 |5 m" g
●怪异模式
$ H- Q! [( ~) l `3 S w; u●部分怪异(近乎标准)模式 关于ie浏览器的文档模式,浏览器模式,严格模式,怪异模式,doctype 标签,可详细阅读模式?标准!的内容。/ H* S( D& i5 |: b
charset
6 v2 {( G. s# U声明文档使用的字符编码,
- {- e& t) Q# v5 g6 t0 `0 {+ {xml/html code复制内容到剪贴板! {7 h* Q; g6 o6 N
<meta charset=utf-8>( H9 ?4 e' |) m7 B
html5 之前网页中会这样写:, c9 r! _' O; |) X6 O1 Y
xml/html code复制内容到剪贴板
8 ^% d# Z) U. E) B/ O4 @0 Z<meta http-equiv=content-type content=text/html; charset=utf-8>
+ F& L8 K: B* E q, `lang属性" r' [' Z5 _8 C- X
简体中文
2 d* D% B4 r7 A/ i3 _xml/html code复制内容到剪贴板1 G5 l% \: u$ O/ Z4 z+ J! j
<html lang=zh-cmn-hans>2 n. i' F% i/ z" x5 h! e- J
繁体中文. v# {! C4 l+ @9 p' A. h c
xml/html code复制内容到剪贴板
! N- [2 W5 Z k$ a, Y; W: x8 U<html lang=zh-cmn-hant>8 \+ r4 f; C. @5 \' h
为什么 lang=zh-cmn-hans 而不是我们通常写的 lang=zh-cn 呢
& U q H4 _1 t" w2 T% O优先使用 ie 最新版本和 chrome
0 s" z# p3 R: I5 @) C" fxml/html code复制内容到剪贴板
6 [: q/ e% ~. o. m2 s/ q<meta http-equiv=x-ua-compatible content=ie=edge,chrome=1 />
. Z9 m1 z! b( ^: k360 使用google chrome frame
- _& }8 f% g$ Xxml/html code复制内容到剪贴板) [6 }+ y& h+ P
<meta name=renderer content=webkit>
8 A6 x) ^5 H" g6 q! r) X: v360 浏览器就会在读取到这个标签后,立即切换对应的极速核。 另外为了保险起见再加入
2 h: r8 O- h( `* h2 Nxml/html code复制内容到剪贴板( B0 H8 C- O3 [# x4 S* Q; O1 K9 q
<meta http-equiv=x-ua-compatible content=ie=edge,chrome=1>
4 i5 |. U. l+ T j这样写可以达到的效果是如果安装了 google chrome frame,则使用 gcf 来渲染页面,如果没有安装 gcf,则使用最高版本的 ie 内核进行渲染。
# \% ^3 @' K, [8 B7 f$ X
8 k5 U" N1 \/ f百度禁止转码
& h- N9 ?( Y1 ?! K6 l通过百度手机打开网页时,百度可能会对你的网页进行转码,脱下你的衣服,往你的身上贴狗皮膏药的广告,为此可在 head 内添加% X o- h, U; M+ ^6 K. e: B# K
xml/html code复制内容到剪贴板
/ B. q2 M; S7 v! y0 S8 O( _<meta http-equiv=cache-control content=no-siteapp />% d# g) G7 n( ^& ~ M+ ~5 w( C6 u4 V, y
9 |6 Q4 q; `1 P/ f0 P
seo 优化部分
& a3 g+ ?, w/ O页面标题<title>标签(head 头部必须)
1 h ]6 H- b u4 p6 {" Axml/html code复制内容到剪贴板+ p) D: g* v3 ?4 N
<title>your title</title># k8 l9 i2 S' H+ x& e
页面关键词 keywords$ |4 k% H# S2 R! H' y. D% T {
xml/html code复制内容到剪贴板% {: J2 @- u/ O7 l3 o8 L n$ u4 `6 d% G' ^
<meta name=keywords content=your keywords>
& i& z: O# }4 `2 a* m. {8 w页面描述内容 description
+ L$ _# X" R/ l; [* oxml/html code复制内容到剪贴板2 }3 {/ [/ F( ^1 L: G
<meta name=description content=your description>% ]% |# x3 o4 t4 X. A9 v( h
定义网页作者 author; j/ W4 b5 z8 R( f9 i3 G
xml/html code复制内容到剪贴板
' i, J5 C) h4 z# |<meta name=author content=author,email address>
0 {" R5 o; I; s8 ?- G+ l定义网页搜索引擎索引方式,robotterms 是一组使用英文逗号「,」分割的值,通常有如下几种取值:none,noindex,nofollow,all,index和follow。9 @0 P8 D2 l; p$ T" B
xml/html code复制内容到剪贴板
. L+ z( c" ?# Y$ ~2 g, ^) V<meta name=robots content=index,follow>- _* f; O/ o0 l
viewport, x) N3 R% u( O! s* d% H2 I
viewport 可以让布局在移动浏览器上显示的更好。 通常会写
7 |& N2 ?# R2 G! X, M7 qxml/html code复制内容到剪贴板0 e6 N; l' X$ S
<meta name=viewport content=width=device-width, initial-scale=1.0> [* ^, K: G/ ~& Z* a3 d
width=device-width 会导致 iphone 5 添加到主屏后以 webapp 全屏模式打开页面时出现黑边0 R- g% g+ x$ a! k' j) U
content 参数:
; k. g! V' {$ P- f7 Rwidth viewport 宽度(数值/device-width)
1 Z( ?. c1 U5 s* R- i$ fheight viewport 高度(数值/device-height)0 y; u' O7 U, d- d# R
initial-scale 初始缩放比例# f# c) B" E6 U( q4 v' O7 q
maximum-scale 最大缩放比例* q' `1 e# C, c3 l& `& m
minimum-scale 最小缩放比例& m% I) X) t! h$ d
user-scalable 是否允许用户缩放(yes/no)( ^5 g! v3 o' X" [ U% ]. }) d4 P$ X, Y
minimal-ui ios 7.1 beta 2 中新增属性,可以在页面加载时最小化上下状态栏。这是一个布尔值,可以直接这样写:
1 m2 I. z/ e1 m6 Uxml/html code复制内容到剪贴板& t0 s: o4 G H
<meta name=viewport content=width=device-width, initial-scale=1, minimal-ui>" |( v9 p o# f
而如果你的网站不是响应式的,请不要使用 initial-scale 或者禁用缩放。" N0 g: `+ P. h/ J. ]& Y* N5 i6 t
xml/html code复制内容到剪贴板' O% @- f, v: L* k* D
<meta name=viewport content=width=device-width,user-scalable=yes>5 H) H% `4 W6 n& T3 R- o
适配 iphone 6 和 iphone 6plus 则需要写:
! j) B7 E7 |& z$ F- j. U, p) |. L# Rxml/html code复制内容到剪贴板) v& [2 q; `( ?4 X' O) c! t
<meta name=viewport content=width=375>' d$ v# U, w- Q+ t
<meta name=viewport content=width=414>
. \& {! Y& A5 s1 Z, a; n大部分 4.7~5 寸的安卓设备的 viewport 宽设为 360px,iphone 6 上却是 375px,大部分 5.5 寸安卓机器(比如说三星 note)的 viewport 宽为 400,iphone 6 plus 上是 414px。
: t3 Q; I: V I8 @6 ^( m/ k# mios 设备9 \, Y2 U% g" v) x9 e
添加到主屏后的标题(ios 6 新增)4 [; u% o6 d, w
xml/html code复制内容到剪贴板' Q# R, s B, _0 b
<meta name=apple-mobile-web-app-title content=标题> <!-- 添加到主屏后的标题(ios 6 新增) -->4 X% {* c5 t( q$ B" H( I
是否启用 webapp 全屏模式
( x2 l* H& b6 S1 O2 L5 Fxml/html code复制内容到剪贴板& A8 c( ^/ B3 U+ \0 Z
<meta name=apple-mobile-web-app-capable content=yes /> <!-- 是否启用 webapp 全屏模式 -->
- z& B+ t" A2 {4 N, \设置状态栏的背景颜色
* p6 e7 N0 w7 Axml/html code复制内容到剪贴板6 G# f( P# ?0 v
<meta name=apple-mobile-web-app-status-bar-style content=black-translucent />- o! d8 Y: y% ]$ Z0 u) ]
<!-- 设置状态栏的背景颜色,只有在 `apple-mobile-web-app-capable content=yes` 时生效 -->
3 y2 _$ t+ S9 i* ?8 r/ z. E只有在 apple-mobile-web-app-capable content=yes 时生效2 n& n/ F* h3 }3 j4 `. }
content 参数:) b+ d( u0 Z! v% J# F
default 默认值。3 w# f+ x) o e
black 状态栏背景是黑色。0 H/ t Q# q( H3 {5 P0 ]2 S& }
black-translucent 状态栏背景是黑色半透明。 如果设置为 default 或 black ,网页内容从状态栏底部开始。 如果设置为 black-translucent ,网页内容充满整个屏幕,顶部会被状态栏遮挡。& _# B- f) B( t! |9 E
禁止数字识自动别为电话号码. \* U* g; k/ |/ y$ C. o8 z
xml/html code复制内容到剪贴板) f' a" S% E3 l/ I2 B9 p$ b
<meta name=format-detection content=telephone=no /> <!-- 禁止数字识自动别为电话号码 -->: t3 N, T$ ~! p
ios 图标
; X9 r+ Z W* Crel 参数: apple-touch-icon 图片自动处理成圆角和高光等效果。 apple-touch-icon-precomposed 禁止系统自动添加效果,直接显示设计原图。 iphone 和 itouch,默认 57x57 像素,必须有8 b" K' c+ {6 ~" F
代码如下: b7 S# d4 {/ j6 o; X
<link rel=apple-touch-icon-precomposed href=/apple-touch-icon-57x57-precomposed.png /> <!-- iphone 和 itouch,默认 57x57 像素,必须有 -->
* s2 C6 |& { P8 s2 `ipad,72x72 像素,可以没有,但推荐有
7 `4 z# d4 Q, @+ L代码如下:- Z6 t- V" y1 L* C* O
<link rel=apple-touch-icon-precomposed sizes=72x72 href=/apple-touch-icon-72x72-precomposed.png /> <!-- ipad,72x72 像素,可以没有,但推荐有 -->
9 `2 e0 U4 [/ u! X$ s- tretina iphone 和 retina itouch,114x114 像素,可以没有,但推荐有
1 j" U( U8 w: Z) U代码如下:
C, W4 t( C6 W4 C, G C& t h<link rel=apple-touch-icon-precomposed sizes=114x114 href=/apple-touch-icon-114x114-precomposed.png /> <!-- retina iphone 和 retina itouch,114x114 像素,可以没有,但推荐有 -->
! y# Q7 v% c1 `retina ipad,144x144 像素,可以没有,但推荐有, s4 T6 D6 R+ u& T& {9 H+ k3 H
代码如下:! N: S3 m. [: ]0 r- ? e/ X
<link rel=apple-touch-icon-precomposed sizes=144x144 href=/apple-touch-icon-144x144-precomposed.png /> <!-- retina ipad,144x144 像素,可以没有,但推荐有 -->& Z/ R A- K- P) A$ Q5 k# x
ios 图标大小在iphone 6 plus上是180×180,iphone 6 是120x120。 适配iphone 6 plus,则需要在中加上这段9 R8 w' L. j! P5 f0 B
代码如下:
( A& Y ~! V8 Q5 b, a9 C" h1 g<link rel=apple-touch-icon-precomposed sizes=180x180 href=retinahd_icon.png>
- q/ T3 Z! r% p; Nios 启动画面
# ~- f' E; g+ V' U; }5 zipad 的启动画面是不包括状态栏区域的。" m3 l- _" z% K5 b4 [
ipad 竖屏 768 x 1004(标准分辨率)
9 d( C8 B. r' M代码如下:8 V/ l+ P I+ n9 C/ x" X% ?' Q
<link rel=apple-touch-startup-image sizes=768x1004 href=/splash-screen-768x1004.png /> <!-- ipad 竖屏 768 x 1004(标准分辨率) -->2 Z/ D4 d( A# }9 r# R0 |: x1 X/ B; U
ipad 竖屏 1536x2008(retina)
' r/ |4 E1 j& G: X. T* Z- F' a代码如下:, y! N* ^( |4 L V# d
<link rel=apple-touch-startup-image sizes=1536x2008 href=/splash-screen-1536x2008.png /> <!-- ipad 竖屏 1536x2008(retina) -->
, |$ I6 ^1 p0 Gipad 横屏 1024x748(标准分辨率)7 s& q5 Z# k8 |- P C: v
代码如下:
5 k- v' [7 b2 e6 Y6 ^8 H0 @<link rel=apple-touch-startup-image sizes=1024x748 href=/default-portrait-1024x748.png /> <!-- ipad 横屏 1024x748(标准分辨率) -->
8 _1 q G$ Y/ Nipad 横屏 2048x1496(retina)) D- r6 K& N3 x3 f; o& B
代码如下:
, w9 }' K% [1 J* W3 O/ b$ Z<link rel=apple-touch-startup-image sizes=2048x1496 href=/splash-screen-2048x1496.png /> <!-- ipad 横屏 2048x1496(retina) -->) }0 \- B" p- I% [, c
iphone 和 ipod touch 的启动画面是包含状态栏区域的。
: W+ y9 W3 F; P! E" siphone/ipod touch 竖屏 320x480 (标准分辨率)
( j& |2 X9 f. d; y) c2 r" @ [代码如下:1 K, X& m0 ^0 T2 n4 @3 @
<link rel=apple-touch-startup-image href=/splash-screen-320x480.png /> <!-- iphone/ipod touch 竖屏 320x480 (标准分辨率) -->% @- F) |/ P" w% L8 `4 ]& s L
iphone/ipod touch 竖屏 640x960 (retina)) V3 T% J" ~, b
代码如下:4 s6 _/ p9 L. Z2 c J
<link rel=apple-touch-startup-image sizes=640x960 href=/splash-screen-640x960.png /> <!-- iphone/ipod touch 竖屏 640x960 (retina) -->* t3 c$ t8 H) H2 ]# L
iphone 5/ipod touch 5 竖屏 640x1136 (retina)
1 [8 F: ?9 C3 ^代码如下:
8 B& v' Y. I8 L8 H ` {" u4 w0 [<link rel=apple-touch-startup-image sizes=640x1136 href=/splash-screen-640x1136.png /> <!-- iphone 5/ipod touch 5 竖屏 640x1136 (retina) -->! N; v, T5 u- W/ W6 r
添加智能 app 广告条 smart app banner(ios 6+ safari)) {5 h! h; w: ?% H3 P. j# y
代码如下:
' D8 P: E5 h- n$ z# Z8 | T! H<meta name=apple-itunes-app content=app-id=myappstoreid, affiliate-data=myaffiliatedata, app-argument=myurl> <!-- 添加智能 app 广告条 smart app banner(ios 6+ safari) -->
+ A+ \3 E: q/ i& a# z# Aiphone 6对应的图片大小是750×1294,iphone 6 plus 对应的是1242×2148 。
0 H O7 j( f* q9 [/ f! [代码如下:' O0 m. u/ e; i3 h O9 j1 M+ p* }+ N6 Z
<link rel=apple-touch-startup-image href=launch6.png media=(device-width: 375px)>
! k7 w+ {8 l$ B) `: ~+ x& W# I<link rel=apple-touch-startup-image href=launch6plus.png media=(device-width: 414px)>
/ t7 }; d$ p0 ^$ _* ^- V8 ^windows 8
$ i. \' A% {, Y$ P/ [( q1 Vwindows 8 磁贴颜色
5 M# [$ A* t* e( e0 @- x+ p代码如下:
- y" P6 v# M, \3 f<meta name=msapplication-tilecolor content=#000/> <!-- windows 8 磁贴颜色 -->
: l2 i$ E, F/ S' |# p* @7 W) B3 dwindows 8 磁贴图标1 R8 U; L4 D D8 n, s
代码如下:
1 {* K' f/ z C1 V) @. |$ n1 } A5 X<meta name=msapplication-tileimage content=icon.png/> <!-- windows 8 磁贴图标 -->
( p. k8 o! P8 C; N2 g# _! V. lrss订阅7 v$ @" Y. [8 o& B7 h/ Z$ {
代码如下:
/ \$ e9 D' G' N% D5 U: W R<link rel=alternate type=application/rss+xml title=rss href=/rss.xml /> <!-- 添加 rss 订阅 -->
b4 M' P2 w; |/ x' B# L- u+ I+ @favicon icon
2 V! v2 G7 t% S& h. ^! S/ {代码如下:
0 `+ w4 m6 `# e I2 Q; T<link rel=shortcut icon type=image/ico href=/favicon.ico /> <!-- 添加 favicon icon -->
4 ~0 V4 X) }% G. C3 e8 ]移动端的meta* T- c! ^6 n- T/ G* S
xml/html code复制内容到剪贴板& j4 U9 d/ a# c/ y
<meta name=viewport content=width=device-width, initial-scale=1, user-scalable=no />
@: I& v/ g( |<meta name=apple-mobile-web-app-capable content=yes />
/ u/ ?5 k' Y4 g# v0 F& `5 @<meta name=apple-mobile-web-app-status-bar-style content=black />9 @7 L5 O$ J1 W3 O* U. N z
<meta name=format-detectioncontent=telephone=no, email=no />1 v7 }, G5 \6 ?( `4 M$ U
<meta name=viewport content=width=device-width, initial-scale=1, user-scalable=no />
8 O( e: s& M, e& E7 K# @7 |3 l! G<meta name=apple-mobile-web-app-capable content=yes /><!-- 删除苹果默认的工具栏和菜单栏 -->: Z) {* o. t; v+ ?. x" ^4 j
<meta name=apple-mobile-web-app-status-bar-style content=black /><!-- 设置苹果工具栏颜色 -->
. V _7 s" ~' c<meta name=format-detection content=telphone=no, email=no /><!-- 忽略页面中的数字识别为电话,忽略email识别 -->
F, Z; N, R, u/ J' V* |( \<!-- 启用360浏览器的极速模式(webkit) -->; }* |( q( j* S. I( `
<meta name=renderer content=webkit>
' b+ d4 i+ ^' Y) F% ], V<!-- 避免ie使用兼容模式 -->
/ z( G8 D" o4 `- `$ Z7 ?+ {# y<meta http-equiv=x-ua-compatible content=ie=edge>7 u b/ m) q- w# J j6 v0 H
<!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->
; e5 i% h/ J* U1 o5 Y5 X<meta name=handheldfriendly content=true>
, @, n( ^, h9 ]9 R1 Y; _1 ]2 G<!-- 微软的老式浏览器 -->+ B3 V( q$ S: U1 [% }
<meta name=mobileoptimized content=320>
+ E- u0 z; i- {( a. M+ V<!-- uc强制竖屏 -->
$ i. \$ @+ ^3 }* h( s* H& K<meta name=screen-orientation content=portrait>
) a% d8 r9 b6 n/ D% b. X+ T<!-- qq强制竖屏 -->1 a1 O1 H8 o7 p' i: f+ |+ d0 W' [
<meta name=x5-orientation content=portrait>
; r7 }9 V" w+ |, h* R6 t) `1 Q<!-- uc强制全屏 -->7 X) S2 T+ X. \: C( I6 q: V
<meta name=full-screen content=yes>- f" I) |9 t5 m! v1 |7 W, z# \
<!-- qq强制全屏 -->
3 a/ e5 V; u0 d: k<meta name=x5-fullscreen content=true>
, Z" ]9 u! e4 H3 l+ i8 T<!-- uc应用模式 -->
/ M5 n2 l0 N. |9 v<meta name=browsermode content=application>
* m' }+ F8 K4 @: I0 o& K<!-- qq应用模式 -->1 x/ ?/ l T/ ?) R2 A
<meta name=x5-page-mode content=app>
% S9 }& h: g8 H" I5 o% a' X<!-- windows phone 点击无高光 -->
& P; ~/ j ~3 f( T+ R<meta name=msapplication-tap-highlight content=no>2 R9 `+ F6 _3 ^6 E
<!-- 适应移动端end -->
1 K: A" L, r7 N' _( ^% J0 o" j
1 T" E2 V6 W8 D: Y- k6 Z更多网页制作信息请查看: 网页制作 |
|