1. <!DOCTYPE>作用?标准模式与兼容模式各有什么区别?
告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现;标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
2.HTML5为什么只需要写<!DOCTYPE HTML>?
- HTML5不基于SGML(标准通用标记语言),因此不需要对DTD进行引用,但需要doctype来规范浏览器行为(让浏览器按照它们应该的方式来运行);而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。
- DTD:文档类型定义(Document Type Definition)是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。
3.行内元素有哪些?块级元素有哪些?空(void)元素有哪些?
CSS规定,每个元素都有dosplay属性,确定该元素的类型,每个元素都有默认的display值,如div的display默认值为block,则为块级元素;span默认display值为inline,是行内元素。
- 行内元素特征:
(1)设置宽高无效;
(2)对margin仅设置左右方向有效,上下无效;padding设置上下左右都有效,即会撑大空间;
(3)不会自动进行换行。
- 块状元素特征:
(1)能够识别宽高;
(2)margin和padding的上下左右均对其有效;
(3)可以自动换行;
(4)多个块状元素标签写在一起,默认排列方式为从上至下。
- 行内元素有:a b span img input selectstrong
- 块级元素:div ul ol li dl dt dd h1h2 h3 h3…p
- 常见的空元素:br hr img input linkmeta
- 鲜为人知的空元素是:area base col command embed keygen param sourcetrack wbr
4. 页面导入样式时,使用link和@import有什么区别?
- link属于XHTML标签,除了加载CSS外,还能定义RSS,定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;
- 页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
- import是CSS2.1提出的,只有IE6以上才能被识别,而link是XHTML标签,无兼容问题;
- link支持使用js控制DOM去改变样式,而@import不支持;