前端開發(fā)面試題總結(jié)之——HTML


相關(guān)知識點

web標準、 web語義化、 瀏覽器內(nèi)核赐稽、 兼容性、 html5...

題目&答案

  • Doctype作用浑侥?嚴格模式與混雜模式如何區(qū)分姊舵?它們有何意義?
(1)<!DOCTYPE>聲明位于HTML文檔中的第一行,處于<html>標簽之前寓落,用于告知瀏覽器的解析器用什么文檔標準解析這個文檔括丁。DOCTYPE不存在或格式不正確會導(dǎo)致文檔以兼容模式呈現(xiàn)。
(2)標準模式的排版和JS運作模式都是以該瀏覽器支持的最高標準運行伶选。在兼容模式中史飞,頁面以寬松的向后兼容的方式顯示,模擬老式瀏覽器的行為以防止站點無法工作仰税。
 (3)如果HTML文檔包含形式完整的DOCTYPE构资,那么他一般以標準模式呈現(xiàn)。對于HTML4.01文檔陨簇,包含嚴格DTD的DOCTYPE常常導(dǎo)致頁面已標準模式呈現(xiàn)吐绵。DOCTYPE不存在或者格式不正確會導(dǎo)致文檔已混雜模式呈現(xiàn)。
  • 請描述一個網(wǎng)頁從開始請求道最終顯示的完整過程河绽?
一個網(wǎng)頁從請求到最終顯示的完整過程一般可以分為如下7個步驟:
(1)在瀏覽器中輸入網(wǎng)址己单;
(2)發(fā)送至DNS服務(wù)器并獲得域名對應(yīng)的WEB服務(wù)器IP地址;
(3)與WEB服務(wù)器建立TCP連接耙饰;
(4)瀏覽器向WEB服務(wù)器的IP地址發(fā)送相應(yīng)的HTTP請求纹笼;
(5)WEB服務(wù)器響應(yīng)請求并返回指定URL的數(shù)據(jù),或錯誤信息苟跪,如果設(shè)定重定向廷痘,則重定向到新的URL地址;
(6)瀏覽器下載數(shù)據(jù)后解析HTML源文件件已,解析的過程中實現(xiàn)對頁面的排版笋额,解析完成后在瀏覽器中顯示基礎(chǔ)頁面;
(7)分析頁面中的超鏈接并顯示在當前頁面拨齐,重復(fù)以上過程直至無超鏈接需要發(fā)送鳞陨,完成全部數(shù)據(jù)顯示。
  • HTML5 為什么只需要寫 <!DOCTYPE HTML>?
(1)HTML5不基于SGML厦滤,因此不需要對DTD進行引用援岩,但是需要DOCTYPE來規(guī)范瀏覽器的行為(讓瀏覽器按照它們應(yīng)該的方式來運行);
(2)HTML4.01基于SGML掏导,所以需要對DTD進行引用享怀,才能讓瀏覽器知道該文檔所使用的文檔類型。
  • 行內(nèi)元素有哪些趟咆?塊級元素有哪些添瓷? 空(void)元素有那些?
***行內(nèi)元素***:
a - 錨點值纱,em - 強調(diào)鳞贷,strong - 粗體強調(diào),span - 定義文本內(nèi)區(qū)塊虐唠,i - 斜體,img - 圖片,b - 粗體搀愧,label - 表格標簽,select - 項目選擇疆偿,textarea - 多行文本輸入框咱筛,sub - 下標,
sup - 上標杆故,q - 短引用迅箩;
***塊元素***:
div - 常用塊級,dl - 定義列表处铛,dt饲趋,dd,ul- 非排序列表罢缸,li篙贸,ol-排序表單,p-段落枫疆,h1,h2敷鸦,h3息楔,h4,h5-標題扒披,table-表格值依,fieldset - form控制組,form - 表單碟案,
***空元素***:
br-換行愿险,hr-水平分割線;
  • 介紹一下你對瀏覽器內(nèi)核的理解?
瀏覽器最重要或者說核心的部分是“Rendering Engine”辆亏,可大概譯為“渲染引擎”风秤,不過我們一般習(xí)慣將之稱為“瀏覽器內(nèi)核”。負責(zé)對網(wǎng)頁語法的解釋(如標準通用標記語言下的一個應(yīng)用HTML扮叨、JavaScript)并渲染(顯示)網(wǎng)頁缤弦。 所以,通常所謂的瀏覽器內(nèi)核也就是瀏覽器所采用的渲染引擎彻磁,渲染引擎決定了瀏覽器如何顯示網(wǎng)頁的內(nèi)容以及頁面的格式信息碍沐。不同的瀏覽器內(nèi)核對網(wǎng)頁編寫語法的解釋也有不同,因此同一網(wǎng)頁在不同的內(nèi)核的瀏覽器里的渲染(顯示)效果也可能不同衷蜓,這也是網(wǎng)頁編寫者需要在不同內(nèi)核的瀏覽器中測試網(wǎng)頁顯示效果的原因累提。
  • 常見的瀏覽器內(nèi)核有哪些?
Trident內(nèi)核:IE,MaxThon,TT,The World,360,搜狗瀏覽器等磁浇。[又稱MSHTML]
Gecko內(nèi)核:Netscape6及以上版本刻恭,F(xiàn)F,MozillaSuite/SeaMonkey等。
Presto內(nèi)核:Opera7及以上扯夭。      [Opera內(nèi)核原為:Presto鳍贾,現(xiàn)為:Blink;]
Webkit內(nèi)核:Safari,Chrome等。   [ Chrome的:Blink(WebKit的分支)]
EdgeHTML內(nèi)核:Microsoft Edge交洗。  [此內(nèi)核其實是從MSHTML fork而來骑科,刪掉了幾乎所有的IE私有特性]

詳細文章:瀏覽器內(nèi)核的解析和對比——依水間

  • html5有哪些新特性、移除了那些元素构拳?如何處理HTML5新標簽的瀏覽器兼容問題咆爽?如何區(qū)分 ?
***新增了以下的幾大類元素***
內(nèi)容元素,article置森、footer斗埂、header、nav凫海、section呛凶。
表單控件,calendar行贪、date漾稀、time、email建瘫、url崭捍、search。
控件元素啰脚,webworker, websockt, Geolocation殷蛇。
***移出的元素有下列這些****
顯現(xiàn)層元素:basefont,big,center粒梦,font, s亮航,strike,tt谍倦,u塞赂。
性能較差元素:frame,frameset昼蛀,noframes宴猾。
HTML5已形成了最終的標準,概括來講叼旋,它主要是關(guān)于圖像仇哆,位置,存儲夫植,多任務(wù)等功能的增加讹剔。
新增的元素有繪畫 canvas ,用于媒介回放的 video 和 audio 元素详民,本地離線存儲 localStorage 長期存儲數(shù)據(jù)延欠,瀏覽器關(guān)閉后數(shù)據(jù)不丟失,而sessionStorage的數(shù)據(jù)在瀏覽器關(guān)閉后自動刪除沈跨,此外由捎,還新增了以下的幾大類元素。
內(nèi)容元素饿凛,article狞玛、footer、header涧窒、nav心肪、section。
表單控件纠吴,calendar硬鞍、date、time呜象、email膳凝、url、search恭陡。
控件元素,webworker, websockt, Geolocation上煤。
***移出的元素有下列這些***
顯現(xiàn)層元素:basefont休玩,big,center,font, s拴疤,strike永部,tt,u呐矾。
性能較差元素:frame苔埋,frameset,noframes蜒犯。
***新的技術(shù)***
canvas,svg,webworker, websocket, Geolocation......
  • 簡述一下你對HTML語義化的理解组橄。
(1)HTML語義化讓頁面的內(nèi)容結(jié)構(gòu)化,結(jié)構(gòu)更清晰罚随,便于對瀏覽器玉工、搜索引擎解析;
(2)即使在沒有樣式CSS的情況下也能以一種文檔格式顯示淘菩,并且是容易閱讀的遵班;
(3)搜索引擎的爬蟲也依賴于HTML標記來確定上下文和各個關(guān)鍵字的權(quán)重,有利于SEO潮改;
(4)使閱讀源代碼的人更容易將網(wǎng)站分塊狭郑,便于閱讀、維護和理解汇在。
  • HTML5的離線存儲怎么使用翰萨?能否解釋一下工作原理?
在用戶沒有連接英特網(wǎng)時趾疚,可以正常訪問站點和應(yīng)用缨历;在用戶連接英特網(wǎng)時,更新用戶機器上的緩存文件糙麦。
`原理`:HTML5的離線存儲是基于一個新建的 `.appcache` 文件的緩存機制(并非存儲技術(shù))辛孵,通過這個文件上的解析清單離線存儲資源,這些資源就會像cookie一樣被存儲下來赡磅。之后當網(wǎng)絡(luò)處于離線狀態(tài)下時魄缚,瀏覽器會通過被離線存儲的數(shù)據(jù)進行頁面展示。
使用方法:
(1) 在頁面頭部像下面一樣加入一個 manifest 的屬性焚廊;
(2) 在 cache.manifest 文件里編寫離線存儲資源冶匹;
     CACHE MANIFEST
     #v0.11
     CACHE:
       js/app.js
       css/style.css
     NETWORK:
       resource/logo.png
     FALLBACK:
       / /offline.html
(3) 在離線狀態(tài)時,操作 window.applicationCache 進行需求實現(xiàn)咆瘟;

詳細使用教程:有趣的HTML5:離線存儲——segmentfault

  • 瀏覽器是怎么對HTML5的離線儲存資源進行管理和加載的呢嚼隘?
在線情況下,瀏覽器發(fā)現(xiàn)html頭部有manifest屬性袒餐,它會請求manifest文件飞蛹,如果是第一次訪問app谤狡,那么瀏覽器就會根據(jù)manifest文件的內(nèi)容下載相應(yīng)的資源并且進行離線存儲。如果已經(jīng)訪問過app并且資源已經(jīng)離線存儲了卧檐,那么瀏覽器就會使用離線的資源加載頁面墓懂,然后瀏覽器會對比新的manifest文件與舊的manifest文件,如果文件沒有發(fā)生改變霉囚,就不做任何操作捕仔,如果文件改變了,那么就會重新下載文件中的資源并進行離線存儲盈罐。
離線情況下榜跌,瀏覽器就直接使用離線存儲的資源。
  • 請描述一下 cookies暖呕,sessionStorage 和 localStorage 的區(qū)別斜做?
Web Storage有兩種形式:LocalStorage(本地存儲)和sessionStorage(會話存儲)。這兩種方式都允許開發(fā)者使用js設(shè)置的鍵值對進行操作湾揽,在在重新加載不同的頁面的時候讀出它們瓤逼。這一點與cookie類似。
(1)與cookie不同的是:Web Storage數(shù)據(jù)完全存儲在客戶端库物,不需要通過瀏覽器的請求將數(shù)據(jù)傳給服務(wù)器霸旗,因此x相比cookie來說能夠存儲更多的數(shù)據(jù),大概5M左右戚揭。
(2)LocalStorage和sessionStorage功能上是一樣的诱告,但是存儲持久時間不一樣。
LocalStorage:瀏覽器關(guān)閉了數(shù)據(jù)仍然可以保存下來民晒,并可用于所有同源(相同的域名精居、協(xié)議和端口)窗口(或標簽頁);
sessionStorage:數(shù)據(jù)存儲在窗口對象中潜必,窗口關(guān)閉后對應(yīng)的窗口對象消失靴姿,存儲的數(shù)據(jù)也會丟失。
注意:sessionStorage 都可以用localStorage 來代替磁滚,但需要記住的是佛吓,在窗口或者標簽頁關(guān)閉時,使用sessionStorage 存儲的數(shù)據(jù)會丟失垂攘。
(3)使用 local storage和session storage主要通過在js中操作這兩個對象來實現(xiàn)泳唠,分別為window.localStorage和window.sessionStorage. 這兩個對象均是Storage類的兩個實例疚沐,自然也具有Storage類的屬性和方法砸逊。
  • iframe 有哪些缺點笼平?
(1)iframe會阻塞主頁面的Onload事件;
(2)搜索引擎的檢索程序無法解讀這種頁面陨仅,不利于SEO唁影;
(3)iframe和主頁面共享連接池耕陷,而瀏覽器對相同域的連接有限制掂名,所以會影響頁面的并行加載据沈。
(4)使用iframe之前需要考慮這兩個缺點。如果需要使用iframe饺蔑,最好通過JavaScript動態(tài)給iframe添加src屬性值锌介,這樣可以繞開以上兩個問題。
  • Label的作用是什么猾警?如何使用孔祸?
label標簽來定義表單控制間的關(guān)系,當用戶選擇該標簽時发皿,瀏覽器會自動將焦點轉(zhuǎn)到和標簽相關(guān)的表單控件上崔慧。
<label for="Name">Number:</label>
<input type="text" name="Name" id="Name" />
<label>Date:<input type="text" name="B" /></label>
  • HTML5的form如何關(guān)閉自動完成功能?
給不想要提示的 form 或下面某個 input 設(shè)置為 `autocomplete = off`穴墅。
  • 如何實現(xiàn)瀏覽器內(nèi)多個標簽頁之間的通信惶室?(阿里)
調(diào)用 localStorage、cookies 等本地存儲方式
  • webSocket 如何兼容低瀏覽器玄货?(阿里)
Adobe Flash Socket
ActiveX HTMLFile(IE)
基于 multipart 編碼發(fā)送 XHR
基于長輪詢的 XHR
  • 頁面可見性(Page Visibility) API可以有哪些用途皇钞?
在頁面被切換到其他后臺進程的時候,自動暫停音樂或視頻的播放松捉。
  • 如何在頁面上實現(xiàn)一個圓形的可點擊區(qū)域夹界?
(1) map + area 或者 svg
(2) border-radius
(3) 純js實現(xiàn),需要求一個點在不在圓上的簡單算法隘世、獲取鼠標坐標等等
  • 實現(xiàn) 不使用 border 畫出 1px 高的線可柿,在不同瀏覽器的標準模式與怪異模式下都能保持一致的效果?
<div style="height:1px;overflow:hidden;background:#ccc"></div>
  • 網(wǎng)頁驗證碼是干什么用的丙者?是為了解決什么安全問題复斥?
可以防止:惡意破解密碼、刷票蔓钟、論壇灌水永票,有效防止某個黑客對某一個特定注冊用戶用特定程序暴力破解方式進行不斷的登陸嘗試,實際上用驗證碼是現(xiàn)在很多網(wǎng)站通行的方式滥沫,我們利用比較簡易的方式實現(xiàn)了這個功能侣集。這個問題可以由計算機生成并評判,但是必須只有人類才能解答兰绣。由于計算機無法解答CAPTCHA的問題世分,所以回答出問題的用戶就可以被認為是人類。

相關(guān)系列:
前端開發(fā)面試題總結(jié)之——CSS3
前端開發(fā)面試題總結(jié)之——JAVASCRIPT(一)
前端開發(fā)面試題總結(jié)之——JAVASCRIPT(二)
前端開發(fā)面試題總結(jié)之——JAVASCRIPT(三)

以上所有資料來源網(wǎng)絡(luò)缀辩,如有不對的地方希望及時告知臭埋,謝謝踪央!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市瓢阴,隨后出現(xiàn)的幾起案子畅蹂,更是在濱河造成了極大的恐慌,老刑警劉巖荣恐,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件液斜,死亡現(xiàn)場離奇詭異,居然都是意外死亡叠穆,警方通過查閱死者的電腦和手機少漆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來硼被,“玉大人示损,你說我怎么就攤上這事∪铝颍” “怎么了检访?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長论巍。 經(jīng)常有香客問我烛谊,道長,這世上最難降的妖魔是什么嘉汰? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任丹禀,我火速辦了婚禮,結(jié)果婚禮上鞋怀,老公的妹妹穿的比我還像新娘双泪。我一直安慰自己,他們只是感情好密似,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布焙矛。 她就那樣靜靜地躺著,像睡著了一般残腌。 火紅的嫁衣襯著肌膚如雪村斟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天抛猫,我揣著相機與錄音蟆盹,去河邊找鬼。 笑死闺金,一個胖子當著我的面吹牛逾滥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播败匹,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼寨昙,長吁一口氣:“原來是場噩夢啊……” “哼讥巡!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舔哪,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤欢顷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后尸红,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吱涉,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年外里,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片特石。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盅蝗,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出姆蘸,到底是詐尸還是另有隱情墩莫,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布逞敷,位于F島的核電站狂秦,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏推捐。R本人自食惡果不足惜裂问,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望牛柒。 院中可真熱鬧堪簿,春花似錦、人聲如沸皮壁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛾魄。三九已至虑瀑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間滴须,已是汗流浹背舌狗。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留描馅,地道東北人把夸。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像铭污,于是被迫代替她去往敵國和親恋日。 傳聞我的和親對象是個殘疾皇子膀篮,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內(nèi)容

  • 題目&答案 Doctype作用?嚴格模式與混雜模式如何區(qū)分岂膳?它們有何意義? 請描述一個網(wǎng)頁從開始請求道最終顯示的完...
    heyunqiang99閱讀 339評論 0 5
  • 本文由我收集總結(jié)了一些前端面試題誓竿,初學(xué)者閱后也要用心鉆研其中的原理,重要知識需要系統(tǒng)學(xué)習(xí)谈截、透徹學(xué)習(xí)筷屡,形成自己的知識...
    王鈺峰閱讀 487評論 0 2
  • “每18至24個月,前端都會難一倍”——赫門 “2015深JS大會《前端服務(wù)化之路》主題演講” 知識點 對Web標...
    曉松閱讀 7,817評論 5 167
  • 1. 瀏覽器頁面有哪三層構(gòu)成簸喂,分別是什么毙死,作用是什么? 構(gòu)成:結(jié)構(gòu)層、表示層喻鳄、行為層分別是:HTML扼倘、CSS、Ja...
    程序猿人王小賤閱讀 1,872評論 1 11
  • jquery選擇器和css選擇器很相似
    lmem閱讀 103評論 0 0