HTML <!DOCTYPE> 标签

搞过前端的人,都知道写html要加上<!DOCTYPE>声明。我对HTML <!DOCTYPE> 这个标签,真是天天见,天天视而不见。这个标签到底是干嘛用的?我还真说不出来。今天我搜集结合网上的资料总结了一下。
<!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。大多数浏览器都支持两种模式:怪异模式和标准模式。如果未声明<!DOCTYPE>,浏览器在渲染页面的时候会使用怪异模式;各个浏览器在怪异模式下对各个元素渲染是有差异的。使用doctype,浏览器就会在标准模式下渲染。(IE6以下版本,声明doctype也工作在怪异模式下。)
HTML 4规定了三种文档类型:Strict、Transitional 以及 Frameset。写法分别是:
1.Strict:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2.Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3.Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Strict DTD 用于和层叠样式表CSS配合使用。如果您需要干净的标记,免于表现层的混乱,请使用此类型。[color=red]这里千万注意,如果你的CSS里面用了 margin:0 auto;使元素居中,必须使用此类型。[/color]
Transitional DTD 可包含 W3C 所期望移入样式表的呈现属性和元素。如果您的读者使用了不支持层叠样式表(CSS)的浏览器以至于您不得不使用 HTML 的呈现特性时,请使用此类型。
Frameset DTD 应当被用于带有框架的文档。除 frameset 元素取代了 body 元素之外,Frameset DTD 等同于 Transitional DTD。

XHTML 1.0 也规定了三种 XML 文档类型。 分别是Strict、Transitional 和 Frameset。具体写法如下:
1.Strict:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2.Transitional
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
3.Frameset
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
这三种写法的区别跟HTML4.0的三种写法基本相同。

HTML5的写法如下:
<!DOCTYPE html>

<!DOCTYPE html>这种写法现代的浏览器基本都支持,而且简洁明了。
我一直以为只写<!DOCTYPE html> 不指定dtd将会开启浏览器的怪异模式,这是错误的。我在IE8和FF下测试,只些<!DOCTYPE html>,不指定DTD,不进入怪异模式。IE其他版本手上没有,没有测试。也不能排除在布局的时候出现什么问题。反正现在的工具都很方便,这个东西也不用手输入。在Dreamweaver中,新建HTML的时候,可以选择文档类型。所以就不要偷懒了。[img]http://dl.iteye.com/upload/attachment/543530/f016f636-5712-3419-8d2f-8fc8c965030b.jpg[/img]


用Javascript可以取得浏览器是工作在标准模式还是怪异模式下。
mode=document.compatMode;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值