本文主要和大家分享HTML基礎面試題目及答案,希望能幫助大家。
1 DOCTYPE有什麼作用?標準模式與混雜模式如何區分?它們有何意義?
告訴瀏覽器使用哪個版本的HTML規格來渲染文件。 DOCTYPE不存在或形式不正確會導致HTML文件以混雜模式呈現。
標準模式(Standards mode)以瀏覽器支援的最高標準運作;混雜模式(Quirks mode)中頁面是一種比較寬鬆的向後相容的方式顯示。
2 HTML5為什麼只需要寫 ?
HTML5不基於SGML(Standard Generalized Markup Language 標準通用標記語言),因此不需要對DTD(DTD 文件類型定義)進行引用,但是需要DOCTYPE來規範瀏覽器行為。
HTML4.01是基於SGML,所以需要引用DTD。才能告知瀏覽器文件所使用的文件類型,如下:
3 行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?
行內元素:a span img input select
區塊級元素:p ul ol li dl dt dd h1 p
空元素:<br> <hr> <link> <meta>
4 頁面匯入樣式時,使用link和@import有什麼差別?
相同的地方,都是外部引用CSS方式,區別:
link是xhtml標籤,除了載入css外,還可以定義RSS等其他事務;@import屬於CSS範疇,只能載入CSS
link引用CSS時候,頁面載入時同時載入;@import需要在頁面完全載入以後加載,而且@import被引用的CSS會等到引用它的CSS檔案被載入完才載入
link是xhtml標籤,無相容問題;@import是在css2.1提出來的,低版本的瀏覽器不支援
link支援使用javascript控制去改變樣式,而@import不支持
link方式的樣式的權重高於@import的權重
import在html使用時候需要<style type="text/css">
標籤
5 無樣式內容閃爍(FOUC)Flash of Unstyle Content
#@import導入CSS檔案會等到文件載入完後再載入CSS樣式表。因此,在頁面DOM載入完成到CSS匯入完成之間會有一段時間頁面上的內容是沒有樣式的。
解決方法:使用link標籤載入CSS樣式檔案。因為link是順序載入的,這樣頁面會等到CSS下載完再下載HTML文件,這樣先佈局好,就不會有FOUC問題。
6 介紹一下你對瀏覽器核心的理解?
主要分成兩部分:渲染引擎(Layout Engine或Rendering Engine)和JS引擎。
渲染引擎:負責取得網頁的內容(HTML、XML、圖片等等)、整理訊息(例如加入CSS等),以及計算網頁的顯示方式,然後輸出至顯示器或印表機。瀏覽器的核心的差異對於網頁的語法解釋會有不同,所以渲染的效果也不相同。
JS引擎:解析並執行javascript來實現網頁的動態效果。
最開始渲染引擎和JS引擎並沒有區分的很明確,後來JS引擎越來越獨立,核心就傾向於只指渲染引擎。
7 常見的瀏覽器核心有哪些?
Trident( MSHTML ):IE MaxThon TT The World 360 搜狗瀏覽器
Geckos:Netscape6以上版本 FireFox Mozilla Suite /SeaMonkey
Presto:Opera7以上(Opera核心原為:Presto,現為:Blink)
Webkit:Safari Chrome
8 HTML5有哪些新功能,移除了那些元素?如何處理HTML5新標籤的瀏覽器相容問題?如何區分HTML和HTML5
新增了映像、位置、儲存、多任務等功能。
新增元素:
canvas
#用於媒介回放的video和audio元素
本機離線儲存。 localStorage長期儲存數據,瀏覽器關閉後數據不丟失;sessionStorage的數據在瀏覽器關閉後自動刪除
語義化更好的內容元素,例如article footer header nav section
位置API:Geolocation
表單控件,calendar date time email url search
新的技術:web worker(web worker是運行在背景的JavaScript,獨立於其他腳本,不會影響頁面的效能。您可以繼續做任何願意做的事情:點擊、選取內容等等,而此時web worker 在後台運行) web socket
拖放API:drag、drop
移除的元素:
效能較差元素:frame frameset noframes
#區分:
#9 簡述你對HTML語意化的理解?
10 HTML5的檔案離線儲存怎麼使用,工作原理是什麼?
線上情況下,瀏覽器發現HTML頭部有manifest屬性,它會要求manifest文件,如果是第一次訪問,那麼瀏覽器就會根據manifest文件的內容下載相應的資源,並進行離線儲存。如果已經造訪過且資源已經離線儲存了,那麼瀏覽器就會使用離線的資源載入頁面。然後瀏覽器會對比新的manifest文件與舊的manifest文件,如果文件沒有改變,就不會做任何操作,如果文件改變了,那麼就會重新下載文件中的資源,並且進行離線存儲。例如,在頁面頭加入manifest屬性<html manifest='cache.manifest'>
CACHE MANIFEST #v0.11 CACHE: js/app.js css/style.css NETWORK: Resourse/logo.png FALLBACK: //offline.html
11 cookies,sessionStorage和localStorage的區別?
共同點:都是保存在瀏覽器端,且是同源的。 區別:12 iframe框架有那些優缺點?
優點:#13 label的作用是什麼? 是怎麼用的?
label標籤用來定義表單控制項間的關係,當使用者選擇該標籤時,瀏覽器會自動將焦點轉到和標籤相關的表單控制項上。 label 中有兩個屬性是非常有用的, FOR和ACCESSKEY。FOR屬性功能:表示label標籤要綁定的HTML元素,你點擊這個標籤的時候,所綁定的元素將會取得焦點。例如,
<Label FOR="InputBox">姓名</Label><input ID="InputBox" type="text">
<Label FOR="InputBox" ACCESSKEY="N">姓名</Label><input ID="InputBox" type="text">
14 HTML5的form如何關閉自動完成功能?
HTML的輸入框可以擁有自動完成的功能,當你在輸入框輸入內容的時候,瀏覽器會從你先前的同名輸入框的歷史記錄中找到類似的內容並列在輸入框下面,這樣就不用全部輸入進去了,直接選擇清單中的項目就可以了。但有時我們希望關閉輸入框的自動完成功能,例如當使用者輸入內容的時候,我們希望使用AJAX技術從資料庫搜尋並列舉而不是在使用者的歷史記錄中搜尋。 方法:15 如何实现浏览器内多个标签页之间的通信?
WebSocket SharedWorker
也可以调用 localstorge、cookies 等本地存储方式。 localstorge 在另一个浏览上下文里被添加、修改或删除时,它都会触发一个事件,我们通过监听事件,控制它的值来进行页面信息通信。
注意:Safari 在无痕模式下设置 localstorge 值时会抛出QuotaExceededError 的异常
16 webSocket如何兼容低浏览器?
Adobe Flash Socket ActiveX HTMLFile (IE) 基于 multipart 编码发送 XHR 基于长轮询的 XHR
引用WebSocket.js这个文件来兼容低版本浏览器。
16 页面可见性(Page Visibility)API 可以有哪些用途?
通过visibility state的值得检测页面当前是否可见,以及打开网页的时间。
在页面被切换到其他后台进程时,自动暂停音乐或视频的播放。
17 如何在页面上实现一个圆形的可点击区域?
map+area或者svg
border-radius
纯js实现,一个点不在圆上的算法
18 实现不使用 border 画出1px高的线,在不同浏览器的Quirks mode和CSS Compat模式下都能保持同一效果
<p style="height:1px;overflow:hidden;background:red"></p>
19 网页验证码是干嘛的,是为了解决什么安全问题?
区分用户是计算机还是人的程序;
可以防止恶意破解密码、刷票、论坛灌水;
20 title与h1的区别、b与strong的区别、i与em的区别?
title属性没有明确意义,只表示标题;h1表示层次明确的标题,对页面信息的抓取也有很大的影响
strong标明重点内容,语气加强含义;b是无意义的视觉表示
em表示强调文本;i是斜体,是无意义的视觉表示
视觉样式标签:b i u s
语义样式标签:strong em ins del code
21 元素的alt和title有什么异同?
在alt和title同时设置的时候,alt作为图片的替代文字出现,title是图片的解释文字。
相关推荐:
以上是HTML基礎面試題彙總的詳細內容。更多資訊請關注PHP中文網其他相關文章!