1.你做的頁面在哪些流覽器測試過?這些瀏覽器的內(nèi)核分別是什么?
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ā))
4.div+css的布局較table布局有什么優(yōu)點(diǎn)?
改版的時(shí)候更方便 只要改css文件疤坝。
頁面加載速度更快脊阴、結(jié)構(gòu)化清晰审洞、頁面顯示簡潔。
表現(xiàn)與結(jié)構(gòu)相分離痕支。
易于優(yōu)化(seo)搜索引擎更友好颁虐,排名更容易靠前。
6.你能描述一下漸進(jìn)增強(qiáng)和優(yōu)雅降級(jí)之間的不同嗎?
漸進(jìn)增強(qiáng) progressive enhancement:針對(duì)低版本瀏覽器進(jìn)行構(gòu)建頁面卧须,保證最基本的功能另绩,然后再針對(duì)高級(jí)瀏覽器進(jìn)行效果儒陨、交互等改進(jìn)和追加功能達(dá)到更好的用戶體驗(yàn)。
優(yōu)雅降級(jí) graceful degradation:一開始就構(gòu)建完整的功能笋籽,然后再針對(duì)低版本瀏覽器進(jìn)行兼容蹦漠。
7.為什么利用多個(gè)域名來存儲(chǔ)網(wǎng)站資源會(huì)更有效?
CDN緩存更方便
突破瀏覽器并發(fā)限制
節(jié)約cookie帶寬
節(jié)約主域名的連接數(shù)车海,優(yōu)化頁面響應(yīng)速度
防止不必要的安全問題
9.請(qǐng)描述一下cookies笛园,sessionStorage和localStorage的區(qū)別?
sessionStorage用于本地存儲(chǔ)一個(gè)會(huì)話(session)中的數(shù)據(jù)侍芝,這些數(shù)據(jù)只有在同一個(gè)會(huì)話中的頁面才能訪問并且當(dāng)會(huì)話結(jié)束后數(shù)據(jù)也隨之銷毀研铆。因此sessionStorage不是一種持久化的本地存儲(chǔ),僅僅是會(huì)話級(jí)別的存儲(chǔ)竭贩。而localStorage用于持久化的本地存儲(chǔ)蚜印,除非主動(dòng)刪除數(shù)據(jù),否則數(shù)據(jù)是永遠(yuǎn)不會(huì)過期的留量。
web storage和cookie的區(qū)別
Web Storage的概念和cookie相似窄赋,區(qū)別是它是為了更大容量存儲(chǔ)設(shè)計(jì)的。Cookie的大小是受限的楼熄,并且每次你請(qǐng)求一個(gè)新的頁面的時(shí)候Cookie都會(huì)被發(fā)送過去忆绰,這樣無形中浪費(fèi)了帶寬,另外cookie還需要指定作用域可岂,不可以跨域調(diào)用错敢。
除此之外,Web Storage擁有setItem,getItem,removeItem,clear等方法缕粹,不像cookie需要前端開發(fā)者自己封裝setCookie稚茅,getCookie。但是Cookie也是不可以或缺的:Cookie的作用是與服務(wù)器進(jìn)行交互平斩,作為HTTP規(guī)范的一部分而存在 亚享,而Web Storage僅僅是為了在本地“存儲(chǔ)”數(shù)據(jù)而生。
10.簡述一下src與href的區(qū)別绘面。
答案:
src用于替換當(dāng)前元素欺税,href用于在當(dāng)前文檔和引用資源之間確立聯(lián)系。
src是source的縮寫揭璃,指向外部資源的位置晚凿,指向的內(nèi)容將會(huì)嵌入到文檔中當(dāng)前標(biāo)簽所在位置;在請(qǐng)求src資源時(shí)會(huì)將其指向的資源下載并應(yīng)用到文檔內(nèi)瘦馍,例如js腳本歼秽,img圖片和frame等元素。
<script src =”js.js”></script>
當(dāng)瀏覽器解析到該元素時(shí)情组,會(huì)暫停其他資源的下載和處理哲银,直到將該資源加載扇售、編譯腕让、執(zhí)行完畢,圖片和框架等元素也如此,類似于將所指向資源嵌入當(dāng)前標(biāo)簽內(nèi)疏叨。這也是為什么將js腳本放在底部而不是頭部桐绒。
href是Hypertext Reference的縮寫沉填,指向網(wǎng)絡(luò)資源所在位置妄壶,建立和當(dāng)前元素(錨點(diǎn))或當(dāng)前文檔(鏈接)之間的鏈接,如果我們?cè)谖臋n中添加
<link href=”common.css” rel=”stylesheet”/>
那么瀏覽器會(huì)識(shí)別該文檔為css文件键耕,就會(huì)并行下載資源并且不會(huì)停止對(duì)當(dāng)前文檔的處理寺滚。這也是為什么建議使用link方式來加載css,而不是使用@import方式屈雄。
11.知道的網(wǎng)頁制作會(huì)用到的圖片格式有哪些村视?
答案:
png-8,png-24酒奶,jpeg蚁孔,gif,svg惋嚎。
但是上面的那些都不是面試官想要的最后答案杠氢。面試官希望聽到是Webp。(是否有關(guān)注新技術(shù)另伍,新鮮事物)
科普一下Webp:WebP格式鼻百,谷歌(google)開發(fā)的一種旨在加快圖片加載速度的圖片格式。圖片壓縮體積大約只有JPEG的2/3摆尝,并能節(jié)省大量的服務(wù)器帶寬資源和數(shù)據(jù)空間温艇。Facebook Ebay等知名網(wǎng)站已經(jīng)開始測試并使用WebP格式。
在質(zhì)量相同的情況下堕汞,WebP格式圖像的體積要比JPEG格式圖像小40%
13.在css/js代碼上線之后開發(fā)人員經(jīng)常會(huì)優(yōu)化性能勺爱,從用戶刷新網(wǎng)頁開始,一次js請(qǐng)求一般情況下有哪些地方會(huì)有緩存處理臼朗?
答案:dns緩存邻寿,cdn緩存蝎土,瀏覽器緩存视哑,服務(wù)器緩存。
14.一個(gè)頁面上有大量的圖片(大型電商網(wǎng)站)誊涯,加載很慢挡毅,你有哪些方法優(yōu)化這些圖片的加載,給用戶更好的體驗(yàn)暴构。
圖片懶加載跪呈,在頁面上的未可視區(qū)域可以添加一個(gè)滾動(dòng)條事件段磨,判斷圖片位置與瀏覽器頂端的距離與頁面的距離,如果前者小于后者耗绿,優(yōu)先加載苹支。
如果為幻燈片、相冊(cè)等误阻,可以使用圖片預(yù)加載技術(shù)债蜜,將當(dāng)前展示圖片的前一張和后一張優(yōu)先下載。
如果圖片為css圖片究反,可以使用CSSsprite寻定,SVGsprite,Iconfont精耐、Base64等技術(shù)狼速。
如果圖片過大,可以使用特殊編碼的圖片卦停,加載時(shí)會(huì)先加載一張壓縮的特別厲害的縮略圖向胡,以提高用戶體驗(yàn)。
如果圖片展示區(qū)域小于圖片的真實(shí)大小沫浆,則因在服務(wù)器端根據(jù)業(yè)務(wù)需要先行進(jìn)行圖片壓縮捷枯,圖片壓縮后大小與展示一致。
**15.你如何理解HTML結(jié)構(gòu)的語義化专执?
去掉或樣式丟失的時(shí)候能讓頁面呈現(xiàn)清晰的結(jié)構(gòu):
html本身是沒有表現(xiàn)的淮捆,我們看到例如<h1>
是粗體,字體大小2em本股,加粗攀痊;<strong>
是加粗的,不要認(rèn)為這是html的表現(xiàn)拄显,這些其實(shí)html默認(rèn)的css樣式在起作用苟径,所以去掉或樣式丟失的時(shí)候能讓頁面呈現(xiàn)清晰的結(jié)構(gòu)不是語義化的HTML結(jié)構(gòu)的優(yōu)點(diǎn),但是瀏覽器都有有默認(rèn)樣式躬审,默認(rèn)樣式的目的也是為了更好的表達(dá)html的語義棘街,可以說瀏覽器的默認(rèn)樣式和語義化的HTML結(jié)構(gòu)是不可分割的。
屏幕閱讀器(如果訪客有視障)會(huì)完全根據(jù)你的標(biāo)記來“讀”你的網(wǎng)頁.
例如,如果你使用的含語義的標(biāo)記,屏幕閱讀器就會(huì)“逐個(gè)拼出”你的單詞,而不是試著去對(duì)它完整發(fā)音.
PDA承边、手機(jī)等設(shè)備可能無法像普通電腦的瀏覽器一樣來渲染網(wǎng)頁(通常是因?yàn)檫@些設(shè)備對(duì)CSS的支持較弱)
使用語義標(biāo)記可以確保這些設(shè)備以一種有意義的方式來渲染網(wǎng)頁.理想情況下,觀看設(shè)備的任務(wù)是符合設(shè)備本身的條件來渲染網(wǎng)頁.
語義標(biāo)記為設(shè)備提供了所需的相關(guān)信息,就省去了你自己去考慮所有可能的顯示情況(包括現(xiàn)有的或者將來新的設(shè)備).例如,一部手機(jī)可以選擇使一段標(biāo)記了標(biāo)題的文字以粗體顯示.而掌上電腦可能會(huì)以比較大的字體來顯示.無論哪種方式一旦你對(duì)文本標(biāo)記為標(biāo)題,您就可以確信讀取設(shè)備將根據(jù)其自身的條件來合適地顯示頁面.
搜索引擎的爬蟲也依賴于標(biāo)記來確定上下文和各個(gè)關(guān)鍵字的權(quán)重
過去你可能還沒有考慮搜索引擎的爬蟲也是網(wǎng)站的“訪客”,但現(xiàn)在它們他們實(shí)際上是極其寶貴的用戶.沒有他們的話,搜索引擎將無法索引你的網(wǎng)站,然后一般用戶將很難過來訪問.
你的頁面是否對(duì)爬蟲容易理解非常重要,因?yàn)榕老x很大程度上會(huì)忽略用于表現(xiàn)的標(biāo)記,而只注重語義標(biāo)記.
因此,如果頁面文件的標(biāo)題被標(biāo)記,而不是,那么這個(gè)頁面在搜索結(jié)果的位置可能會(huì)比較靠后.除了提升易用性外,語義標(biāo)記有利于正確使用CSS和JavaScript,因?yàn)槠浔旧硖峁┝嗽S多“鉤鉤”來應(yīng)用頁面的樣式與行為.
SEO主要還是靠你網(wǎng)站的內(nèi)容和外部鏈接的遭殉。
便于團(tuán)隊(duì)開發(fā)和維護(hù)
W3C給我們定了一個(gè)很好的標(biāo)準(zhǔn),在團(tuán)隊(duì)中大家都遵循這個(gè)標(biāo)準(zhǔn)博助,可以減少很多差異化的東西险污,方便開發(fā)和維護(hù),提高開發(fā)效率,甚至實(shí)現(xiàn)模塊化開發(fā)蛔糯。
16.談?wù)勔郧岸私嵌瘸霭l(fā)做好SEO需要考慮什么拯腮?
了解搜索引擎如何抓取網(wǎng)頁和如何索引網(wǎng)頁
你需要知道一些搜索引擎的基本工作原理,各個(gè)搜索引擎之間的區(qū)別蚁飒,搜索機(jī)器人(SE robot 或叫 web crawler)如何進(jìn)行工作动壤,搜索引擎如何對(duì)搜索結(jié)果進(jìn)行排序等等。
Meta標(biāo)簽優(yōu)化
主要包括主題(Title)淮逻,網(wǎng)站描述(Description)狼电,和關(guān)鍵詞(Keywords)。還有一些其它的隱藏文字比如Author(作者)弦蹂,Category(目錄)肩碟,Language(編碼語種)等。
如何選取關(guān)鍵詞并在網(wǎng)頁中放置關(guān)鍵詞
搜索就得用關(guān)鍵詞凸椿。關(guān)鍵詞分析和選擇是SEO最重要的工作之一削祈。首先要給網(wǎng)站確定主關(guān)鍵詞(一般在5個(gè)上下),然后針對(duì)這些關(guān)鍵詞進(jìn)行優(yōu)化脑漫,包括關(guān)鍵詞密度(Density)髓抑,相關(guān)度(Relavancy),突出性(Prominency)等等优幸。
了解主要的搜索引擎
雖然搜索引擎有很多吨拍,但是對(duì)網(wǎng)站流量起決定作用的就那么幾個(gè)。比如英文的主要有Google网杆,Yahoo羹饰,Bing等;中文的有百度碳却,搜狗队秩,有道等。不同的搜索引擎對(duì)頁面的抓取和索引昼浦、排序的規(guī)則都不一樣馍资。還要了解各搜索門戶和搜索引擎之間的關(guān)系,比如AOL網(wǎng)頁搜索用的是Google的搜索技術(shù)关噪,MSN用的是Bing的技術(shù)鸟蟹。
主要的互聯(lián)網(wǎng)目錄
Open Directory自身不是搜索引擎,而是一個(gè)大型的網(wǎng)站目錄使兔,他和搜索引擎的主要區(qū)別是網(wǎng)站內(nèi)容的收集方式不同建钥。目錄是人工編輯的,主要收錄網(wǎng)站主頁火诸;搜索引擎是自動(dòng)收集的锦针,除了主頁外還抓取大量的內(nèi)容頁面荠察。
按點(diǎn)擊付費(fèi)的搜索引擎
搜索引擎也需要生存置蜀,隨著互聯(lián)網(wǎng)商務(wù)的越來越成熟奈搜,收費(fèi)的搜索引擎也開始大行其道。最典型的有Overture和百度盯荤,當(dāng)然也包括Google的廣告項(xiàng)目Google Adwords馋吗。越來越多的人通過搜索引擎的點(diǎn)擊廣告來定位商業(yè)網(wǎng)站,這里面也大有優(yōu)化和排名的學(xué)問秋秤,你得學(xué)會(huì)用最少的廣告投入獲得最多的點(diǎn)擊宏粤。
搜索引擎登錄
網(wǎng)站做完了以后,別躺在那里等著客人從天而降灼卢。要讓別人找到你绍哎,最簡單的辦法就是將網(wǎng)站提交(submit)到搜索引擎。如果你的是商業(yè)網(wǎng)站鞋真,主要的搜索引擎和目錄都會(huì)要求你付費(fèi)來獲得收錄(比如Yahoo要299美元)崇堰,但是好消息是(至少到目前為止)最大的搜索引擎Google目前還是免費(fèi),而且它主宰著60%以上的搜索市場涩咖。
鏈接交換和鏈接廣泛度(Link Popularity)
網(wǎng)頁內(nèi)容都是以超文本(Hypertext)的方式來互相鏈接的海诲,網(wǎng)站之間也是如此。除了搜索引擎以外檩互,人們也每天通過不同網(wǎng)站之間的鏈接來Surfing(“沖浪”)特幔。其它網(wǎng)站到你的網(wǎng)站的鏈接越多,你也就會(huì)獲得更多的訪問量闸昨。更重要的是蚯斯,你的網(wǎng)站的外部鏈接數(shù)越多,會(huì)被搜索引擎認(rèn)為它的重要性越大饵较,從而給你更高的排名溉跃。
2.CSS都有哪些選擇器?
派生選擇器(用HTML標(biāo)簽申明)
id選擇器(用DOM的ID申明)
類選擇器(用一個(gè)樣式類名申明)
屬性選擇器(用DOM的屬性申明告抄,屬于CSS2撰茎,IE6不支持,不常用打洼,不知道就算了)
除了前3種基本選擇器龄糊,還有一些擴(kuò)展選擇器,包括
后代選擇器(利用空格間隔募疮,比如div .a{ })
群組選擇器(利用逗號(hào)間隔炫惩,比如p,div,#a{ })
那么問題來了,CSS選擇器的優(yōu)先級(jí)是怎么樣定義的阿浓?
基本原則:
一般而言他嚷,選擇器越特殊,它的優(yōu)先級(jí)越高。也就是選擇器指向的越準(zhǔn)確筋蓖,它的優(yōu)先級(jí)就越高卸耘。
復(fù)雜的計(jì)算方法:
用1表示派生選擇器的優(yōu)先級(jí)
用10表示類選擇器的優(yōu)先級(jí)
用100標(biāo)示ID選擇器的優(yōu)先級(jí)
div.test1 .span var 優(yōu)先級(jí) 1+10 +10 +1
span#xxx .songs li 優(yōu)先級(jí)1+100 + 10 + 1
#xxx li 優(yōu)先級(jí) 100 +1
3.CSS中可以通過哪些屬性定義,使得一個(gè)DOM元素不顯示在瀏覽器可視范圍內(nèi)粘咖?
最基本的:
設(shè)置display屬性為none蚣抗,或者設(shè)置visibility屬性為hidden
技巧性:
設(shè)置寬高為0,設(shè)置透明度為0瓮下,設(shè)置z-index位置在-1000
4.超鏈接訪問過后hover樣式就不出現(xiàn)的問題是什么翰铡?如何解決?
答案:被點(diǎn)擊訪問過的超鏈接樣式不在具有hover和active了,解決方法是改變CSS屬性的排列順序: L-V-H-A(link,visited,hover,active)
6.請(qǐng)用Css寫一個(gè)簡單的幻燈片效果頁面
答案:知道是要用css3讽坏。使用animation動(dòng)畫實(shí)現(xiàn)一個(gè)簡單的幻燈片效果锭魔。
/**HTML**/
div.ani
/**css**/
.ani{
width:480px;
height:320px;
margin:50px auto;
overflow: hidden;
box-shadow:0 0 5px rgba(0,0,0,1);
background-size: cover;
background-position: center;
-webkit-animation-name: "loops";
-webkit-animation-duration: 20s;
-webkit-animation-iteration-count: infinite;
}
@-webkit-keyframes "loops" {
0% {
background:url(http://d.hiphotos.baidu.com/image/w%3D400/sign=c01e6adca964034f0fcdc3069fc27980/e824b899a9014c08e5e38ca4087b02087af4f4d3.jpg) no-repeat;
}
25% {
background:url(http://b.hiphotos.baidu.com/image/w%3D400/sign=edee1572e9f81a4c2632edc9e72b6029/30adcbef76094b364d72bceba1cc7cd98c109dd0.jpg) no-repeat;
}
50% {
background:url(http://b.hiphotos.baidu.com/image/w%3D400/sign=937dace2552c11dfded1be2353266255/d8f9d72a6059252d258e7605369b033b5bb5b912.jpg) no-repeat;
}
75% {
background:url(http://g.hiphotos.baidu.com/image/w%3D400/sign=7d37500b8544ebf86d71653fe9f9d736/0df431adcbef76095d61f0972cdda3cc7cd99e4b.jpg) no-repeat;
}
100% {
background:url(http://c.hiphotos.baidu.com/image/w%3D400/sign=cfb239ceb0fb43161a1f7b7a10a54642/3b87e950352ac65ce2e73f76f9f2b21192138ad1.jpg) no-repeat;
}
7.行內(nèi)元素和塊級(jí)元素的具體區(qū)別是什么?行內(nèi)元素的padding和margin可設(shè)置嗎路呜?
塊級(jí)元素(block)特性:
總是獨(dú)占一行赂毯,表現(xiàn)為另起一行開始,而且其后的元素也必須另起一行顯示;
寬度(width)拣宰、高度(height)党涕、內(nèi)邊距(padding)和外邊距(margin)都可控制;
內(nèi)聯(lián)元素(inline)特性:
和相鄰的內(nèi)聯(lián)元素在同一行;
寬度(width)、高度(height)巡社、內(nèi)邊距的top/bottom(padding-top/padding-bottom)和外邊距的top/bottom(margin-top/margin-bottom)都不可改變(也就是padding和margin的left和right是可以設(shè)置的)膛堤,就是里面文字或圖片的大小。
那么問題來了晌该,瀏覽器還有默認(rèn)的天生inline-block元素(擁有內(nèi)在尺寸肥荔,可設(shè)置高寬,但不會(huì)自動(dòng)換行)朝群,有哪些燕耿?
答案:<input> 、<img> 姜胖、<button> 誉帅、<texterea> 、<label>
.