1 .HTML标签头部< !DOCTYPE html> 的作用
DOCTYPE 使 document type的缩写,是html文档的类型声明,告诉浏览器文档的类型,便于解析文档。 这里会涉及到浏览器渲染页面的两种形式:
- CSS1 Compatible Mode(标准模式): 浏览器使用W3C的标准来解析页面。
- BackCompatible Mode(怪异模式): 浏览器使用自己的解析方式来解析页面,不同的浏览器在解析时会有差异。
当< !DOCTYPE html>不存在或者格式不正确时,浏览器就会以怪异模式来解析页面。
2.HTML语义化标签
1.常见的语义化标签:
header,main,footer,nav,section,article,aside,address,title等。
- 特点:
(1) . 结构清晰,增加了代码的可读性与可维护性
(2). 文字表现力丰富,可提升搜索引擎优化。
(3). 在没有CSS样式情况下也能呈现出较好的内容结构与代码结构
(4). 方便其他设备解析,如屏幕阅读器、盲人阅读器、移动设备等
3.meta标签
1.作用:
(1). 1meta标签主要用于描述一个网页文档的属性,例如文档的作者,网页描述,关键词,日期和时间,网页小图标等等
(2). 有利于搜索引擎优化
(3). 定义页面使用语言区,自动刷新指向个新页面等等
(4). 控制网页显示窗口
meta标签的属性:
(1). charset: 定义文档的字符编码格式
(2). name: 定义文档的元信息,如作者,日期等等
(3). content: 定义稳当元信息具体内容
(4). http-equiv: 定义与http协议相关的元信息,如缓存,重定向等
4.HTML5新特性
新增:
- 新增语义化标签
- 新增dom操作api:
js
document.querySelector()
document.querySelectorAll()
- 新增了多媒体标签video,audio
- 新增了webStorage本地存储
- 新增了地理位置api------Geolocation
- 新增了webSocket
- 新增了浏览其实对象history
- 新增了相关的拖拽api
- 新增了canvas svg等2D绘图api
- 增强了表单控件 url,date,datetime,email,range等
移除:
1.移除了纯表现元素font,big,center等
- 移除了frame,frameset等元素
5.src,href的区别
- src 属性是source的缩写,用于指定外部资源的位置,指向内容会嵌入到文档中标签所在的位置,在请求src资源时会将其下载并应用到文档中,如js脚本,img图片
当浏览器去解析到该元素时,会暂停浏览器得解析,编译和执行开始下载资源文件,当下载完资源并解析应用到文档后才会继续解析文档 - href属性是Hypertext Reference的缩写,用于指定网络资源所在链接地址,当浏览器关读取到该元素时,会建立当前文档与资源之间的链接,并行开始下载资源文件,不会停止当前文档的解析
6.行内元素与块级元素都有哪些
- 行内元素:元素宽度只有内容撑开,高,行高,padding,margin均可改变,与其他元素处于同一行
span,a,strong,em,i,b,img,input,label,select - 块级元素:元素默认占据一行,宽高等均可自定义设置
div,h1-h6,p,ul,li,ol,table,tr,td,th,form
转换:
行内转块级:display: block;
块级转行内:display: inline;
区别:
- 是否能占据一行
- 是否可以设置宽高
- 行内元素只能容纳行内元素或者文本,块级元素可以容纳其他任意元素
7.link 与@import的区别
-
从属区别:
@import时css提供的导入规则,只能导入css文件
link是html提供的导入标签,不止可以导入css,也可以导入其他类型的文件
-
加载顺序区别:
@import 导入会等到整个页面加载完毕之后在进行机载
link导入会和文档记载并行加载
-
兼容性区别:
@import 只能在ie5以上才能识别
link 不存在兼容性问题
-
dom可控性区别
可以通过js操作dom来控制link标签
@import 不可以通过js操作dom来控制
-
权重区别:
link样式权重高于@import权重
8.script标签的defer属性和async属性
1.html文档在解析过程中遇到script属性引入的js文件时会暂停文档的加载转而去下载js文件并解析,等解析完之后才会继续解析html文档,这会阻塞html的加载。defer,async这两个属性就是专门为了处理js脚本下载阻塞文档加载的。
defer 属性设置后,文档读取到script的会异步开始下载代码,不会阻塞文档加载,等到整个文档加载完毕之后,在开始执行js文件
async属性设置之后,文档解析到script标签时,会异步开始下载文件,等文件下载完毕之后会一步开始执行js代码,与文档流解析并行,不会阻塞文档加载,这个方式在引入多个文件时,我们无法得知具体哪个文件先执行,因为我们无法确定哪个文件先下载完成。
9.为什么要清楚默认css样式?
1.因为对于浏览器来说,有部分属性会存在默认值,而且这个默认值在不同的浏览器中可能不同,因此为了去除在不同浏览器中的成差异,提高代码的兼容性,我们需要去除css的默认样式。
2.在开发中,我们往往需要对网页元素进行个性化样式设置,但浏览器对于一些元素会有默认样式,这些样式可能在一定程度上影响我们后续的编码开发,所以为了统一性,我们通常需要在开发之前讲网站默认css样式去除,更利于在网站中进行个性化设置。
10.HTML页面中, id和class有什么区别
- 在html中,id属性与class属性都可以用来定义标签css样式,但同一个id属性只能由本页面中唯一一个元素使用,而class属性则没有限制。
- css中,id选择器需要在id值铅加上#号,class选择器需要在值前面加上.号
- css中id的权重高于class,两者要是有同样的属性,id会层叠class的属性
- id一般用于页面布局,同时其主要是定义页面布局与内容,而class主要用于样式修饰,一般先定义好样式,在使用的时直接调用
- id常用于页面布局,class常用于页面样式文字修饰