【前端面试指南】HTML

  1. 前端三大件的作用?

    1. HTML定义了结构,
    2. CSS定义了样式,
    3. JS定义了行为.
  2. 什么是HTML?

    1. HTML是超文本标记语言(Hyper Text Markup Language),是用来描述网页的一种语言。
    2. HTML不是一种编程语言,而是一种标记语言,HTML 使用标记标签 (markup tag)来描述网页。
  3. <!DOCTYPE>声明的作用是什么?

    1. 声明位于HTML文档中的第一行,处于 \ 标签之前,告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
      1. 让浏览器以标准模式渲染

      2. 让浏览器知道元素的合法性

  4. 网页有哪些基本信息?

    ​ 一个网页,首先得有个标题,就跟人有名字一样。除此之外,还可以根据实际需要补充一些基本信息。

    1. 文档标题(浏览器标签中显示的文本):<title>深入了解 head 元素</title>
    2. 编码格式:<meta charset=“utf-8”> 如果你的页面出现乱码,那一般就是编码格式不对
    3. 视窗设置:<meta name=“viewport” content=“width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no”>
    4. 搜索引擎优化相关内容:<meta name=“description” content=“帮助你深层次了解HTML文档结构”>
    5. IE浏览器版本渲染设置:<meta http-equiv=“X-UA-Compatible” content=“ie=edge”>
  5. 标准模式与兼容模式各有什么区别?

    1. 定义:

      1. 标准模式(严格模式)下,浏览器按照W3C标准来解析;
      2. 兼容模式(混杂模式、向后兼容的解析方法)下,浏览器用自己的方式解析代码。
    2. 标准模式的排版JS运作模式都是以该浏览器支持的最高标准运行。

    3. 在兼容模式(混杂模式)中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

    4. <!DOCTYPE>不存在或格式不正确会导致文档以兼容模式呈现

  6. 前端需要注意哪些SEO(搜素引擎优化)?

    1. 提高网站速度:网站速度是搜索引擎排序的一个重要指标
    2. 合理的title、description、keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有所不同;description把页面内容高度概括,长度合适,不可过分堆砌关键词,不同页面description有所不同;keywords列举出重要关键词即可
    3. 语义化的HTML代码,符合W3C规范:语义化代码让搜索引擎容易理解网页
    4. 重要内容HTML代码放在最前:搜索引擎抓取HTML顺序是从上到下,有的搜索引擎对抓取长度有限制,保证重要内容一定会被抓取
    5. 重要内容不要用js输出:爬虫不会执行js获取内容
    6. 少用iframe:搜索引擎不会抓取iframe中的内容
    7. 非装饰性图片必须加alt
  7. img标签的title和alt有什么区别?

    1. title(tool tip):该属性为设置该属性的元素提供建议性的信息,title属性可以为链接添加描述性文字,来更加清楚的表达链接的目的。通常当鼠标滑动到元素上的时候显示
    2. alt(alt text):为不能显示图像、窗体或applets的用户代理(UA),alt属性用来指定替换文字。替换文字的语言由lang属性指定。(在IE浏览器下会在没有title时把alt当成 tool tip显示) ,alt是<img>的特有属性,是图片内容的等价描述,用于图片无法加载时显示、读屏器阅读图片。可提高图片可访问性,除了纯装饰图片外都必须设置有意义的值,搜索引擎会重点分析。
  8. title 属性的作用有哪些?

    1. title 属性可以用在除了 base,basefont,head,html,meta,param,script 和 title 之外的所有标签。
    2. title 属性的功能是提示。额外的说明信息和非本质的信息请使用 title 属性。title 属性值可以比 alt 属性值设置的更长。
    3. title 属性有一个很好的用途,即为链接添加描述性文字,特别是当连接本身并不是十分清楚的表达了链接的目的。
  9. em 与 i 的区别?

    1. 效果都是斜体
    2. em 是语义化标签,表强调
    3. i 是纯样式标签, 表斜体
    4. HTML 5中i不推荐使用,一般用作图标
  10. 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?行内元素和块级元素有什么区别?

    1. CSS 规范规定,每个元素都有 display 属性,确定该元素的类型,每个元素都有默认的 display 值,如 div 的 display 默认值为“block”,则为“块级”元素;span 默认 display 属性值为“inline”,是“行内”元素。
      1. 行内元素有:a b span img input select strong
      2. 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4… p
      3. 空元素:<br> <hr> <img> <input> <link> <meta>
    2. 区别:
      1. 行内元素不可以设置宽高不独占一行
      2. 块级元素可以设置宽高,独占一行
  11. 哪些元素可以自闭合?

    1. 表单元素 input
    2. img
    3. br, hr
    4. meta, link
  12. meta标签用来做什么?

    1. 提供给机器解读的一些元数据。页面搜索引擎优化,定义页面实用语言等等。属性有两个:
      1. http-equiv+content
        1. charset(编码格式)
        2. expires(过期时间)
        3. refresh(特定时间内自动刷新跳转)
        4. pragma(禁止浏览器从本地计算机缓存中访问页面内容no-cache)
        5. widows-target(设定页面在窗口中以独立页面展示,防止被当成frame页调用)
        6. set-cookie(自定义cooke)
        7. ontent-Type(字符集)
      2. name+content
        1. keywords(关键字)
        2. description(主要内容)
        3. robots(none不被检索)
        4. author、generator(使用的制作软件)
        5. copyright
        6. viewport(缩放比例)
  13. 对语义化的理解?

    1. 用正确的标签做正确的事情
    2. HTML语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析,使机器容易理解结构(搜索、读屏软件)
    3. 搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO
    4. 在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的。使阅读源代码的人对网站更容易将网站分块,便于开发者阅读理解,便于维护。
  14. HTML5 为什么只需要写< !DOCTYPE HTML>?

    1. HTML5 不基于 SGML,因此不需要对DTD(Document Type Definition)进行引用,但是需要doctype来规范浏览器的行为
    2. 而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型
    3. 声明文件类型定义(DTD),位于文档中最前面,作用是为了告知浏览器应该用哪种文档类型规范来解析文档。
  15. html5有哪些新特性?

    1. 简单回答如下:
      1. 新的语义化元素
      2. 表单增强
      3. 新的API (离线、音视频、图形、实时通信、本地存储、设备能力)
      4. 分类和嵌套变更
    2. 详细说明如下:
      1. HTML5 现在已经不是 SGML(Standard Generalized Markup Language,即标准通用标记语言) 的子集,迭代主要是关于图像,位置,存储,多任务等功能的增加,增加了一些新的API
      2. 新的区块标签
        1. 图形|绘画 canvas
        2. 用于媒介回放的音视频 video 和 audio 元素
        3. 语意化更好的内容元素,比如article、footer、header、nav、section。
          1. header / footer 头尾
          2. section / article 区域
          3. nav 导航
          4. aside 不重要内容
          5. em 斜体/ strong强调
      3. 表单控件,表单元素增强,calendar、color、date、datetime、datetime-local、email、month、range、search、tel、time、url、week。
        1. 日期、时间、搜索
        2. 表单验证
        3. Placeholder自动聚焦
      4. datalist 与input配合使用规定输入域的选项列表;keygen密钥;output定义不同类的输出。
      5. draggable属性 可拖动设备能力,geolocationAPI 获取用户地理位置,手机摇一摇
      6. Web worker 页面中执行脚本时,页面状态不可响应,直到脚本完成。在后台运行,独立于其他脚本,不会影响页面的性能。(相当于多线程并发)
      7. SSE server-sent-event 网页自动获取来自服务器的更新。用于接收服务器发送时间通知
      8. 设备能力,geolocationAPI 获取用户地理位置,手机摇一摇
      9. 实时通信(websoket)在单个TCP连接上进行全双工通讯的协议。只需要握手一次,形成快速通道,传输数据。客户端和服务器可以直接通过TCP交换数据。获取连接之后,可以用send发送数据,用onmessage接收服务器返回的数据。
      10. 新的API:History、Command、离线 (applicationCache )
      11. Web存储,sessionStorge针对一个session进行数据存储,关闭浏览器窗口后自动删除,本地离线存储localStorage没有事件限制,不过它可能会因为本地时间修改失效。不过大量复杂数据结构一般用indexDB长期存储数据,浏览器关闭后数据不丢失
  16. HTML5移除了哪些些元素?

    1. 纯表现的元素(删除了一些纯样式的标签):basefont、big、center、font、 s、strike、tt、u
    2. 对可用性产生负面影响的元素:frame、frameset、noframes
  17. HTML5的离线储存怎么使用,工作原理能不能解释一下?

    1. 在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件
    2. 原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示
    3. 如何使用:
      1. 页面头部像下面一样加入一个manifest的属性;
      2. 在cache.manifest文件的编写离线存储的资源
      3. 在离线状态时,操作window.applicationCache进行需求实现
  18. 如何处理HTML5新标签的浏览器兼容问题?

    1. IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签
    2. 浏览器支持新标签后,还需要添加标签默认的样式,当然也可以直接使用成熟的框架、比如html5shim
  19. HTML5的form如何关闭自动完成功能?

    给不想要提示的 form 或某个 input 设置为 autocomplete=off。

  20. iframe有哪些缺点?

    1. iframe会阻塞主页面的Onload事件
    2. 搜索引擎的检索程序无法解读这种页面,不利于SEO
    3. iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载
    4. 使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以绕开以上两个问题
  21. WEB标准以及W3C标准是什么?

    1. 标签闭合、
    2. 标签小写、
    3. 不乱嵌套、
    4. 使用外链css和js、
    5. 结构行为、表现的分离
  22. xhtml和html有什么区别?

    HTML4XHTMLHTML5
    标签允许不结束标签必须结束标签允许不结束
    属性不用带引号属性必须带引号属性不用带引号
    标签属性可大写标签属性必须小写标签属性可大写
    Boolean属性可省略值Boolean属性必须写值Boolean属性可省略值
    1. 一个是功能上的差别:主要是XHTML可兼容各大浏览器、手机以及PDA,并且浏览器也能快速正确地编译网页
    2. 另外是书写习惯的差别:XHTML 元素必须被正确地嵌套,闭合,区分大小写,文档必须拥有根元素
    3. HTML属于SGML、XHTML属于XML,是HTML进行XML严格化的结果
    4. HTML5不属于SGML或XML,比XHTML宽松
  23. HTML全局属性(global attribute)有哪些?

    1. class:为元素设置类标识
    2. data-*: 为元素增加自定义属性
    3. draggable: 设置元素是否可拖拽
    4. id: 元素id,文档内唯一
    5. lang: 元素内容的的语言
    6. style: 行内css样式
    7. title: 元素相关的建议信息
  24. Canvas和SVG有什么区别?

    1. svg绘制出来的每一个图形的元素都是独立的DOM节点,能够方便的绑定事件或用来修改。canvas输出的是一整幅画布

    2. svg输出的图形是矢量图形,后期可以修改参数来自由放大缩小,不会失真和锯齿。而canvas输出标量画布,就像一张图片一样,放大会失真或者锯齿

  25. 移动端项目怎样处理移动端一像素边框问题?

    有的手机分辨率比较高,是2倍屏或3倍屏,手机上的浏览器就会把CSS中的1像素值展示为2个或3个物理宽度?

    1. 局部处理:

      1. mate标签中的 viewport属性 ,initial-scale 设置为 1
      2. rem按照设计稿标准走,外加利用transfrome 的scale(0.5) 缩小一倍即可;
    2. 全局处理:

      1. mate标签中的 viewport属性 ,initial-scale 设置为 0.5
      2. rem 按照设计稿标准走即可
      3. 或添加一个border.css库,将利用scroll缩放的原理将边框重置。当我们需要使用一像素边框时只需要在标签上添加对应类名,如设置底部一像素边框就在标签上加入"border-bottom"的class名
  26. div+css的布局较table布局有什么优点?

    1. 改版的时候更方便 只要改css文件。
    2. 页面加载速度更快、结构化清晰、页面显示简洁。
    3. 表现与结构相分离。
    4. 易于优化(seo)搜索引擎更友好,排名更容易靠前。
  27. 简述一下src与href的区别?

    1. src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。
    2. src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素.当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部
    3. href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,一般用于超链接。如果我们在文档中添加<link href=“common.css” rel=“stylesheet”/>那么浏览器会识别该文档为css文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么建议使用link方式来加载css,而不是使用@import方式
  28. 页面导入样式时,使用 link 和@import 有什么区别?

    1. link 属于 XHTML 标签,除了加载 CSS 外,还能用于定义 RSS, 定义 rel 连接属性等作用;而@import 是 CSS 提供的,只能用于加载 CSS;
    2. 页面被加载的时,link 会同时被加载,而@import 引用的 CSS 会等到页面被加载完再加载;
    3. import 是 CSS2.1 提出的,只在 IE5 以上才能被识别,而 link 是 XHTML 标签,无兼容问题;
    4. link 支持使用 js 控制 DOM 去改变样式,而@import 不支持;
  29. 网页制作会用到的图片格式有哪些?

    1. png-8、png-24、jpeg、gif、svg
    2. 新技术,新鲜事物:Webp、Apng
      1. Webp:WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式。在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。
      2. Apng:全称是“Animated Portable Network Graphics”, 是PNG的位图动画扩展,可以实现png格式的动态图片效果。04年诞生,但一直得不到各大浏览器厂商的支持,直到日前得到 iOS safari 8的支持,有望代替GIF成为下一代动态图标准
  30. HTML和DOM的关系?

    1. HTML只是一个字符串
    2. DOM由HTML解析而来
    3. JS可以维护DOM
  31. Ajax与Flash的优劣比较?

    1. Ajax的优势:

      1. 可搜索性:普通的文本网页会更有利于SEO。文本内容是搜索引擎容易检索的,而繁琐的swf字节码却是搜索引擎不愿触及的。虽然Google等一些大型的搜索引擎可 以检索SWF内部的内容,但是仍然有很多麻烦存在。
      2. 开放性:Flash常年以来被Macromedia看的很死。包括Flex、FMS等辅佐技术一直都需要昂贵的安装、维护费用。而JS则没有这样的麻烦。没有人愿意承担法律 和版权的风险。
      3. 费用:Flash开发是很昂贵的,因为FlashIDE等环境都是要收费的.而Ajax则不同.虽然有一些便宜的生成swf的工具,但是他们的工能实在无法满足复杂需 求。
      4. 易用性:Ajax程序有更好的易用性。由于中间有一层Flashplayer代理层,因此许多辅助功能无法被Flash灵活利用。而且Flash在一些方面有着不好的口碑。比如弹出广告、比如恶意代码。
    2. Ajax的劣势

      1. 它可能破坏浏览器的后退功能,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中 ,不过这些都有相关方法解决。
    3. Flash的优势

      1. 多媒体处理:Flash在音频、视频等多媒体领域相比HTML有绝对的优势。现在几乎所有的网站都包含有Flash内容。
      2. 兼容性:兼容性好,由于通过了唯一的FlashPlayer“代理”。人们不必像调试JS那样,在不同的浏览器中调试程序。
      3. 矢量图形:最大的优势,同样处在这一领域的SVG、Canvas element以及Direct完全不能与Flash相比。
      4. 客户端资源调度:能够更容易的调用浏览器以外的外部资源。比如摄像头、麦克风等。然而这是普通的HTML无法完成的。
    4. Flash的劣势

      1. 二进制格式
      2. 格式私有
      3. flash 文件经常会很大,用户第一次使用的时候需要忍耐较长的等待时间
      4. 性能问题

31.meta viewport 的作用?

举例说明:
<meta name=“viewport” content=“width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1”>

  1. width:width属性被用来控制layout viewport(布局视窗)的宽度,一般为了自适应布局,普遍的做法是将width设置为device-width,width=device-width 也就是将layout viewport(布局视窗)的宽度设置为设备屏幕分辨率的宽度。
  2. initial-scaleinitial-scale用于指定页面的初始缩放比例,initial-scale=1 表示将layout viewport的宽度设置为屏幕分辨率的宽度,initial-scale=1.5 表示将layout viewport的宽度设置为屏幕分辨率宽度的1.5倍。
  3. maximum-scalemaximum-scale用于指定用户能够放大的最大比例,假设页面的默认缩放值initial-scale是1,那么用户最终能够将页面放大到这个初始页面大小的3倍。
  4. minimum-scale类似maximum-scale的描述,不过minimum-scale是用来指定页面缩小比例的。设置为0.5表示用户能够将页面缩小到初始页面的0.5倍,通常情况下,不会定义该属性的值,页面太小将难以阅读。
  5. <meta name=“viewport” content=“width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no” />
    // width 设置viewport宽度,为一个正整数,或字符串‘device-width’
    // device-width 设备宽度
    // height 设置viewport高度,一般设置了宽度,会自动解析出高度,可以不用设置
    // initial-scale 默认缩放比例(初始缩放比例),为一个数字,可以带小数
    // minimum-scale 允许用户最小缩放比例,为一个数字,可以带小数
    // maximum-scale 允许用户最大缩放比例,为一个数字,可以带小数
    // user-scalable 是否允许手动缩放

32.什么是h5,和html5有什么区别?

H5特指基于HTML5技术的交互网页应用,以商业用途为主,实际上是一个解决方案,一个看起来酷炫的移动端单页面网站的解决方案。而这个解决方案包括了一切前端的基本知识,包含了HTML5新增的audio标签、canvas、拖拽特性、本地存储、websocket通信,同时也包括了CSS的盒模型、绝对定位等。
HTML5则是第五代HTML技术。

33.HTML的常见元素有哪些?

headbody
metadiv/section /header/footer/article/aside
scriptp
stylespan/em/strong
titletable/thead/tbody/tr/td
linkul/ol/li/dl/dt/dd
basea
baseform/input/select/textarea/button
  1. <meta charset=“utf-8”>
  2. <meta name=“viewport” content=“width=device-width initial-scale=1.0 maximum-scale=1.0 user-scalable=no”,加上viewport可以更好的适配移动端,让视口的宽度等于屏幕的宽度
  3. <base href=’/’>,指定基础路径,之后的所有路径都会以此为基准

34. HTML的重要属性有哪些?

属性作用
a[href,target]target确定链接打开方式
img[src,alt]alt在图片不显示展示
table td[colspan.rowspan]合并单元格会用到
form[target,method,enctype]target指提交目标,method指提交方式,有post和get两种,enctype指编码
input[type,value]text\password
button[type]button\submit
select>option[value]而 value 属性中的值是表单被提交时被发送到服务器的值
label[for]加上for后选项和文字之间可以关联

34.form的作用有哪些?

  1. 直接提交表单
  2. 使用submit / reset按钮
  3. 便于浏览器保存表单
  4. 第三方库可以整体提取值
  5. 第三方库可以进行表单验证
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值