前端開發面試題——HTML篇(你想要的,都在這裡)

YoloMonkey發表於2019-02-16

HTML

DOCTYPE作用?標準模式與相容模式各有什麼區別?

1 告知瀏覽器的解析器用什麼文件標準解析這個文件。DOCTYPE不存在或格式不正確會導致文件以相容模式呈現。
2 標準模式中,排版和JS運作模式都是以該瀏覽器支援的最高標準執行;
 相容模式中,頁面以寬鬆的向後相容的方式呈現,模擬老式瀏覽器的行為以防止站點無法工作。

HTML5為什麼只要寫<!DOCTYPE HTML>?

HTML5不基於SGML,因此不需要對DTD進行引用,但需要DOCTYPE來規範瀏覽器的行為;
而HTML4.01基於SGML,需要對DTD進行引用,才能告知瀏覽器文件所使用的文件型別。

行內元素有哪些?塊級元素有哪些?空元素有哪些?

行內元素:a b i em span input select strong等
塊級元素:h1~h6 p div ul ol dl li等
空元素:meta link br hr img input area等

頁面匯入樣式時,使用link和@import有什麼區別?

1 link除了載入CSS之外,還能定義RSS,定義rel連線屬性等作用;而@import只能載入CSS。
2 link在頁面載入時同時載入;而@import引用的CSS會等到頁面載入完後再載入。
3 link是XHTML標籤,無相容問題;@import是CSS提出的,IE5以上才能識別。

介紹一下你對瀏覽器核心的認識?

主要分成兩部分:渲染引擎和JS引擎。
渲染引擎:負責取得網頁內容,整理訊息,以及計算網頁的顯示方式,然後輸出至顯示器或印表機。瀏覽器的核心不同對於網頁的語法解釋會有不同,所以渲染的效果也不同。
JS引擎:解析和執行javascript來實現網頁的動態效果。
最開始渲染引擎和JS引擎沒有很明確的區分,後來JS引擎越來越獨立,核心就傾向於只指渲染引擎。

常見的瀏覽器核心有哪些?

1 Trident核心:IE
2 Gecko 核心:Firefox
3 Presto 核心:Opera(現為Blink)
4 Webkit 核心:Safari,Chrome (Chrome現為Blink)

HTML5有哪些新特性、移除了哪些元素?

HTML5現在已不是SGML的子集,主要是關於影像,位置,儲存,多工等功能的增加。
 繪畫:canvas;
 媒體播放:video和audio元素;
 本地離線儲存:localStorage和sessionStorage;
 語義化更好的元素,如article、footer、header、nav、section;
 表單控制元件,如calendar、date、time、email、url、search;
 新的技術,webworker,websockert,Geolocation;
移除的元素:
 純表現的元素:big,center,font,basefont,strike,s,u;
 對可用性產生負面影響的元素:frame,frameset,noframes;

如何處理HTML5新標籤的瀏覽器相容問題?如何區分HTML和HTML5?

IE6/7/8支援通過document.createElement方法產生的標籤,可以使用這種方法來相容,還要新增上標籤預設的樣式。
識別HTML5:通過DOCTYPE宣告,新增的結構元素,功能元素

HTML5的離線儲存怎麼使用?工作原理能不能解釋一下?

如何使用:只要在在頁面頭部加入mainfest的屬性就行了。

<!DOCTYPE HTML>
<html manifest="cache.manifest">
……
</html>

工作原理:HTML5的離線儲存是基於一個新建的.appcache檔案的快取機制(不是儲存技術),通過這個檔案上的解析清單離線儲存資源,這些資源就像cookie一樣被儲存下來。當無網時,瀏覽器會通過被離線儲存的資料進行展示。

瀏覽器是怎麼對HTML5的離線儲存資源進行管理和載入的?

線上的情況下,瀏覽器發現html頭部有manifest屬性,它會請求manifest檔案。如果是第一次訪問app,那麼瀏覽器就會根據manifest檔案的內容下載相應的資源並進行離線儲存。如果已經訪問過app,瀏覽器就會使用離線的資源載入頁面,然後瀏覽器會對比新的manifest檔案和舊的manifest檔案,如果發生改變就更新資源。

請描述一下cookies,sessionStorage,localStorage的區別?

cookie是網站為了標識使用者身份而儲存在使用者本地終端的資料(通常經過加密)。
cookie資料始終在同源的http請求中攜帶,即會在瀏覽器和伺服器間來回傳遞。
sessionStorage和localStorage不會自動把資料發給伺服器,僅在本地儲存。

儲存大小:
 cookie資料大小不能超過4k。
 sessionStorage和localStorage雖然也有儲存大小限制,但比cookie大得多,有5M或更大。
有效時間:
 cookie     在cookie設定的過期時間之前一直有效,即使瀏覽器關閉
 sessionStorage 資料在當前瀏覽器視窗關閉之後自動刪除
 localStorage   儲存持久資料,瀏覽器關閉之後資料不丟失除非主動刪除資料

iframe有哪些缺點?

1 iframe會阻塞主頁面的Onload事件;
2 搜尋引擎的檢索程式無法解讀這種頁面,不利於SEO;
3 iframe和主頁面共享連線池,而瀏覽器對相同域的連線有限制,所以會影響頁面的並行載入。

如果要使用iframe,最好通過javascript動態給ifarme新增src屬性值,這樣可以避免以上問題。

label的作用是什麼?是怎麼用的?

label標籤定義表單控制間的關係,當使用者選擇該標籤時,瀏覽器會自動將焦點轉到和標籤相關的表單控制元件上。

<label for="name">輸入:</label>
<input type="text" name="name" id="name" />

<label>輸入:<input type="text" name="name" /></label>

HTML5的from如何關閉自動完成功能?

給不想要提示的 from 或某個 input 設定為 autocomplete=off。

如何實現瀏覽器內多個標籤頁之間的通訊?

WebSocket,SharedWorker;
也可以呼叫localStorage,cookies等本地儲存方式;

localStorage在另一個瀏覽器上下文裡被新增、修改或刪除時,它都會觸發一個事件,我們通過監聽事件,控制它的值來進行頁面資訊通訊。

頁面可見性(Page Visibility API)可以有哪些用途?

通過visibilityState的值檢測頁面當前是否可見,以及開啟網頁的時間等;
在頁面被切換到其他後臺程式的時候,自動暫停音樂或視訊播放

網頁驗證碼是幹嘛的,是為了解決什麼安全問題?

區分使用者是人還是計算機的自動程式,可以防止惡意破解密碼,刷票,論壇灌水;
有效防止黑客對某個特定使用者用程式來進行暴利破解登陸。

b與strong的區別?i與em的區別?

strong是表明重點內容,有語氣加強的含義,使用閱讀裝置閱讀網路時,strong會重讀,而b是展示強調內容。
i內容顯示為斜體,em表示強調文字。

相關文章