相關知識點
web標準、 web語義化、 瀏覽器核心、 相容性、 html5...
Doctype作用?嚴格模式與混雜模式如何區分?它們有何意義?
(1)<!DOCTYPE>声明位于HTML文档中的第一行,处于<html>标签之前,用于告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。 (2)标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。 (3)如果HTML文档包含形式完整的DOCTYPE,那么他一般以标准模式呈现。对于HTML4.01文档,包含严格DTD的DOCTYPE常常导致页面已标准模式呈现。DOCTYPE不存在或者格式不正确会导致文档已混杂模式呈现。
請描述一個網頁從開始請求道最終顯示的完整過程?
一个网页从请求到最终显示的完整过程一般可以分为如下7个步骤: (1)在浏览器中输入网址; (2)发送至DNS服务器并获得域名对应的WEB服务器IP地址; (3)与WEB服务器建立TCP连接; (4)浏览器向WEB服务器的IP地址发送相应的HTTP请求; (5)WEB服务器响应请求并返回指定URL的数据,或错误信息,如果设定重定向,则重定向到新的URL地址; (6)浏览器下载数据后解析HTML源文件,解析的过程中实现对页面的排版,解析完成后在浏览器中显示基础页面; (7)分析页面中的超链接并显示在当前页面,重复以上过程直至无超链接需要发送,完成全部数据显示。
HTML5 為什麼只需要寫 ?
(1)HTML5不基于SGML,因此不需要对DTD进行引用,但是需要DOCTYPE来规范浏览器的行为(让浏览器按照它们应该的方式来运行); (2)HTML4.01基于SGML,所以需要对DTD进行引用,才能让浏览器知道该文档所使用的文档类型。
行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
***行内元素***: a - 锚点,em - 强调,strong - 粗体强调,span - 定义文本内区块,i - 斜体,img - 图片,b - 粗体,label - 表格标签,select - 项目选择,textarea - 多行文本输入框,sub - 下标, sup - 上标,q - 短引用; ***块元素***: p - 常用块级,dl - 定义列表,dt,dd,ul- 非排序列表,li,ol-排序表单,p-段落,h1,h2,h3,h4,h5-标题,table-表格,fieldset - form控制组,form - 表单, ***空元素***: br-换行,hr-水平分割线;
介紹一下你對瀏覽器核心的理解?
浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“渲染引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。
常見的瀏覽器核心有哪些?
Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等。[又称MSHTML] Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等。 Presto内核:Opera7及以上。 [Opera内核原为:Presto,现为:Blink;] Webkit内核:Safari,Chrome等。 [ Chrome的:Blink(WebKit的分支)] EdgeHTML内核:Microsoft Edge。 [此内核其实是从MSHTML fork而来,删掉了几乎所有的IE私有特性]
詳細文章:瀏覽器核心的解析與對比-依水間
html5有哪些新特性、移除了那些元素?如何處理HTML5新標籤的瀏覽器相容問題?如何區分 ?
***新增了以下的几大类元素*** 内容元素,article、footer、header、nav、section。 表单控件,calendar、date、time、email、url、search。 控件元素,webworker, websockt, Geolocation。 ***移出的元素有下列这些**** 显现层元素:basefont,big,center,font, s,strike,tt,u。 性能较差元素:frame,frameset,noframes。 HTML5已形成了最终的标准,概括来讲,它主要是关于图像,位置,存储,多任务等功能的增加。 新增的元素有绘画 canvas ,用于媒介回放的 video 和 audio 元素,本地离线存储 localStorage 长期存储数据,浏览器关闭后数据不丢失,而sessionStorage的数据在浏览器关闭后自动删除,此外,还新增了以下的几大类元素。 内容元素,article、footer、header、nav、section。 表单控件,calendar、date、time、email、url、search。 控件元素,webworker, websockt, Geolocation。 ***移出的元素有下列这些*** 显现层元素:basefont,big,center,font, s,strike,tt,u。 性能较差元素:frame,frameset,noframes。 ***新的技术*** canvas,svg,webworker, websocket, Geolocation......
簡述一下你對HTML語意化的理解。
(1)HTML语义化让页面的内容结构化,结构更清晰,便于对浏览器、搜索引擎解析; (2)即使在没有样式CSS的情况下也能以一种文档格式显示,并且是容易阅读的; (3)搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,有利于SEO; (4)使阅读源代码的人更容易将网站分块,便于阅读、维护和理解。
瀏覽器是怎麼對HTML5的離線儲存資源進行管理與載入的呢?
在线情况下,浏览器发现html头部有manifest属性,它会请求manifest文件,如果是第一次访问app,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过app并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。 离线情况下,浏览器就直接使用离线存储的资源。
請描述 cookies,sessionStorage 和 localStorage 的差別?
Web Storage有两种形式:LocalStorage(本地存储)和sessionStorage(会话存储)。这两种方式都允许开发者使用js设置的键值对进行操作,在在重新加载不同的页面的时候读出它们。这一点与cookie类似。 (1)与cookie不同的是:Web Storage数据完全存储在客户端,不需要通过浏览器的请求将数据传给服务器,因此x相比cookie来说能够存储更多的数据,大概5M左右。 (2)LocalStorage和sessionStorage功能上是一样的,但是存储持久时间不一样。 LocalStorage:浏览器关闭了数据仍然可以保存下来,并可用于所有同源(相同的域名、协议和端口)窗口(或标签页); sessionStorage:数据存储在窗口对象中,窗口关闭后对应的窗口对象消失,存储的数据也会丢失。 注意:sessionStorage 都可以用localStorage 来代替,但需要记住的是,在窗口或者标签页关闭时,使用sessionStorage 存储的数据会丢失。 (3)使用 local storage和session storage主要通过在js中操作这两个对象来实现,分别为window.localStorage和window.sessionStorage. 这两个对象均是Storage类的两个实例,自然也具有Storage类的属性和方法。
iframe 有哪些缺點?
(1)iframe会阻塞主页面的Onload事件; (2)搜索引擎的检索程序无法解读这种页面,不利于SEO; (3)iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载。 (4)使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好通过JavaScript动态给iframe添加src属性值,这样可以绕开以上两个问题。
Label的作用是什麼?如何使用?
label标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。 <label for="Name">Number:</label> <input type="text" name="Name" id="Name" /> <label>Date:<input type="text" name="B" /></label>
HTML5的form如何關閉自動完成功能?
给不想要提示的 form 或下面某个 input 设置为 `autocomplete = off`。
如何實現瀏覽器內多個標籤頁之間的通訊? (阿里)
调用 localStorage、cookies 等本地存储方式
webSocket 如何相容於低瀏覽器? (阿里)
Adobe Flash Socket ActiveX HTMLFile(IE) 基于 multipart 编码发送 XHR 基于长轮询的 XHR
頁面可見性(Page Visibility) API可以有哪些用途?
在页面被切换到其他后台进程的时候,自动暂停音乐或视频的播放。
實作 不使用 border 畫出 1px 高的線,在不同瀏覽器的標準模式與怪異模式下都能保持一致的效果?
<p style="height:1px;overflow:hidden;background:#ccc"></p>
網頁驗證碼是做什麼用的?是為了解決什麼安全問題?
可以防止:恶意破解密码、刷票、论坛灌水,有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试,实际上用验证码是现在很多网站通行的方式,我们利用比较简易的方式实现了这个功能。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。
更多前端開發面試題總結之—HTML相關文章請關注PHP中文網!