摘要:是文件的第一行代码,意味着它的前面有注释都不行。所以要要写在标签前面,而且它不属于标签。为了兼容以前的网站,所以产生了,浏览器会按照标准以前的简析方式去工作。但是他们在过期时间上有区别
[1: What does a doctype do?]
1: doctype是html文件的第一行代码,意味着它的前面有注释都不行。所以要要写在标签前面,而且它不属于html标签。 2: doctype的作用是告诉浏览器以哪种模式去渲染当前的这个html文件 3: doctype可能的取值有哪些?目前来说总共有8种: 1: HTML5 2: HTML 4.01 Scrict 3: HTML 4.01 Transitional 4: HTML 4.01 Frameset 5: XHTML 1.0 Strict 6: XHTML 1.0 Transitional 7: XHTML 1.0 Frameset 8: XHTML 1.1
那么以上不用的doctype之间的差别有哪些呢?我总结了一张表:
[2: What"s the difference between full standards mode, almost standards mode and quirks mode?]
1: 三者的差别
1: full standards mode
HTML和CSS的行为完全(几乎是完全)按照W3C制定的标准。
2: quirks mode
HTML和CSS的行为不按照W3C的标准,就跟在Netscape Navigator 4和Internet Explorer 5一样
3: almost standards mode
HTML和CSS的行为几乎按照W3C制定的标准,但是有极少部分的行为与quirks mode一样
2: 三种模式产生的历史原因
在W3C标准制定之前,就已经有很多网站跑在Netscape Navigator 和Internet Explorer上了,如果浏览器都按照W3C的标准去实现的话,以前的那些网站就会坏掉。为了兼容以前的网站,所以产生了quirks mode,浏览器会按照W3C标准以前的简析方式去工作。
3: 浏览器怎么知道按哪种模式去解析
浏览器根据doctype来确定处于哪种模式!引发不同模式的doctype在不同的浏览器下面会不一样。但是有一条相同的就是:没有doctype,在任何浏览器下面都会引发quirks模式。所以千万不要那样做,just don"t!
不同的浏览器的不同模式引发的原因可以参考:
https://hsivonen.fi/doctype/#...
3: What"s the difference between HTML and XHTML?
4: Are there any problems with serving pages as application/xhtml+xml?
5: How do you serve a page with content in multiple languages?
6: What kind of things must you be wary of when design or developing for multilingual sites?
7: What are data- attributes good for?
8: Consider HTML5 as an open web platform. What are the building blocks of HTML5?
9: Describe the difference between a cookie, sessionStorage and localStorage.
1: 先直观地感受一下三者的用法
1:cookie
//定义一个cookie document.cookie = "username=John Doe; expires=Thu, 18 Dec 2019 12:00:00 UTC; path=/"; //定义第二个cookie document.cookie = "age=16; expires=Thu, 18 Dec 2019 12:00:00 UTC; path=/"; //获取cookie document.cookie; //"username=John Doe; age=16"
cookie的定义和获取都是字符串,当定义了多个cookie的时候,document.cookie会把所有的cookie放在一个字符串里面返回,以分号分隔。
2: localStorage
//往localStorage里面创建第一个item localStorage.setItem("name", "rose"); //往localStorage里面创建第二个item localStorage.setItem("age", 15); //读取第一个item localStorage.getItem("name"); //"rose" //读取第二个item localStorage.getItem(""age); //15
3: sessionStorage
//往sessionStorage里面创建第一个item
sessionStorage.setItem("name", "rose"); //往localStorage里面创建第二个item sessionStorage.setItem("age", 15); //读取第一个item sessionStorage.getItem("name"); //"rose" //读取第二个item sessionStorage.getItem(""age); //15
从以上可以看出,localStorage和sessionStorage的用法是一样的。但是他们在过期时间上有区别:
10: Describe the difference between