Html 001html常见问题
1.XHTML和HTML有什么区别
- HTML是一种基本的WEB网页设计语言,
- XHTML是一个基于XML的置标语言
最主要的不同: - XHTML元素必须被正确地嵌套。
- XHTML元素必须被关闭
- 标签名必须用小写字母
- XHTML文档必须拥有根元素
2.什么是语义化的HTML?
- 直观的认识标签对于搜索引擎的抓取有好处,用正确的标签做正确的事情!
- HTML语义化就是让页面的内容结构化,便于对浏览器,搜索引擎解析;
- 在没有样式css情况下也以一种文档格式显示,并且是容易阅读。
搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于SEO。 - 在阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
3.简述一下你对HTML语义化的理解?
1、用正确的标签做正确的事情。
2、html语义化让页面的内容结构化,结构更清晰,便于对浏览器,搜索引擎解析;
3、即使在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的;
4、搜索引擎的爬虫也依赖于HTML标记确定上下文和各个关键字的权重,利用SEO;
5、使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。
4.常见的浏览器内核有哪些?
- Trident内核:IE,MaxThon,TT,The Word,360,搜狗浏览器等。[又称为MSHTML]
- Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等;
- Presto内核:Opera7及以上。[Opera内核原为:Presto,现为:Blink]
- Webkit内核:Safari,Chrome等。[Chrome的:Blink(Webkit的分支)]
5.常见哪几种浏览器测试?有哪些内核(Layout Engine)?
- 浏览器:IE、Chrome、FireFox、Safari、Opera
- 内核:Trident、Gecko、Presto、Webkit
6.HTML5有哪些新特性,移除了哪些元素?
如何处理HTML5新标签的浏览器兼容问题?
如何区分HTML和HTML5?
- HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,多任务等功能的增加。
- 用于绘画canvas
- 用于媒介回放的video和audio元素
- 本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失;
- sessionStorage的数据在浏览器关闭后自动删除
- 语意化更好的内容元素,比如article,footer,header,nav,section
- 表单控件:calendar,date,time,email,url,search
- 新的技术webworker,websocktGeolocation
移除的元素
- 纯表现的元素:basefont,big,center,font,s,strike,tt,u;
- 对可用性产生负面影响的元素:frame,frameset,noframes;
支持HTML5新标签:
- IE8/IE7/IE6支持通过document,createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,浏览器支持新标签后,还需要添加标签默认的样式。
7.请描述一下cookies,sessionStorage(会话存储)和localStrorage(本地存储)的区别?
- cookie在浏览器和服务器间来回传递,sessionStorage和localStorage不会;
- sessionStorage和localStorage的存储空间更大;
- sessionStorage和localStorage有更多丰富易用的接口;
- sessionStorage和localStorage各自独立的存储空间;
8.请描述一下cookies、sessionStorage和localStorage区别?
- cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
- cookie数据始终在同源的http请求中携带(即使不需要),即会在浏览器和服务器间来回传递。
- sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存
存储大小:
- cookie数据大小不能超过4K。
- sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。
有期时间:
- localStorage:存储持久数据,浏览器关闭后数据不丢失除非主动删除数据;
- sessionStorage:数据在当前浏览器窗口关闭后自动删除
- cookie:设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
9.如何实现浏览器内多个标签页之间的通信?
- 调用localstorage,cookies等本地存储方式
- WebSocket、SharedWorker
- localstroge另一个浏览器上下文被添加、删除或修改时,它都会触发一个事件,我们通过监听事件,控制它的值来进行页面信息通信。
- 注意quirks:Safari在无痕迹模式下设置localstorge值抛出QuotExceededError的异常。
10.HTML5为什么只需要写!DOCTYPE HTML?
HTMl5不基于SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照它们应该的方式来运行);而HTMl4.01基于SGMA,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。
11.Doctype作用?标准模式与兼容模式各种什么区别?
- !Doctype声明位于HTML文档的第一行,处于html标签之前。告知浏览器的解析器用什么文档标准解析这个文档。doctype不存在或格式不正确会导致文档以兼容模式呈现。
- 标准模式的排版和JS运作模式都是该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式来显示,模拟老式浏览器的行为以防止站点无法工作。
12.Doctype严格模式与混杂模式如何触发这两种模式,区分它们有何意义?
- 用于声明文档使用哪种规范(html/Xhtml)一般为严格过渡基于框架的html文档。
- 加入XML声明可触发,解析方式更改为IE5.5拥有IE5.5的Bug。
13.html document是干嘛的?
- HTML即:超文本标记语言,标准通用标记语言的一个应用,“超文本”就是指页面内可以包含图片、链接、甚至音乐、程序等非文字元素。
- HTML Document即:HTML Document对象,每个载入浏览器的HTML文档都会成为Document对象
- 由于Document对象是window对象的一部分,所以可通过window.document属性对其进行访问。
14.html5哪些操作可以SEO优化
- title标签;
- meta标签;
- header标签;
- footer标签
- 元标签(meta标签);
- 导航标签(nav标签);
- 文章标签(article标签);
- 左或右侧标签(aside标签)
15.前端需要注意哪些SEO
- 合理的title、description、keywords:搜索对着三项的权重逐个减小,
title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有所不同;
description把页面内容高度概括,长度合适,不可过分堆砌关键词,不同页面description有所不同;
keywords列举出重要关键词即可 - 语义化的HTML代码,符合W3C规范:语义化代码让搜索引擎容易理解网页
- 重要内容HTML代码放在最前:搜索引擎抓取HTML顺序是从上到下,有的搜索引擎对抓取长度有限制,保证重要内容一定会被抓取
- 重要内容不要用js输出:爬虫不会执行js获取内容
- 少用iframe:搜索引擎不会抓取iframe中的内容
- 非装饰性图片必须加alt
- 提高网站速度:网站速度是搜索引擎排序的一个重要指标
16.img的title和alt有什么区别
- 通常当鼠标滑动到元素上的时候显示
- alt是<img>的特有属性,是图片内容的等价描述,用于图片无法加载时显示、读屏器阅读图片。可提图片高可访问性,除了纯装饰图片外都必须设置有意义的值,搜索引擎会重点分析。
17.HTTP的几种请求方法用途
- GET方法 发送一个请求来取得服务器上的某一资源
- POST方法 向URL指定的资源提交数据或附加新的数据
- PUT方法 跟POST方法很像,也是想服务器提交数据。但是,它们之间有不同。PUT指定了资源在服务器上的位置,而POST没有
- HEAD方法 只请求页面的首部
- DELETE方法 删除服务器上的某资源
- OPTIONS方法 它用于获取当前URL所支持的方法。如果请求成功,会有一个Allow的头包含类似“GET,POST”这样的信息
- TRACE方法 TRACE方法被用于激发一个远程的,应用层的请求消息回路
- CONNECT方法 把请求连接转换到透明的TCP/IP通道
18.从浏览器地址栏输入url到显示页面的步骤
- 浏览器根据请求的URL交给DNS域名解析,找到真实IP,向服务器发起请求;
- 服务器交给后台处理完成后返回数据,浏览器接收文件(HTML、JS、CSS、图象等);
- 浏览器对加载到的资源(HTML、JS、CSS等)进行语法解析,建立相应的内部数据结构(如HTML的DOM);
- 载入解析到的资源文件,渲染页面,完成。
19.如何进行网站性能优化
- content方面
- 减少HTTP请求:合并文件、CSS精灵、inline Image
- 减少DNS查询:DNS缓存、将资源分布到恰当数量的主机名
- 减少DOM元素数量
- Server方面
- 使用CDN
- 配置ETag
- 对组件使用Gzip压缩
- Cookie方面
- 减小cookie大小
- css方面
- 将样式表放到页面顶部
- 不使用CSS表达式
- 使用<link>不使用@import
- Javascript方面
- 将脚本放到页面底部
- 将javascript和css从外部引入
- 压缩javascript和css
- 删除不需要的脚本
- 减少DOM访问
- 图片方面
- 优化图片:根据实际颜色需要选择色深、压缩
- 优化css精灵
- 不要在HTML中拉伸图片
20.HTTP状态码及其含义
- 1XX:信息状态码
- 100 Continue 继续,一般在发送post请求时,已发送了http header之后服务端将返回此信息,表示确认,之后发送具体参数信息
- 2XX:成功状态码
- 200 OK 正常返回信息
- 201 Created 请求成功并且服务器创建了新的资源
- 202 Accepted 服务器已接受请求,但尚未处理
- 206 PARTIAL_CONTENT 内容发送了一部分
- 3XX:重定向
- 301 Moved Permanently 请求的网页已永久移动到新位置。
- 302 Found 临时性重定向。
- 303 See Other 临时性重定向,且总是使用 GET 请求新的 URI。
- 304 Not Modified 自从上次请求后,请求的网页未修改过。
- 4XX:客户端错误
- 400 Bad Request 服务器无法理解请求的格式,客户端不应当尝试再次使用相同的内容发起请求。
- 401 Unauthorized 请求未授权。
- 403 Forbidden 禁止访问。
- 404 Not Found 找不到如何与 URI 相匹配的资源。
- 5XX: 服务器错误
- 500 Internal Server Error 最常见的服务器端错误。
- 503 Service Unavailable 服务器端暂时无法处理请求(可能是过载或维护)。
21.语义化的理解
- 用正确的标签做正确的事情!
- html语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析;
- 在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的。
- 搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。
- 使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解
22.介绍一下你对浏览器内核的理解?
- 主要分成两部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎
- 渲染引擎:负责取得网页的内容(HTML、XML、图像等等)、整理讯息(例如加入CSS等),以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核的不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所有网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核
- JS引擎则:解析和执行javascript来实现网页的动态效果
- 最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎
23.html5有哪些新特性、移除了那些元素?
- HTML5 现在已经不是 SGML 的子集,主要是关于图像,位置,存储,多任务等功能的增加
- 用于绘画 canvas
- 用于媒介回放的 video 和 audio 元素
- 本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失
- sessionStorage 的数据在浏览器关闭后自动删除
- 语意化更好的内容元素,比如article、footer、header、nav、section
- 表单控件,calendar、date、time、email、url、search
- 新的技术webworker, websocket, Geolocation
- 移除的元素:
- 纯表现的元素:basefont,big,center,font, s,strike,tt,u`
- 对可用性产生负面影响的元素:frame,frameset,noframes
- 支持HTML5新标签:
- IE8/IE7/IE6支持通过document.createElement方法产生的标签
- 可以利用这一特性让这些浏览器支持HTML5新标签
- 浏览器支持新标签后,还需要添加标签默认的样式
- 当然也可以直接使用成熟的框架、比如html5shim
23.HTML5的离线储存怎么使用,工作原理能不能解释一下?
- 在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件
- 原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示
- 如何使用:
- 页面头部像下面一样加入一个manifest的属性;
- 在cache.manifest文件的编写离线存储的资源
- 在离线状态时,操作window.applicationCache进行需求实现
|
|
24. 浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢
- 在线的情况下,浏览器发现html头部有manifest属性,它会请求manifest文件,如果是第一次访问app,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过app并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。
- 离线的情况下,浏览器就直接使用离线存储的资源。
25.请描述一下 cookies,sessionStorage 和 localStorage 的区别?
- cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)
- cookie数据始终在同源的http请求中携带(即使不需要),记会在浏览器和服务器间来回传递
- sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存
- 存储大小:
- cookie数据大小不能超过4k
- sessionStorage和localStorage虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大
- 有期时间:
- localStorage 存储持久数据,浏览器关闭后数据不丢失除非主动删除数据
- sessionStorage 数据在当前浏览器窗口关闭后自动删除
- cookie 设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭
26.iframe有那些缺点?
- iframe会阻塞主页面的Onload事件
- 搜索引擎的检索程序无法解读这种页面,不利于SEO
- iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载
- 使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以绕开以上两个问题
27.WEB标准以及W3C标准是什么?
标签闭合、标签小写、不乱嵌套、使用外链css和js、结构行为表现的分离
28.xhtml和html有什么区别?
- 一个是功能上的差别
主要是XHTML可兼容各大浏览器、手机以及PDA,并且浏览器也能快速正确地编译网页 - 另外是书写习惯的差别
XHTML 元素必须被正确地嵌套,闭合,区分大小写,文档必须拥有根元素
29.Doctype作用?严格模式与混杂模式如何区分?它们有何意义?
- 页面被加载的时,link会同时被加载,而@imort页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载
import只在IE5以上才能识别,而link是XHTML标签,无兼容问题
link方式的样式的权重 高于@import的权重 - 严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行
- 在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。 DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现
30.行内元素有哪些?块级元素有哪些? 空(void)元素有那些?行内元素和块级元素有什么区别?
- 行内元素有:a b span img input select strong
- 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4… p
- 空元素:
- 行内元素不可以设置宽高,不独占一行
- 块级元素可以设置宽高,独占一行
31.HTML全局属性(global attribute)有哪些
- class:为元素设置类标识
- data-*: 为元素增加自定义属性
- draggable: 设置元素是否可拖拽
- id: 元素id,文档内唯一
- lang: 元素内容的的语言
- style: 行内css样式
- title: 元素相关的建议信息
32.Canvas和SVG有什么区别?
- svg绘制出来的每一个图形的元素都是独立的DOM节点,能够方便的绑定事件或用来修改。canvas输出的是一整幅画布
- svg输出的图形是矢量图形,后期可以修改参数来自由放大缩小,不会出现失真和锯齿。而canvas输出标量画布,就像一张图片一样,放大会失真或者出现锯齿
33.如何在页面上实现一个圆形的可点击区域?
- svg
- border-radius
- 纯js实现 需要求一个点在不在圆上简单算法、获取鼠标坐标等等
34.网页验证码是干嘛的,是为了解决什么安全问题
- 区分用户是计算机还是人的公共全自动程序。可以防止恶意破解密码、刷票、论坛灌水
- 有效防止黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试
35.html5有哪些新特性?如何处理HTML5新标签的浏览器兼容问题?如何区分HTML和HTML5?
HTML5现在已经不是SGML的子集,主要是关于图像,位置,存储,多任务等功能的增加;
- 绘画canvas;
- 用于媒介回放的video和auto元素;
- 本地离线存储localStorage长期存储数据,浏览器关闭后数据不丢失;
- sessionStorage的数据在浏览器关闭后自动删除;
- 语意化更好的内容元素,比如article、footer、header、nav、section;
- 表单控件:calendar、date、time、url、search;
- 新的技术
- IE8/IE7/IE6支持通过document.createElement方法产生的标签;
|
|
36.iframe的作用?
- 用法
- iframe是用来在网页中插入第三方页面,早期的页面使用iframe主要是用于导航栏这种很多页面都相同的部分,这样在切换页面的时候避免重复下载。
- 优点
- 便于修改,模拟分离,像一些信息管理系统会用到。
- 但现在基本不推荐使用。除非特殊需要,一般不推荐使用。
- 缺点
- iframe的创建比一般的DOM元素慢了1-2个数量级
- iframe标签会阻塞页面的的加载,如果页面的onload事件不能及时触发,会让用户觉得网页加载很慢,用户体验不好,在Safari和Chrome中可以通过js动态设置iframe的src属性来避免阻塞。
- iframe对于SEO不友好,替换方案一般就是动态语言的Incude机制和ajax动态填充内容等。