超全整理前端開發面試題——HTML篇(2016年)

2021-02-14 極客學院

https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers

本文由我收集總結了一些前端面試題,初學者閱後也要用心鑽研其中的原理,重要知識需要系統學習、透徹學習,形成自己的知識鏈。萬不可投機取巧,臨時抱佛腳只求面試僥倖混過關是錯誤的!也是不可能的!不可能的!不可能的!

前端還是一個年輕的行業,新的行業標準, 框架, 庫都不斷在更新和新增。正如赫門在2015深JS大會上的《前端服務化之路》主題演講中說的一句話:「每18至24個月,前端都會難一倍」,這些變化使前端的能力更加豐富、創造的應用也會更加完美。所以關注各種前端技術,跟上快速變化的節奏,也是身為一個前端程式設計師必備的技能之一。

Doctype作用?標準模式與兼容模式各有什麼區別?

(1)<!DOCTYPE>聲明位於位於HTML文檔中的第一行,處於 <html> 標籤之前。告知瀏覽器的解析器用什麼文檔標準解析這個文檔。DOCTYPE不存在或格式不正確會導致文檔以兼容模式呈現。(2)標準模式的排版 和JS運作模式都是以該瀏覽器支持的最高標準運行。在兼容模式中,頁面以寬鬆的向後兼容的方式顯示,模擬老式瀏覽器的行為以防止站點無法工作。

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

HTML5 不基於 SGML,因此不需要對DTD進行引用,但是需要doctype來規範瀏覽器的行為(讓瀏覽器按照它們應該的方式來運行);而HTML4.01基於SGML,所以需要對DTD進行引用,才能告知瀏覽器文檔所使用的文檔類型。

行內元素有哪些?塊級元素有哪些? 空(void)元素有那些?

首先: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>    鮮為人知的是:    <area> <base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>

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

(1)link屬於XHTML標籤,除了加載CSS外,還能用於定義RSS, 定義rel連接屬性等作用;而@import是CSS提供的,只能用於加載CSS;(2)頁面被加載的時,link會同時被加載,而@import引用的CSS會等到頁面被加載完再加載;(3)import是CSS2.1 提出的,只在IE5以上才能被識別,而link是XHTML標籤,無兼容問題;

介紹一下你對瀏覽器內核的理解?

主要分成兩部分:渲染引擎(layout engineer或Rendering Engine)和JS引擎。渲染引擎:負責取得網頁的內容(HTML、XML、圖像等等)、整理訊息(例如加入CSS等),以及計算網頁的顯示方式,然後會輸出至顯示器或印表機。瀏覽器的內核的不同對於網頁的語法解釋會有不同,所以渲染的效果也不相同。所有網頁瀏覽器、電子郵件客戶端以及其它需要編輯、顯示網絡內容的應用程式都需要內核。JS引擎則:解析和執行javascript來實現網頁的動態效果。最開始渲染引擎和JS引擎並沒有區分的很明確,後來JS引擎越來越獨立,內核就傾向於只指渲染引擎。

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

Trident內核:IE,MaxThon,TT,The World,360,搜狗瀏覽器等。[又稱MSHTML]Gecko內核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等Presto內核:Opera7及以上。                  [Opera內核原為:Presto,現為:Blink;]Webkit內核:Safari,Chrome等。                   [ Chrome的:Blink(WebKit的分支)]

html5有哪些新特性、移除了那些元素?如何處理HTML5新標籤的瀏覽器兼容問題?如何區分 HTML 和 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;     <!--[if lt IE 9]>        <script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>     <![endif]-->* 如何區分HTML5:DOCTYPE聲明\新增的結構元素\功能元素

簡述一下你對HTML語義化的理解?

用正確的標籤做正確的事情。html語義化讓頁面的內容結構化,結構更清晰,便於對瀏覽器、搜尋引擎解析;即使在沒有樣式CSS情況下也以一種文檔格式顯示,並且是容易閱讀的;搜尋引擎的爬蟲也依賴於HTML標記來確定上下文和各個關鍵字的權重,利於SEO;使閱讀原始碼的人對網站更容易將網站分塊,便於閱讀維護理解。

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

在用戶沒有與網際網路連接時,可以正常訪問站點或應用,在用戶與網際網路連接時,更新用戶機器上的緩存文件。原理:HTML5的離線存儲是基於一個新建的.appcache文件的緩存機制(不是存儲技術),通過這個文件上的解析清單離線存儲資源,這些資源就會像cookie一樣被存儲了下來。之後當網絡在處於離線狀態下時,瀏覽器會通過被離線存儲的數據進行頁面展示。如何使用:1、頁面頭部像下面一樣加入一個manifest的屬性;2、在cache.manifest文件的編寫離線存儲的資源;    CACHE MANIFEST    #v0.11    CACHE:    js/app.js    css/style.css    NETWORK:    resourse/logo.png    FALLBACK:    / /offline.html3、在離線狀態時,操作window.applicationCache進行需求實現。

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

在線的情況下,瀏覽器發現html頭部有manifest屬性,它會請求manifest文件,如果是第一次訪問app,那麼瀏覽器就會根據manifest文件的內容下載相應的資源並且進行離線存儲。如果已經訪問過app並且資源已經離線存儲了,那麼瀏覽器就會使用離線的資源加載頁面,然後瀏覽器會對比新的manifest文件與舊的manifest文件,如果文件沒有發生改變,就不做任何操作,如果文件改變了,那麼就會重新下載文件中的資源並進行離線存儲。離線的情況下,瀏覽器就直接使用離線存儲的資源。

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

cookie是網站為了標示用戶身份而儲存在用戶本地終端(Client Side)上的數據(通常經過加密)。cookie數據始終在同源的http請求中攜帶(即使不需要),記會在瀏覽器和伺服器間來回傳遞。sessionStorage和localStorage不會自動把數據發給伺服器,僅在本地保存。存儲大小: cookie數據大小不能超過4k。 sessionStorage和localStorage 雖然也有存儲大小的限制,但比cookie大得多,可以達到5M或更大。有期時間:localStorage    存儲持久數據,瀏覽器關閉後數據不丟失除非主動刪除數據;sessionStorage  數據在當前瀏覽器窗口關閉後自動刪除。cookie          設置的cookie過期時間之前一直有效,即使窗口或瀏覽器關閉

iframe有那些缺點?

*iframe會阻塞主頁面的Onload事件;*搜尋引擎的檢索程序無法解讀這種頁面,不利於SEO;*iframe和主頁面共享連接池,而瀏覽器對相同域的連接有限制,所以會影響頁面的並行加載。使用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。

如何實現瀏覽器內多個標籤頁之間的通信? (阿里)

WebSocket、SharedWorker;也可以調用localstorge、cookies等本地存儲方式;localstorge另一個瀏覽上下文裡被添加、修改或刪除時,它都會觸發一個事件,我們通過監聽事件,控制它的值來進行頁面信息通信;注意quirks:Safari 在無痕模式下設置localstorge值時會拋出 QuotaExceededError 的異常;

webSocket如何兼容低瀏覽器?(阿里)

Adobe Flash Socket 、ActiveX HTMLFile (IE) 、基於 multipart 編碼發送 XHR 、基於長輪詢的 XHR

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

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

如何在頁面上實現一個圓形的可點擊區域?

1、map+area或者svg2、border-radius3、純js實現 需要求一個點在不在圓上簡單算法、獲取滑鼠坐標等等

實現不使用 border 畫出1px高的線,在不同瀏覽器的標準模式與怪異模式下都能保持一致的效果。

<div style="height:1px;overflow:hidden;background:red"></div>

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

區分用戶是計算機還是人的公共全自動程序。可以防止惡意破解密碼、刷票、論壇灌水;有效防止黑客對某一個特定註冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試。

title與h1的區別、b與strong的區別、i與em的區別?

title屬性沒有明確意義只表示是個標題,H1則表示層次明確的標題,對頁面信息的抓取也有很大的影響;strong是標明重點內容,有語氣加強的含義,使用閱讀設備閱讀網絡時:<strong>會重讀,而<B>是展示強調內容。i內容展示為斜體,em表示強調的文本;Physical Style Elements -- 自然樣式標籤b, i, u, s, preSemantic Style Elements -- 語義樣式標籤strong, em, ins, del, code應該準確使用語義樣式標籤, 但不能濫用, 如果不能確定時首選使用自然樣式標籤。


相關焦點

  • 超全整理前端開發面試題——CSS篇(2016年)
    補充:1. static(默認的)/relative:簡單說就是它的父元素的內容框(即去掉padding的部分)2. absolute: 向上找最近的定位為absolute/relative的元素3. fixed: 它的containing block一律為根元素(html/body),根元素也是initial containing blockCSS裡的visibility屬性有個
  • 2020Web前端開發常見面試題及答案全解析-開課吧Web前端
    Web前端開發問題一:前端如何進行seo優化,以下說法錯誤的是:A.爬蟲依賴於標籤來確定上下文和各個關鍵字的權重;C語義化是為了利於人的閱讀不管html還是html5或者是xml都可儘量做到語義化。解析:title 指圖片的信息(滑鼠移到圖片上顯示)、alt 指圖片不顯示時顯示的文字以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後酷仔每日均會提供Python及Web相關的習題。
  • 2020 年前端面試複習必讀文章【超三百篇】
    : https://zhuanlan.zhihu.com/p/25028045[222]前端基礎篇之HTTP協議: https://juejin.im/post/5cd0438c6fb9a031ec6d3ab2[223]都9102年了,還問GET和POST的區別: https://segmentfault.com/a/1190000018129846[224]
  • 2020Web前端開發常見面試題匯總-開課吧
    2020Web前端面試題了解一些面試題及答案,可以幫助自己順利通過面試哦。以下是小編為大家整理的web前端面試題及答案,供各位參考。Web前端面試題:異步請求適合在哪個生命周期調?解析:官實例的異步請求是在mounted命周期中調的,實際上也可以在created命周期中調。Web前端面試題:各個生命周期的作用是什麼?
  • 【乾貨】各大網際網路公司前端筆試面試題–HTML,CSS篇
    很多面試題是我自己面試BAT親身經歷碰到的。整理分享出來希望更多的前端er共同進步吧,不僅適用於求職者,對於鞏固複習前端基礎更是大有裨益。而更多的題目是我一路以來收集的,也有往年的,答案不確保一定正確,如有錯誤或有更好的解法,還請斧正。前面幾題是會很基礎,越下越有深度。1.你做的頁面在哪些流覽器測試過?
  • 開課吧:2020Web前端開發常見面試題及答案,提高面試通過率!
    Web前端開發面試題及答案問題:實現節流函數(throttle)解析:防抖函數原理:規定在個單位時間內,只能觸發次函數。以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後小科每日均會提供Python、Web及MySQL資料庫相關的習題。學習沒有捷徑,希望大家都能少走一些彎路,順利找到工作!
  • web前端開發面試題一之(html,css)
    看全部問題和答案點這裡(https://github.com/markyun/My-blog/tree/master/Front-end-Developer-Questions/Questions-and-Answers)本文由我收集總結了一些前端面試題,初學者閱後也要用心鑽研其中的原理,重要知識需要系統學習、透徹學習,形成自己的知識鏈。
  • 前端開發相關速查表Cheatsheets整理集合
    對於前端開發工程師來說需要花大量的時間去閱讀我們所使用的語言或相關類庫、框架的 API 文檔。當自己寫出函式庫時也會為自己的函式庫加上適當的文檔說明,這是一個避免不了的過程。畢竟前端開發工程師必須把腦力花在邏輯思考上,而不是記憶這些 API 文檔。
  • 好程式設計師web前端培訓分享HTML/CSS部分面試題
    好程式設計師web前端培訓分享HTML/CSS部分面試題。準備參加web前端面試的小夥伴們一起看一看吧,希望能夠對大家有所幫助! /* For IE8+ */ *color:#f00; /* For IE7 and earlier */ _color:#ff0; /* For IE6 and earlier */ } // 3、選擇符Hack * html
  • web前端開發工程師面試題大全
    最近看到web群裡的人,特別關心面試web前端開發工程師時,面試官都會問那些問題,今天我整理了一份,web前端開發工程師崗位面試題的大全,大家可看看
  • 2020年web前端開發面試題及解析(三)
    最新2020年的web前端開發面試題:問題1:px、em、rem、vw單位分別有什麼區別
  • 阿里盒馬前端面試,你要的答案來了
    最近有一篇阿里盒馬前端面試題被各大社區轉載,而且據稱這是阿里校招面試題,我看完以後,簡直驚呆了,打死都不信。今天特意針對他們發的一面,把對應的答案整理了一些。請先做個自我介紹 我是河畔一角,11年畢業,畢業後先從事JAVA方向開發,後在13年轉為前端。
  • 2020Web前端面試題匯總-開課吧
    Web前端面試題說說前端中的事件流?以上就是小科今天整理提供的Web前端開發面試題,希望為Web前端同學提供了有用的面試素材,以後小科每日均會提供Python、Web及MySQL資料庫相關的習題。學習沒有捷徑,希望大家都能少走一些彎路,順利找到工作!
  • 2020最新Web前端經典面試題試題及答案(持續更新)-開課吧
    Web前端面試題Web前端面試題:說說你對webpack的看法解析:webpack是一個模塊打包工具,可以使用webpack能很好的管理、打包web開發中所用到的HTML、js、css以及各種靜態文件(圖片、字體等),讓開發過程更加高效。對於不同類型的資源,webpack有對應的模塊加載器。webpack模塊打包器會分析模塊間的依賴關係,最後生成了優化且合併後的靜態資源。
  • Web前端面試題目匯總
    /03/15/2016年Web前端面試題目匯總/ (點擊尾部閱讀原文前往)以下是收集一些面試中經常會遇到的經典面試題以及自己面試過程中無法解決的問題,通過對知識的整理以及經驗的總結,重新鞏固自身的前端基礎知識,如有錯誤或更好的答案,歡迎指正。
  • 阿里盒馬前端校招面試,你要的答案來了
    最近有一篇阿里盒馬前端面試題被各大社區轉載,而且據稱這是阿里校招面試題,我看完以後,簡直驚呆了,打死都不信
  • 前端面試題——Vue
    前言前幾天整理了一些 html + css + JavaScript 常見的面試題(https://segmentfault.com/u/youdangde_5c8b208a23f95/articles),然後現在也是找了一些在 Vue 方面經常出現的面試題,留給自己查看消化,也分享給有需要的小夥伴。
  • 每日一學:2020Web前端面試題匯總,提高面試成功機率-開課吧
    本文收錄了一些在Web前端開發面試中經常會遇到的面試題及答案,希望對大家有所幫助,若有所疏漏歡迎指正。2020Web前端面試題Web前端面試題:怎樣查找字符串中出現最多的字符和個數?{ num= $0.length;char = $1;}});console.log(`字符最多的是${char},出現了${num}次`);Web前端面試題題
  • 2020 前端面試 | 第一波面試題總結
    前言 先介紹一下自己的情況吧 內蒙古呼和浩特某大學畢業,專科,計算機多媒體專業畢業 16年出來工作,工作經驗四年,之前主要做平面相關
  • 2020 前端面試|第二波面試題總結
    前言哈,看樣子年後跳槽還是大家比較關心的一件事情了,繼第一波面試題匯總的反響和評論,觀看和點讚的朋友們很多,我繼續將後續面試的一些內容寫出來,有很多面試題答案我自己寫的比較含糊,但是在面試的過程中是描述的表較多的。畢竟寫文字要寫出來太多了。我也只是寫了一個大概,如果對答案不太滿意的同學可以自行查詢標準答案哈。