DOCTYPE什么作用
DocType是html的文档声明,通过它可以告诉浏览器,使用哪一个html版本标准解析文档。
html语义化理解
正确的标签做正确的事,给某块内容用上一个最恰当最合适的标签,使页面有良好的结构,页面元素有含义,无论是谁都能看懂这块内容是什么。 语义化的优点:
- 在没有css的情况下,也能使页面呈现出清晰的结构
- 有利于SEO,
- 方便团队开发和维护
常见的语义化标签:
- header,footer,nav,section,main,article,aside
src和href的区别
两者都可以用来引入外部的资源。两者区别如下:
- src:通常用于img,video,audio,script等元素,通过src指向外部资源的来源地址,指向的内容会嵌入到文档中当前标签所在位置,在请求src资源时,它会将资源下载并应用到文档内,比如说:js脚本、img图片、frame等元素。当浏览器解析到该元素时,会暂停其它资源下载,直到将该资源加载、编译、执行完毕。这也是为什么将js脚本放在底部而不是头部的原因。
- href:并行下载,不会停止对当前文件的解析。通常用于link,a元素。
title与h1的区别,b和strong的区别,i和em的区别?
- title属性表示网页的标题,h1元素则表示层次明确的页面内容标题,对页面信息的抓取也有很大的影响
- strong是标明重点内容,有语气加强的含义;而b表示强调内容
- i 是italic(斜体)的简写,是早期的斜体元素,表示内容展示为斜体而 em 是emphasize(强调)的简写,表示强调的文本
iframe的作用以及优缺点
iframe也称作嵌入式框架,嵌入式框架和框架网页类似,它可以把一个网页的框架和内容嵌入到现有的网页中。
优点:
- 可以用来处理加载缓慢的内容,比如:广告 缺点:
- iframe会阻塞主页面的Onload事件
- iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。但是可以通过JS动态给ifame添加src属性值来解决这个问题,当然也可以解决iframe会阻塞主页面的Onload事件的问题
- 会产生很多页面,不易管理
- 浏览器的后退按钮没有作用
- 无法被一些搜索引擎识别
img上title与alt
- alt:全称alternate,切换的意思,如果无法显示图像,浏览器将显示alt指定的内容
- title:当鼠标移动到元素上时显示title的内容
区别: 一般当鼠标滑到元素身上时候显示title,而alt是img标签特有的属性,是图片内容的等价描述,用于图片无法加载时的显示,这样用户还能看到关于丢失了什么东西的一些信息,相对来说比较友好。
行内元素和块级元素分别有哪些?有何区别?怎么样转换?
常见的块级元素:p,div,form,ol,li,h1,h2,h3,h4,h5,table 常见的行级元素:span,a,img,button,input,select
块级元素:
- 总是在新行上开始,就是每个块级元素独占一行,默认从上到下排列
- 宽度缺少时是它的容器的100%,除非设置一个宽度
- 高度、行高以及外边距和内边距都是可以设置的
- 块级元素可以容纳其它行级元素和块级元素
行内元素:
- 和其它元素都会在一行显示
- 高、行高以及外边距和内边距可以设置
- 宽度就是文字或者图片的宽度,不能改变
- 行级元素只能容纳文本或者其它行内元素
使用行内元素需要注意的是:
- 行内元素设置宽度width无效
- 行内元素设置height无效,但是可以通过line-height来设置
- 设置margin只有左右有效,上下无效
- 设置padding只有左右有效,上下无效
可以通过设置display属性对行内元素和块级元素进行切换
- block:此元素将显示为块级元素,此元素前后会带有换行符
- inline:默认。此元素会被显示为内联元素,元素前后没有换行符
- inline-block:行内块元素。
HTML5新增了哪些新特性?移除了哪些元素?
HTML5主要是关于图像、位置、存储、多任务等功能的增加:
- 语义化标签,如article,footer,header,nav等
- 视频video,音频video
- 画布canvas
- 表单控件、date,time,email
- 地理
- 本地离线存储,localStorage长期存储数据,浏览器关闭后数据不丢失,sessionStorage的数据在浏览器关闭后自动删除
- 拖拽释放
移除的元素:
- 纯表现的元素:basefont,font,s
- 对可选用性产生负面影响的元素:frame,noframes
Canvas和SVG的区别
- canvas画布,是通过javaScript来绘制2d图,是逐像素进行渲染
- SVG矢量图,是基于XML描述的2D图形语言,每个元素都是可用的,可以为其添加事件
script标签中的defer和async的区别
他俩都是表示异步加载外部js脚本,不会阻塞页面的加载解析。区别
- 执行顺序:有多个async标签不能保证先后加载顺序,而多个defer标签可以按先后顺序加载。
- 是否立即执行:async加载完脚本后会立即执行,defer是要等文档解析完成后才执行。
怎么样添加,移除,移动,复制,创建和查找节点
- 添加节点:document.appendChild(dom)
- 移除节点:document.removeChild(dom)
- 移动节点:document.appendChild(targetDom)
- 复制节点:dom.cloneNode(true),参数true表示是否复制子节点
- 创建节点:document.createElement(dom)
- 查找节点:
- document.getElementById('elementId')
- document.getElementsByClassName('className')
- document.getElementsByTagName('tagName)
- document.querySelector('selector')
- document.querySelectorAll('selector')