标签:
1)众所周知,DOCTYPE是Document Type(文档类型)的简写,在页面中,用来指定页面所使用的XHTML(或者HTML)的版本。要想制作符合标准的页面,一个必不可少的关键组成部分就是DOCTYPE声明,它并不是HTML标签,而是一条指令,告诉浏览器编写页面所用的标记的版本,但是解析的时候是根据“可以显示尽量显示,可以解析尽量解析”;但在html文件中,经过试验可以知道,当我们使用html4的doctype去写html5时一般还是可以正常显示网页(可以使用html5标签),当我们不写doctype时,一般也可以正常显示网页,那么我们为什么要写这个语句呢?
首先我们要明白为什么 html4之前会有一个DTD的(也就是在doctype中的长串字符),而在HTML5中就没有,这是因为HTML4这些文档需要显示引用DTD(Document Type Definition,是一套关于标记符的语法规则,是文档的验证机制),而在HTML5中简化了这种声明,其doctype声明会告诉浏览器使用统一的标准。那么到这里也许你就明白了,doctype是用于指定验证器的标准的,为何我们需要验证版本呢?原因在于:在文档类型定义正是让标准通用标记语言、可扩展标记语言文件能成为数据交换标准,因为不同的公司只需定义好标准文档类型定义,各公司都能依文档类型定义建立文档实例,并且进行验证,如此就可以轻易的建立标准和交换数据,这样满足了网络共享和数据交互。
这是一个验证html文档标准的网站:https://validator.w3.org/
2)如果html文档中有错误的标签,如<aa></aa>浏览器会如何处理?
首先因为html是一个可自定义标签的,所以浏览器解析器会将其视为我们自定义的新标签,所以它是支持基本的属性(class, id, name等),这个可以通过写一个html文档测试,为<aa>写上id属性,并为其写上css。所以html解析器的容错是相当强的;至于如何去新定义标签可以参考(http://www.html5rocks.com/zh/tutorials/webcomponents/customelements/)
3)iframe标签有在什么时候使用,为什么要尽量减少使用?
a)iframe常用来加载第三方的内容,广告或是插件,因为它以和页面并行加载,不会阻塞主页面;b)当你不希望搜索引擎看到页面上的一部分内容时,可以使用iframe, 将另一个URL上的内容嵌入到选择的页面中,然后通过robots.txt文件阻止蜘蛛访问iframe,这就确保了搜索引擎不会看到页面的这部分内容; c)早期的时候,用iframe来做为导航栏,主要是因为一个网站很多页面的导航栏部分是相同的,在避免切换页面的时候重复下载,同时也为了起到代码复用的目的,可以将正文和导航栏分开;e)总的说,iframe等于一个全新的,不受parent的CSS或是全局的Javascript影响的页面上下文,是一个独立的区域.
坏处:iframe的样式和脚本需要额外引入,会增加请求;iframe如果用在首页的话,搜索引擎是找不到的,那么就排不到好名次;框架结构容易让人感觉迷惑;iframe的创建比其他包括scripts和css的DOM元素创建要慢1-2个数量级;会影响主页面的onload事件,因为window的onload事件需要在所有iframe加载完毕后才可触发,此时才会告知用户网页加载完毕,以及iframe与主页面共享了连接池,有时会阻塞主页面的加载(参考:http://gongxquan.blog.163.com/blog/static/2108462532012111643039216)
所以可以不用iframe就不用,替代的方案是动态语言的include机制,ajax动态填充内容,以及contentEditable属性(用于启动编辑属性)
标签:
原文地址:http://www.cnblogs.com/kinthon/p/4843151.html