HTML

90 阅读5分钟

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')