1 你做的頁面在哪些流覽器測試過?這些瀏覽器的內(nèi)核分別是什么? IE: trident內(nèi)核 Firefox:gecko內(nèi)核 Safari:webkit內(nèi)核 O
IE: trident內(nèi)核
Firefox:gecko內(nèi)核
Safari:webkit內(nèi)核
Opera:以前是presto內(nèi)核,Opera現(xiàn)已改用Google Chrome的Blink內(nèi)核
Chrome:Blink(基于webkit,Google與Opera Software共同開發(fā))
2.每個HTML文件里開頭都有個很重要的東西,Doctype,知道這是干什么的嗎?
答案: 聲明位于文檔中的最前面的位置,處于 標簽之前。此標簽可告知瀏覽器文檔使用哪種 HTML 或 XHTML 規(guī)范。(重點:告訴瀏覽器按照何種規(guī)范解析頁面)
3.Quirks模式是什么?它和Standards模式有什么區(qū)別
答案:
從IE6開始,引入了Standards模式,標準模式中,瀏覽器嘗試給符合標準的文檔在規(guī)范上的正確處理達到在指定瀏覽器中的程度。
在IE6之前CSS還不夠成熟,所以IE5等之前的瀏覽器對CSS的支持很差, IE6將對CSS提供更好的支持,然而這時的問題就來了,因為有很多頁面是基于舊的布局方式寫的,而如果IE6 支持CSS則將令這些頁面顯示不正常,如何在即保證不破壞現(xiàn)有頁面,又提供新的渲染機制呢?
在寫程序時我們也會經(jīng)常遇到這樣的問題,如何保證原來的接口不變,又提供更強大的功能,尤其是新功能不兼容舊功能時。遇到這種問題時的一個常見做法是增加參數(shù)和分支,即當某個參數(shù)為真時,我們就使用新功能,而如果這個參數(shù) 不為真時,就使用舊功能,這樣就能不破壞原有的程序,又提供新功能。IE6也是類似這樣做的,它將DTD當成了這個“參數(shù)”,因為以前的頁面大家都不會去寫DTD,所以IE6就假定 如果寫了DTD,就意味著這個頁面將采用對CSS支持更好的布局,而如果沒有,則采用兼容之前的布局方式。這就是Quirks模式(怪癖模式,詭異模式,怪異模式)。
區(qū)別:
總體會有布局、樣式解析和腳本執(zhí)行三個方面的區(qū)別。
盒模型:在W3C標準中,如果設置一個元素的寬度和高度,指的是元素內(nèi)容的寬度和高度,而在Quirks 模式下,IE的寬度和高度還包含了padding和border。
設置行內(nèi)元素的高寬:在Standards模式下,給等行內(nèi)元素設置wdith和height都不會生效,而在quirks模式下,則會生效。
設置百分比的高度:在standards模式下,一個元素的高度是由其包含的內(nèi)容來決定的,如果父元素沒有設置百分比的高度,子元素設置一個百分比的高度是無效的用margin:0 auto設置水平居中:使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下卻會失效。
(還有很多,答出什么不重要,關鍵是看他答出的這些是不是自己經(jīng)驗遇到的,還是說都是看文章看的,甚至完全不知道。)
4.div+css的布局較table布局有什么優(yōu)點?
改版的時候更方便 只要改css文件。
頁面加載速度更快、結構化清晰、頁面顯示簡潔。
表現(xiàn)與結構相分離。
易于優(yōu)化(seo)搜索引擎更友好,排名更容易靠前。
5.a:img的alt與title有何異同?b:strong與em的異同?
答案:
a:
alt(alt text):為不能顯示圖像、窗體或applets的用戶代理(UA),alt屬性用來指定替換文字。替換文字的語言由lang屬性指定。(在IE瀏覽器下會在沒有title時把alt當成 tool tip顯示)
title(tool tip):該屬性為設置該屬性的元素提供建議性的信息。
b:
strong:粗體強調(diào)標簽,強調(diào),表示內(nèi)容的重要性
em:斜體強調(diào)標簽,更強烈強調(diào),表示內(nèi)容的強調(diào)點
6.你能描述一下漸進增強和優(yōu)雅降級之間的不同嗎?
漸進增強 progressive enhancement:針對低版本瀏覽器進行構建頁面,保證最基本的功能,然后再針對高級瀏覽器進行效果、交互等改進和追加功能達到更好的用戶體驗。
優(yōu)雅降級 graceful degradation:一開始就構建完整的功能,然后再針對低版本瀏覽器進行兼容。
區(qū)別:優(yōu)雅降級是從復雜的現(xiàn)狀開始,并試圖減少用戶體驗的供給,而漸進增強則是從一個非常基礎的,能夠起作用的版本開始,并不斷擴充,以適應未來環(huán)境的需要。降級(功能衰減)意味著往回看;而漸進增強則意味著朝前看,同時保證其根基處于安全地帶。
“優(yōu)雅降級”觀點
“優(yōu)雅降級”觀點認為應該針對那些最高級、最完善的瀏覽器來設計網(wǎng)站。而將那些被認為“過時”或有功能缺失的瀏覽器下的測試工作安排在開發(fā)周期的最后階段,并把測試對象限定為主流瀏覽器(如 IE、Mozilla 等)的前一個版本。
在這種設計范例下,舊版的瀏覽器被認為僅能提供“簡陋卻無妨 (poor, but passable)” 的瀏覽體驗。你可以做一些小的調(diào)整來適應某個特定的瀏覽器。但由于它們并非我們所關注的焦點,因此除了修復較大的錯誤之外,其它的差異將被直接忽略。
“漸進增強”觀點
“漸進增強”觀點則認為應關注于內(nèi)容本身。
內(nèi)容是我們建立網(wǎng)站的誘因。有的網(wǎng)站展示它,有的則收集它,有的尋求,有的操作,還有的網(wǎng)站甚至會包含以上的種種,但相同點是它們?nèi)忌婕暗絻?nèi)容。這使得“漸進增強”成為一種更為合理的設計范例。這也是它立即被 Yahoo! 所采納并用以構建其“分級式瀏覽器支持 (Graded Browser Support)”策略的原因所在。
那么問題了。現(xiàn)在產(chǎn)品經(jīng)理看到IE6,7,8網(wǎng)頁效果相對高版本現(xiàn)代瀏覽器少了很多圓角,陰影(CSS3),要求兼容(使用圖片背景,放棄CSS3),你會如何說服他?
(自由發(fā)揮)
7.為什么利用多個域名來存儲網(wǎng)站資源會更有效?
CDN緩存更方便
突破瀏覽器并發(fā)限制
節(jié)約cookie帶寬
節(jié)約主域名的連接數(shù),優(yōu)化頁面響應速度
防止不必要的安全問題
8.請談一下你對網(wǎng)頁標準和標準制定機構重要性的理解。
(無標準答案)網(wǎng)頁標準和標準制定機構都是為了能讓web發(fā)展的更‘健康’,開發(fā)者遵循統(tǒng)一的標準,降低開發(fā)難度,開發(fā)成本,SEO也會更好做,也不會因為濫用代碼導致各種BUG、安全問題,最終提高網(wǎng)站易用性。
9.請描述一下cookies,sessionStorage和localStorage的區(qū)別?
sessionStorage用于本地存儲一個會話(session)中的數(shù)據(jù),這些數(shù)據(jù)只有在同一個會話中的頁面才能訪問并且當會話結束后數(shù)據(jù)也隨之銷毀。因此sessionStorage不是一種持久化的本地存儲,僅僅是會話級別的存儲。而localStorage用于持久化的本地存儲,除非主動刪除數(shù)據(jù),否則數(shù)據(jù)是永遠不會過期的。
web storage和cookie的區(qū)別
Web Storage的概念和cookie相似,區(qū)別是它是為了更大容量存儲設計的。Cookie的大小是受限的,并且每次你請求一個新的頁面的時候Cookie都會被發(fā)送過去,這樣無形中浪費了帶寬,另外cookie還需要指定作用域,不可以跨域調(diào)用。
除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法,不像cookie需要前端開發(fā)者自己封裝setCookie,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務器進行交互,作為HTTP規(guī)范的一部分而存在 ,而Web Storage僅僅是為了在本地“存儲”數(shù)據(jù)而生。
10.簡述一下src與href的區(qū)別。
答案:
src用于替換當前元素,href用于在當前文檔和引用資源之間確立聯(lián)系。
src是source的縮寫,指向外部資源的位置,指向的內(nèi)容將會嵌入到文檔中當前標簽所在位置;在請求src資源時會將其指向的資源下載并應用到文檔內(nèi),例如js腳本,img圖片和frame等元素。
當瀏覽器解析到該元素時,會暫停其他資源的下載和處理,直到將該資源加載、編譯、執(zhí)行完畢,圖片和框架等元素也如此,類似于將所指向資源嵌入當前標簽內(nèi)。這也是為什么將js腳本放在底部而不是頭部。
href是Hypertext Reference的縮寫,指向網(wǎng)絡資源所在位置,建立和當前元素(錨點)或當前文檔(鏈接)之間的鏈接,如果我們在文檔中添加
那么瀏覽器會識別該文檔為css文件,就會并行下載資源并且不會停止對當前文檔的處理。這也是為什么建議使用link方式來加載css,而不是使用@import方式。
11.知道的網(wǎng)頁制作會用到的圖片格式有哪些?
答案:
png-8,png-24,jpeg,gif,svg。
但是上面的那些都不是面試官想要的最后答案。面試官希望聽到是Webp,Apng。(是否有關注新技術,新鮮事物)
科普一下Webp:WebP格式,谷歌(google)開發(fā)的一種旨在加快圖片加載速度的圖片格式。圖片壓縮體積大約只有JPEG的2/3,并能節(jié)省大量的服務器帶寬資源和數(shù)據(jù)空間。Facebook Ebay等知名網(wǎng)站已經(jīng)開始測試并使用WebP格式。
在質(zhì)量相同的情況下,WebP格式圖像的體積要比JPEG格式圖像小40%。
Apng:全稱是“Animated Portable Network Graphics”, 是PNG的位圖動畫擴展,可以實現(xiàn)png格式的動態(tài)圖片效果。04年誕生,但一直得不到各大瀏覽器廠商的支持,直到日前得到 iOS safari 8的支持,有望代替GIF成為下一代動態(tài)圖標準。
12.知道什么是微格式嗎?談談理解。在前端構建中應該考慮微格式嗎?
答案:
微格式(Microformats)是一種讓機器可讀的語義化XHTML詞匯的集合,是結構化數(shù)據(jù)的開放標準。是為特殊應用而制定的特殊格式。
優(yōu)點:將智能數(shù)據(jù)添加到網(wǎng)頁上,讓網(wǎng)站內(nèi)容在搜索引擎結果界面可以顯示額外的提示。(應用范例:豆瓣,有興趣自行google)
13.在css/js代碼上線之后開發(fā)人員經(jīng)常會優(yōu)化性能,從用戶刷新網(wǎng)頁開始,一次js請求一般情況下有哪些地方會有緩存處理?
答案:dns緩存,cdn緩存,瀏覽器緩存,服務器緩存。
14.一個頁面上有大量的圖片(大型電商網(wǎng)站),加載很慢,你有哪些方法優(yōu)化這些圖片的加載,給用戶更好的體驗。
圖片懶加載,在頁面上的未可視區(qū)域可以添加一個滾動條事件,判斷圖片位置與瀏覽器頂端的距離與頁面的距離,如果前者小于后者,優(yōu)先加載。
如果為幻燈片、相冊等,可以使用圖片預加載技術,將當前展示圖片的前一張和后一張優(yōu)先下載。
如果圖片為css圖片,可以使用CSSsprite,SVGsprite,Iconfont、Base64等技術。
如果圖片過大,可以使用特殊編碼的圖片,加載時會先加載一張壓縮的特別厲害的縮略圖,以提高用戶體驗。
如果圖片展示區(qū)域小于圖片的真實大小,則因在服務器端根據(jù)業(yè)務需要先行進行圖片壓縮,圖片壓縮后大小與展示一致。
15.你如何理解HTML結構的語義化?
去掉或樣式丟失的時候能讓頁面呈現(xiàn)清晰的結構:
html本身是沒有表現(xiàn)的,我們看到例如
是粗體,字體大小2em,加粗;是加粗的,不要認為這是html的表現(xiàn),這些其實html默認的css樣式在起作用,所以去掉或樣式丟失的時候能讓頁面呈現(xiàn)清晰的結構不是語義化的HTML結構的優(yōu)點,但是瀏覽器都有有默認樣式,默認樣式的目的也是為了更好的表達html的語義,可以說瀏覽器的默認樣式和語義化的HTML結構是不可分割的。
屏幕閱讀器(如果訪客有視障)會完全根據(jù)你的標記來“讀”你的網(wǎng)頁.
例如,如果你使用的含語義的標記,屏幕閱讀器就會“逐個拼出”你的單詞,而不是試著去對它完整發(fā)音.
PDA、手機等設備可能無法像普通電腦的瀏覽器一樣來渲染網(wǎng)頁(通常是因為這些設備對CSS的支持較弱)
使用語義標記可以確保這些設備以一種有意義的方式來渲染網(wǎng)頁.理想情況下,觀看設備的任務是符合設備本身的條件來渲染網(wǎng)頁.
語義標記為設備提供了所需的相關信息,就省去了你自己去考慮所有可能的顯示情況(包括現(xiàn)有的或者將來新的設備).例如,一部手機可以選擇使一段標記了標題的文字以粗體顯示.而掌上電腦可能會以比較大的字體來顯示.無論哪種方式一旦你對文本標記為標題,您就可以確信讀取設備將根據(jù)其自身的條件來合適地顯示頁面.
搜索引擎的爬蟲也依賴于標記來確定上下文和各個關鍵字的權重
過去你可能還沒有考慮搜索引擎的爬蟲也是網(wǎng)站的“訪客”,但現(xiàn)在它們他們實際上是極其寶貴的用戶.沒有他們的話,搜索引擎將無法索引你的網(wǎng)站,然后一般用戶將很難過來訪問.
你的頁面是否對爬蟲容易理解非常重要,因為爬蟲很大程度上會忽略用于表現(xiàn)的標記,而只注重語義標記.
因此,如果頁面文件的標題被標記,而不是,那么這個頁面在搜索結果的位置可能會比較靠后.除了提升易用性外,語義標記有利于正確使用CSS和JavaScript,因為其本身提供了許多“鉤鉤”來應用頁面的樣式與行為.
SEO主要還是靠你網(wǎng)站的內(nèi)容和外部鏈接的。
便于團隊開發(fā)和維護
W3C給我們定了一個很好的標準,在團隊中大家都遵循這個標準,可以減少很多差異化的東西,方便開發(fā)和維護,提高開發(fā)效率,甚至實現(xiàn)模塊化開發(fā)。
16.談談以前端角度出發(fā)做好SEO需要考慮什么?
了解搜索引擎如何抓取網(wǎng)頁和如何索引網(wǎng)頁
你需要知道一些搜索引擎的基本工作原理,各個搜索引擎之間的區(qū)別,搜索機器人(SE robot 或叫 web crawler)如何進行工作,搜索引擎如何對搜索結果進行排序等等。
Meta標簽優(yōu)化
主要包括主題(Title),網(wǎng)站描述(Description),和關鍵詞(Keywords)。還有一些其它的隱藏文字比如Author(作者),Category(目錄),Language(編碼語種)等。
如何選取關鍵詞并在網(wǎng)頁中放置關鍵詞
搜索就得用關鍵詞。關鍵詞分析和選擇是SEO最重要的工作之一。首先要給網(wǎng)站確定主關鍵詞(一般在5個上下),然后針對這些關鍵詞進行優(yōu)化,包括關鍵詞密度(Density),相關度(Relavancy),突出性(Prominency)等等。
了解主要的搜索引擎
雖然搜索引擎有很多,但是對網(wǎng)站流量起決定作用的就那么幾個。比如英文的主要有Google,Yahoo,Bing等;中文的有百度,搜狗,有道等。不同的搜索引擎對頁面的抓取和索引、排序的規(guī)則都不一樣。還要了解各搜索門戶和搜索引擎之間的關系,比如AOL網(wǎng)頁搜索用的是Google的搜索技術,MSN用的是Bing的技術。
主要的互聯(lián)網(wǎng)目錄
Open Directory自身不是搜索引擎,而是一個大型的網(wǎng)站目錄,他和搜索引擎的主要區(qū)別是網(wǎng)站內(nèi)容的收集方式不同。目錄是人工編輯的,主要收錄網(wǎng)站主頁;搜索引擎是自動收集的,除了主頁外還抓取大量的內(nèi)容頁面。
按點擊付費的搜索引擎
搜索引擎也需要生存,隨著互聯(lián)網(wǎng)商務的越來越成熟,收費的搜索引擎也開始大行其道。最典型的有Overture和百度,當然也包括Google的廣告項目Google Adwords。越來越多的人通過搜索引擎的點擊廣告來定位商業(yè)網(wǎng)站,這里面也大有優(yōu)化和排名的學問,你得學會用最少的廣告投入獲得最多的點擊。
搜索引擎登錄
網(wǎng)站做完了以后,別躺在那里等著客人從天而降。要讓別人找到你,最簡單的辦法就是將網(wǎng)站提交(submit)到搜索引擎。如果你的是商業(yè)網(wǎng)站,主要的搜索引擎和目錄都會要求你付費來獲得收錄(比如Yahoo要299美元),但是好消息是(至少到目前為止)最大的搜索引擎Google目前還是免費,而且它主宰著60%以上的搜索市場。
鏈接交換和鏈接廣泛度(Link Popularity)
網(wǎng)頁內(nèi)容都是以超文本(Hypertext)的方式來互相鏈接的,網(wǎng)站之間也是如此。除了搜索引擎以外,人們也每天通過不同網(wǎng)站之間的鏈接來Surfing(“沖浪”)。其它網(wǎng)站到你的網(wǎng)站的鏈接越多,你也就會獲得更多的訪問量。更重要的是,你的網(wǎng)站的外部鏈接數(shù)越多,會被搜索引擎認為它的重要性越大,從而給你更高的排名。
合理的標簽使用