html head 头部分的标签、元素有很多,涉及到浏览器对网页的渲染,seo 等等,而各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,这就造成了很多差异性。移动互联网时代,head 头部结构,移动端的 meta 元素,显得更为重要。了解每个标签的意义,写出满足自己需求的 head 头标签,是本文的目的。本篇以一丝的文章为基础,进行扩展总结介绍常用的 head 中各个标签、元素的意义以及使用场景。
3 j/ L5 ^( S3 g) pdoctype
3 i: Y' r6 [& |7 v k- T8 \; \doctype(document type),该声明位于文档中最前面的位置,处于 html 标签之前,此标签告知浏览器文档使用哪种 html 或者 xhtml 规范。
0 x2 R$ R& T9 y1 }/ j; zdtd(document type definition) 声明以 <!doctype> 开始,不区分大小写,前面没有任何内容,如果有其他内容(空格除外)会使浏览器在 ie 下开启怪异模式(quirks mode)渲染网页。公共 dtd,名称格式为注册//组织//类型 标签//语言,注册指组织是否由国际标准化组织(iso)注册,+表示是,-表示不是。组织即组织名称,如:w3c。类型一般是 dtd。标签是指定公开文本描述,即对所引用的公开文本的唯一描述性名称,后面可附带版本号。最后语言是 dtd 语言的 iso 639 语言标识符,如:en 表示英文,zh 表示中文。xhtml 1.0 可声明三种 dtd 类型。分别表示严格版本,过渡版本,以及基于框架的 html 文档。
% a/ c, \3 R k! O$ E& T●html 4.01 strict9 o, I* w/ \( x2 ~- z+ R
xml/html code复制内容到剪贴板4 z: ?& i+ E7 a4 B f% J
<!doctype html public -//w3c//dtd html 4.01//en >- H+ r: x) x, C0 }# Q' k
●html 4.01 transitional
% w0 w. }. B( o5 Z7 P0 rxml/html code复制内容到剪贴板
6 E6 _! f& [$ [# G+ Q5 \<!doctype html public -//w3c//dtd html 4.01 transitional//en >
3 s) f% N' H0 ^- ?5 | o# o●html 4.01 frameset2 z8 ?6 X$ r) H O
xml/html code复制内容到剪贴板
0 k+ ~; b% f( d0 s<!doctype html public -//w3c//dtd html 4.01 frameset//en >
7 b+ |- P4 ^2 s7 f; h. Y●最新 html5 推出更加简洁的书写,它向前向后兼容,推荐使用。( v- G- L2 M+ p/ P- o5 r+ Z
xml/html code复制内容到剪贴板
3 p, P. f* ^ t8 B2 q# {<!doctype html>3 K' q- D9 {, I/ g7 L
在 html中 doctype 有两个主要目的。$ \1 ~5 U" ~' U1 `* w' L( z
●对文档进行有效性验证。
9 g B& ?% y4 G4 O$ l( F它告诉用户代理和校验器这个文档是按照什么 dtd 写的。这个动作是被动的,每次页面加载时,浏览器并不会下载 dtd 并检查合法性,只有当手动校验页面时才启用。# a4 i9 ^' O) n- ]6 s" l5 }
●决定浏览器的呈现模式
f8 B+ j8 R; J对于实际操作,通知浏览器读取文档时用哪种解析算法。如果没有写,则浏览器则根据自身的规则对代码进行解析,可能会严重影响 html 排版布局。浏览器有三种方式解析 html 文档。" u! c3 b9 i7 v
●非怪异(标准)模式/ _) t( n6 b* d0 _ w0 s& c
●怪异模式( ~0 Y8 P' T! Q& C) R& C
●部分怪异(近乎标准)模式 关于ie浏览器的文档模式,浏览器模式,严格模式,怪异模式,doctype 标签,可详细阅读模式?标准!的内容。
7 l% z% p) d9 _) y5 Z' t" Pcharset
8 ~9 C' X7 B3 h, s声明文档使用的字符编码,+ `. r* \( Q1 Q6 A" V. E$ D( j
xml/html code复制内容到剪贴板
! U& ?0 h; \+ I# q<meta charset=utf-8>8 V8 l ?2 G& m) v
html5 之前网页中会这样写:
, Q% A" {, H; p4 F# Fxml/html code复制内容到剪贴板 Q! Z. [8 G1 j" l, u, `
<meta http-equiv=content-type content=text/html; charset=utf-8>
: t/ m/ Y4 W0 ~! Jlang属性
: B- k1 a6 S \. _ V简体中文
- a( N/ `0 n/ }% yxml/html code复制内容到剪贴板& A F( J! ?4 _% X+ t. Y S! ]/ f1 z* M
<html lang=zh-cmn-hans>
) y1 ]# O$ t6 m# E; R+ r, ^繁体中文
+ B5 c2 W X6 e9 X2 rxml/html code复制内容到剪贴板
, X! m5 ]. e7 n) ]<html lang=zh-cmn-hant>8 B B2 ]+ a# a+ N) {/ R7 ]
为什么 lang=zh-cmn-hans 而不是我们通常写的 lang=zh-cn 呢
0 U" @, P8 @- o) c- p" R! y3 y优先使用 ie 最新版本和 chrome
- f2 t0 B$ B9 dxml/html code复制内容到剪贴板0 k" S4 ?; x8 A+ }- o4 u
<meta http-equiv=x-ua-compatible content=ie=edge,chrome=1 />
* U2 T, w3 Z; Y360 使用google chrome frame
7 h+ Z1 K: E8 cxml/html code复制内容到剪贴板; G! Q3 C8 K9 _! Y3 w8 Z
<meta name=renderer content=webkit>
N$ Y1 R) Y1 y# Y360 浏览器就会在读取到这个标签后,立即切换对应的极速核。 另外为了保险起见再加入 I. u& L# o- @) F) O; C' S3 x( p; l
xml/html code复制内容到剪贴板( x4 @+ z: z6 @( G" Q6 B) H4 g
<meta http-equiv=x-ua-compatible content=ie=edge,chrome=1>- Y9 d, F2 y9 R- X6 i7 w
这样写可以达到的效果是如果安装了 google chrome frame,则使用 gcf 来渲染页面,如果没有安装 gcf,则使用最高版本的 ie 内核进行渲染。) c1 G3 P4 n- i* f7 j- M
! U5 i$ r; Z2 u) h+ K1 \1 Z
百度禁止转码( O% a& \ l1 ^# v# p. O
通过百度手机打开网页时,百度可能会对你的网页进行转码,脱下你的衣服,往你的身上贴狗皮膏药的广告,为此可在 head 内添加
: T, c+ C! c6 i. J7 W5 H3 ^$ ]xml/html code复制内容到剪贴板. b" J. F3 q5 |
<meta http-equiv=cache-control content=no-siteapp />* x0 w/ U9 f" t/ Y3 G5 v3 J
1 |* }7 a5 W5 L7 p' m9 g6 T9 B
seo 优化部分; T# Y8 `3 D* y0 h0 G* S" U
页面标题<title>标签(head 头部必须)& h& j. s3 t# N
xml/html code复制内容到剪贴板
; g: d% s8 |0 f% c) u* [+ k<title>your title</title> J- L6 ~% F( Q' \
页面关键词 keywords! T% B+ F/ C2 H4 n E+ p
xml/html code复制内容到剪贴板
I9 ]' Y* F) o7 n0 ]& W0 `6 p1 t- ~8 N<meta name=keywords content=your keywords>
' x. p% l. [+ D) J$ y页面描述内容 description
8 h# T( _! j. bxml/html code复制内容到剪贴板( n. Z1 }" @$ B9 `# Z8 O
<meta name=description content=your description>
: u( R$ i0 y0 c! \) {. l: P& M定义网页作者 author
6 \% t; _& J" E2 o1 j! qxml/html code复制内容到剪贴板
( k& y% W( q. S<meta name=author content=author,email address>
% }8 L/ ?% O( d# p; E: z6 [: ~定义网页搜索引擎索引方式,robotterms 是一组使用英文逗号「,」分割的值,通常有如下几种取值:none,noindex,nofollow,all,index和follow。
5 T3 q' N7 }3 {$ A6 Y Cxml/html code复制内容到剪贴板
% i4 W0 f& c# q<meta name=robots content=index,follow>2 A& B0 C$ Y# q' R' x
viewport o4 M8 L3 Q8 S/ x3 F$ B
viewport 可以让布局在移动浏览器上显示的更好。 通常会写) H8 \8 B/ Y3 v# d
xml/html code复制内容到剪贴板
' Q* w; i& l9 C3 u8 W# S5 V! t+ K<meta name=viewport content=width=device-width, initial-scale=1.0>4 b% a3 ]' x( f0 d6 I
width=device-width 会导致 iphone 5 添加到主屏后以 webapp 全屏模式打开页面时出现黑边' B/ y: A- ?$ q) F% r
content 参数:& E9 }1 I4 K# v( {! ^ x
width viewport 宽度(数值/device-width)
& @3 v \2 x. a; iheight viewport 高度(数值/device-height)0 {% S* V, l2 Z/ v& x" L% y6 s
initial-scale 初始缩放比例1 Q5 x) j2 B) O5 ?7 F" a7 S
maximum-scale 最大缩放比例
2 x7 p% o$ `. _/ Sminimum-scale 最小缩放比例
8 M7 n6 L& N' ]user-scalable 是否允许用户缩放(yes/no)) w, D& H7 ^9 f6 ~5 v, z% l# x
minimal-ui ios 7.1 beta 2 中新增属性,可以在页面加载时最小化上下状态栏。这是一个布尔值,可以直接这样写:9 C2 C$ \) ]! B- u- F
xml/html code复制内容到剪贴板
$ O2 K. |8 s! q% b! f( J( ]: N3 ~; ^<meta name=viewport content=width=device-width, initial-scale=1, minimal-ui>+ e" {/ V: ]0 D2 F& _2 K# h1 p
而如果你的网站不是响应式的,请不要使用 initial-scale 或者禁用缩放。
9 X; m! G) t8 C' Uxml/html code复制内容到剪贴板 |* I: b0 l5 I7 I5 N. m- s( Y$ Z
<meta name=viewport content=width=device-width,user-scalable=yes>
) p! I3 @$ D3 ?' _$ R适配 iphone 6 和 iphone 6plus 则需要写:
; e9 n+ _( }9 ]. yxml/html code复制内容到剪贴板
. {& k8 ^$ p, _" M$ e1 D<meta name=viewport content=width=375> A+ Q4 j; H, B! [
<meta name=viewport content=width=414>9 m! n4 L) g. |# w; D, i2 {: x" s
大部分 4.7~5 寸的安卓设备的 viewport 宽设为 360px,iphone 6 上却是 375px,大部分 5.5 寸安卓机器(比如说三星 note)的 viewport 宽为 400,iphone 6 plus 上是 414px。
! B# L4 y9 n- {' Z/ A1 ^ios 设备
" M4 B, m8 F, } h添加到主屏后的标题(ios 6 新增)1 z7 l* N% _. A8 z" ^. N
xml/html code复制内容到剪贴板
( t, F1 v0 f, V8 d- D0 H<meta name=apple-mobile-web-app-title content=标题> <!-- 添加到主屏后的标题(ios 6 新增) -->
# t0 V: P6 L, R, h是否启用 webapp 全屏模式4 R! m4 T, \, S! W9 X4 `. p
xml/html code复制内容到剪贴板
# Y G; A0 w6 x# e* L<meta name=apple-mobile-web-app-capable content=yes /> <!-- 是否启用 webapp 全屏模式 -->8 ]/ O6 d2 k$ H; I* d) D7 \
设置状态栏的背景颜色
, W2 c+ ?1 U9 t; ~; ]1 xxml/html code复制内容到剪贴板
& d, A; F) m+ c<meta name=apple-mobile-web-app-status-bar-style content=black-translucent />! P. @' \4 ~) l' F. t
<!-- 设置状态栏的背景颜色,只有在 `apple-mobile-web-app-capable content=yes` 时生效 -->! z% U* i4 w% u7 q4 |- L
只有在 apple-mobile-web-app-capable content=yes 时生效0 L4 n: P: u4 v0 F: q! Z9 K
content 参数:
) s2 G$ N. g! u Y+ [3 Idefault 默认值。
8 v7 g0 a. s! q3 s; M! G Oblack 状态栏背景是黑色。0 m; N# a& ^- i N% M2 v r9 {
black-translucent 状态栏背景是黑色半透明。 如果设置为 default 或 black ,网页内容从状态栏底部开始。 如果设置为 black-translucent ,网页内容充满整个屏幕,顶部会被状态栏遮挡。
# z# s T! w. \1 A( [. U; k1 ^禁止数字识自动别为电话号码/ H& x' v9 B+ J+ r3 q. a" p
xml/html code复制内容到剪贴板
4 e, q& D2 l% F E<meta name=format-detection content=telephone=no /> <!-- 禁止数字识自动别为电话号码 -->+ ~) V" f4 L1 h% [, g
ios 图标
, X( m- _$ V( C; z8 {. `rel 参数: apple-touch-icon 图片自动处理成圆角和高光等效果。 apple-touch-icon-precomposed 禁止系统自动添加效果,直接显示设计原图。 iphone 和 itouch,默认 57x57 像素,必须有, B6 S- }4 l6 Y1 G" _: o
代码如下:
/ h/ K0 q' c- U ?; Z9 q<link rel=apple-touch-icon-precomposed href=/apple-touch-icon-57x57-precomposed.png /> <!-- iphone 和 itouch,默认 57x57 像素,必须有 -->
% V# I/ [+ e) W. ?& |; o& ripad,72x72 像素,可以没有,但推荐有 X* F# p# u5 y0 o9 p: b
代码如下:4 P/ g0 H: Y! o) P- E$ a/ J
<link rel=apple-touch-icon-precomposed sizes=72x72 href=/apple-touch-icon-72x72-precomposed.png /> <!-- ipad,72x72 像素,可以没有,但推荐有 -->! {& O* I/ v3 R
retina iphone 和 retina itouch,114x114 像素,可以没有,但推荐有( q3 D7 O5 T# p/ z2 s
代码如下:
! W9 A, Y T9 I( N8 m<link rel=apple-touch-icon-precomposed sizes=114x114 href=/apple-touch-icon-114x114-precomposed.png /> <!-- retina iphone 和 retina itouch,114x114 像素,可以没有,但推荐有 -->
, B/ [, D; V4 u/ T' B3 C, Aretina ipad,144x144 像素,可以没有,但推荐有& T; \' U& A. w- C6 H- S
代码如下:& i. ]% _4 z8 Y9 i( b% A) {
<link rel=apple-touch-icon-precomposed sizes=144x144 href=/apple-touch-icon-144x144-precomposed.png /> <!-- retina ipad,144x144 像素,可以没有,但推荐有 -->
6 G0 c, z" S& ~5 I+ s" W5 C vios 图标大小在iphone 6 plus上是180×180,iphone 6 是120x120。 适配iphone 6 plus,则需要在中加上这段: J( p4 @3 I7 Z# v
代码如下:
; i+ X7 _0 c8 A<link rel=apple-touch-icon-precomposed sizes=180x180 href=retinahd_icon.png>
: P% v: I4 L" T3 aios 启动画面; Q! H+ }: ]' ~* [$ `
ipad 的启动画面是不包括状态栏区域的。! e4 e4 ~9 R" t* a/ d% c# {$ W8 m: `" R
ipad 竖屏 768 x 1004(标准分辨率)
( d* n" k% `3 |6 |+ I- e$ i" ?* x& i* _代码如下:
$ i9 Z3 I" q7 S7 q2 E<link rel=apple-touch-startup-image sizes=768x1004 href=/splash-screen-768x1004.png /> <!-- ipad 竖屏 768 x 1004(标准分辨率) -->
3 Z% ^' R7 g D+ ?+ Eipad 竖屏 1536x2008(retina)
; n% D! e6 ?$ h, V" O代码如下:
4 @. h9 n3 `$ T, Y( d<link rel=apple-touch-startup-image sizes=1536x2008 href=/splash-screen-1536x2008.png /> <!-- ipad 竖屏 1536x2008(retina) -->: T X. V- [( ^! n8 [! A
ipad 横屏 1024x748(标准分辨率)
7 E' G! z- O4 A, t& ~7 c9 x代码如下:
4 ^/ f7 l0 Y3 Q% p/ Z. H7 f<link rel=apple-touch-startup-image sizes=1024x748 href=/default-portrait-1024x748.png /> <!-- ipad 横屏 1024x748(标准分辨率) -->
4 y+ p5 e% ^- ?" ?ipad 横屏 2048x1496(retina)6 O+ l! d5 ], I2 ~, ?% h7 d
代码如下:
0 U: g d& q( ]* k9 `4 l<link rel=apple-touch-startup-image sizes=2048x1496 href=/splash-screen-2048x1496.png /> <!-- ipad 横屏 2048x1496(retina) -->
. u6 C q' Q- G! Uiphone 和 ipod touch 的启动画面是包含状态栏区域的。5 b+ y7 p% T: v: O5 D
iphone/ipod touch 竖屏 320x480 (标准分辨率)1 K! `( j: n3 ^
代码如下:
/ e( B$ V$ s" j/ {; u5 }# H<link rel=apple-touch-startup-image href=/splash-screen-320x480.png /> <!-- iphone/ipod touch 竖屏 320x480 (标准分辨率) -->
% S y u8 y7 |iphone/ipod touch 竖屏 640x960 (retina)( {) V4 o& X0 i; c
代码如下:* B, N: Z- Q: _* m6 S P5 o( V
<link rel=apple-touch-startup-image sizes=640x960 href=/splash-screen-640x960.png /> <!-- iphone/ipod touch 竖屏 640x960 (retina) -->$ F: }- e/ [) l* Q; f$ w
iphone 5/ipod touch 5 竖屏 640x1136 (retina)" ^2 U8 \/ s9 j
代码如下:
% Y$ ^1 t% E2 z<link rel=apple-touch-startup-image sizes=640x1136 href=/splash-screen-640x1136.png /> <!-- iphone 5/ipod touch 5 竖屏 640x1136 (retina) -->8 d$ h" \1 m7 V% @, y
添加智能 app 广告条 smart app banner(ios 6+ safari)/ ?1 [6 X z# H8 _" p3 \+ v# F5 t
代码如下:' j$ ^! i }2 g1 h, Z2 V
<meta name=apple-itunes-app content=app-id=myappstoreid, affiliate-data=myaffiliatedata, app-argument=myurl> <!-- 添加智能 app 广告条 smart app banner(ios 6+ safari) -->
) D9 x9 P) X; g/ u6 C% G ^0 Giphone 6对应的图片大小是750×1294,iphone 6 plus 对应的是1242×2148 。$ e3 j1 s2 |) `% p! X/ H% q3 r
代码如下:
; x+ s k& i- s2 |6 s- s7 E3 I<link rel=apple-touch-startup-image href=launch6.png media=(device-width: 375px)>& f0 H" V/ G! d+ b1 S- D2 X
<link rel=apple-touch-startup-image href=launch6plus.png media=(device-width: 414px)>
; w! A. F" M8 {8 B2 H5 fwindows 88 ?7 i, R2 A2 @ j T I6 v' `+ x
windows 8 磁贴颜色
2 k- z& ]& Y# `% C6 A9 O- J) A! ~0 V" w代码如下:
% q5 l) d, @( r! g6 x<meta name=msapplication-tilecolor content=#000/> <!-- windows 8 磁贴颜色 --># ]9 D2 X' U. n1 F0 W
windows 8 磁贴图标
0 C3 D: e: y- [" x代码如下:- c5 ~/ C5 g$ _: I8 i8 D/ @( F& O+ v3 C
<meta name=msapplication-tileimage content=icon.png/> <!-- windows 8 磁贴图标 -->+ y9 R: U% `0 w# q3 P
rss订阅
7 r$ `% k- R4 S7 p( b代码如下:
. S( B! S9 S; C2 U<link rel=alternate type=application/rss+xml title=rss href=/rss.xml /> <!-- 添加 rss 订阅 -->
2 m5 t4 _- [+ j3 B7 M8 ?/ Vfavicon icon- _- p6 Y5 L! o& u
代码如下: O9 k3 \% c6 A) Q
<link rel=shortcut icon type=image/ico href=/favicon.ico /> <!-- 添加 favicon icon -->
9 v! O0 N4 {6 A0 ~& ~" ~$ T移动端的meta
- L: E: X. }5 [7 ixml/html code复制内容到剪贴板0 ^& ?8 F% s* t! ?- Q
<meta name=viewport content=width=device-width, initial-scale=1, user-scalable=no />
! T$ L! t8 r; h6 ]+ V* G: d @% |<meta name=apple-mobile-web-app-capable content=yes />
! L' q% }2 z8 x9 w<meta name=apple-mobile-web-app-status-bar-style content=black />/ T) i: [5 S0 `" }6 V9 A3 a0 F( m
<meta name=format-detectioncontent=telephone=no, email=no />" k- ?' @ A; Y; z$ F3 e- }
<meta name=viewport content=width=device-width, initial-scale=1, user-scalable=no />. z. ~" C+ p5 w3 N1 {* Z
<meta name=apple-mobile-web-app-capable content=yes /><!-- 删除苹果默认的工具栏和菜单栏 -->9 F5 d# L/ B; u: U# _+ _' k F1 s
<meta name=apple-mobile-web-app-status-bar-style content=black /><!-- 设置苹果工具栏颜色 -->
) p. M% z1 g( Z5 [! _<meta name=format-detection content=telphone=no, email=no /><!-- 忽略页面中的数字识别为电话,忽略email识别 -->/ ~6 ~1 S3 K& s2 q4 t
<!-- 启用360浏览器的极速模式(webkit) -->& Z0 [) y+ |5 n; V ^9 p+ G
<meta name=renderer content=webkit>$ `1 m' W+ l6 j0 K N1 d( w
<!-- 避免ie使用兼容模式 -->: o- r5 c( z7 u8 b4 U/ L8 ~" d
<meta http-equiv=x-ua-compatible content=ie=edge>- b' k& ?7 a; A+ I* j0 E) X2 c5 E
<!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 -->9 I) X& [. y. m; L n- K
<meta name=handheldfriendly content=true>/ P6 Z2 r3 j( G* c# {; l
<!-- 微软的老式浏览器 -->
% K5 ]) w& O9 I<meta name=mobileoptimized content=320>
0 z, X% e8 ~ A/ @& O# N+ \<!-- uc强制竖屏 -->
9 i$ }+ x6 S/ }5 M7 X<meta name=screen-orientation content=portrait>9 t2 Y# m6 X5 m/ T- P
<!-- qq强制竖屏 -->
O, j6 C2 U/ [<meta name=x5-orientation content=portrait>
7 [* e1 y" V( N+ A' Y<!-- uc强制全屏 -->
3 V$ G! p6 s! p' O& o8 W<meta name=full-screen content=yes>
8 m, `( {" E5 K0 }<!-- qq强制全屏 -->
! r4 ]& n4 P% Z" A) R<meta name=x5-fullscreen content=true>! A& J, g+ z/ z; t. F! Z5 T. U6 U9 d
<!-- uc应用模式 -->+ n3 I3 e+ y( h% D' J
<meta name=browsermode content=application>
3 D0 Z# C O& D6 W6 v8 ~<!-- qq应用模式 -->
% b5 H1 l I+ C& c<meta name=x5-page-mode content=app>
$ ?" b$ O8 C0 J$ c- K<!-- windows phone 点击无高光 -->
9 |& S6 W- p6 u" C: V<meta name=msapplication-tap-highlight content=no>* |# i. R5 y5 ?! I* c7 X
<!-- 适应移动端end -->
& A5 G# }, Q1 e9 [4 ` x6 e/ Y+ ?) g* z; O( m/ _
更多网页制作信息请查看: 网页制作 |
|