- 相關(guān)推薦
網(wǎng)站開(kāi)發(fā)面試題
1.解決IE6及更早瀏覽器浮動(dòng)時(shí)產(chǎn)生雙倍邊距的BUG
display:inline
2.如何解決IE6下的文本溢出BUG(行業(yè)內稱(chēng):多出一只豬)
刪除2個(gè)div之間所有的注釋;不設置浮動(dòng);調整2個(gè)div的寬度,比如將寬度調整為更小一點(diǎn),刷新頁(yè)面看效果。
3.DIV浮動(dòng)IE文本產(chǎn)生3象素的bug
左邊對象浮動(dòng),右邊采用外補丁的左邊距來(lái)定位,右邊對象內的文本會(huì )離左邊有3px的間距. #box{
float:left; width:800px;} #left{ float:left; width:50%;}
#right{ width:50%;} *html #left{ margin-right:-3px; //這句是關(guān)鍵}
4.css hack
5.如果這道題出的不是IE6 而是讓你列舉各瀏覽器之間的兼容性解決方法,就要寫(xiě)死了。。太多太多
二、如果讓一個(gè)div在頁(yè)面中垂直居中(動(dòng)動(dòng)腦子,其實(shí)方法很多,各有利弊)
1.絕對定位法
2.單行垂直居中(重點(diǎn)是里面的文字是單行)
div {
height:25px;
line-height:25px;
overflow:hidden;
}
3.多行未知高度文字的垂直居中
div {
padding:xxpx; (誰(shuí)都會(huì )吧)
}
4.多行文本固定高度的垂直居中 (IE6不能正確地理解display:table和display:table-cell,所以要
用css hack,想知道為什么這樣做,可以參考
div#wrap父容器 {
display:table;
border:1px solid #FF0099;
background-color:#FFCCFF;
width:760px;
height:400px;
_position:relative;
overflow:hidden;
}
div#subwrap子容器 {
vertical-align:middle;
display:table-cell;
_position:absolute;
_top:50%;
}
div#content內容 {
_position:relative;
_top:-50%;
}
三、如何讓2個(gè)并列的div自動(dòng)等高(不設高度)
注:如果能寫(xiě)出3種常見(jiàn)方法固然最好,但最好寫(xiě)一下各自?xún)?yōu)缺點(diǎn),否則面試時(shí)肯定會(huì )問(wèn)你為什么這樣
寫(xiě)
1、背景模擬法(假高度),按照尺寸制作背景,平鋪,當內容增多時(shí),背景就會(huì )向下縱向重復,看起
來(lái)就向左右兩個(gè)div都自動(dòng)向下延伸了一樣。
2、表格嵌套法(不難理解,表格都是等高的,就是在div中嵌套表格)
3、內外補丁法(最推薦的方法,因為只用css實(shí)現的,但初學(xué)者不易理解)
* { margin:0; padding:0; }
#wrap {
overflow:hidden; (這行代碼是重點(diǎn),否則你會(huì )看到頁(yè)面很長(cháng)很長(cháng))
padding:0;
padding-left:180px;(內補丁)
}
#left,#right {
height:auto;
margin-bottom:-10000px;(外補丁)
padding-bottom:10000px;(內補丁)
}
#left {
display:inline;
float:left;
width:180px;
margin-left:-180px;(外補丁)
background: #0CF;
}
#right{
float:right;
width:100%;
background: #FC6;
}
這里說(shuō)一下內外補丁,其實(shí)也沒(méi)那么難理解,我的理解就是相互抵消。多用用margin負值,你會(huì )了解這
個(gè)原理的。
四、寬度自適應三欄的布局方式
三種方法:
1、絕對定位法(最易理解)
左右兩欄采用絕對定位,分別固定于頁(yè)面的左右兩側,中間的主體欄用左右margin值撐開(kāi)距離。于是實(shí)
現了三欄自適應布局。
html,body{margin:0; height:100%;}
#left,#right{position:absolute; top:0; width:200px; height:100%;}
#left{left:0; background:#a0b3d6;}
#right{right:0; background:#a0b3d6;}
#main{margin:0 210px; background:#ffe6b8; height:100%;}
2、margin負值法(不易理解)
html,body{margin:0; height:100%;}
#main{width:100%; height:100%; float:left;}
#main #body{margin:0 210px; background:#ffe6b8; height:100%;}
#left,#right{width:200px; height:100%; float:left; background:#a0b3d6;}
#left{margin-left:-100%;}
#right{margin-left:-200px;}
重點(diǎn)是第一個(gè)div是中間的main,且必須套一個(gè)容器。
3、浮動(dòng)法(最常見(jiàn))
html,body{margin:0; height:100%;}
#main{height:100%; margin:0 210px; background:#ffe6b8;}
#left,#right{width:200px; height:100%; background:#a0b3d6;}
#left{float:left;}
#right{float:right;}
重點(diǎn)是中間的main要放在標簽最后,缺點(diǎn)是需要用clear:both
五、一小張效果圖,大致內容是一個(gè)圖片列表,ul內邊距左:10px 右:10px。ul中的li右邊距30px,
但最后一個(gè)li距離ul只有10px,也就是ul有邊框,里面的li圖片列表也有邊框。(這些屬性是定死的,
你不能修改,要求寫(xiě)出這段css代碼)
這道題,其實(shí)也是考你的內外補丁掌握,大致方法是,ul設置左右內邊距后,設置li的margin負值,這
樣li在ul的框里就居中了。還有一種比較傻瓜的辦法,設置li的margin-right:30px的后,最后一個(gè)li
需要改class,把margin-right清掉。
六、談?wù)勀銓EB標準以及W3C的理解與認識。
這題網(wǎng)上隨便找找都有,大致要點(diǎn):標簽閉合、標簽小寫(xiě)、不亂嵌套、提高搜索機器人搜索幾率、使用
外鏈css和js腳本、結構行為表現的分離、文件下載與頁(yè)面速度更快、內容能被更多的用戶(hù)所訪(fǎng)問(wèn)、內
容能被更廣泛的設備所訪(fǎng)問(wèn)、更少的代碼和組件,容易維護、改版方便,不需要變動(dòng)頁(yè)面內容、提供打
印版本而不需要復制內容、提高網(wǎng)站易用性。
【網(wǎng)站開(kāi)發(fā)面試題】相關(guān)文章:
網(wǎng)站設計師面試題06-28
web前端開(kāi)發(fā)面試題07-12
netcms怎么開(kāi)發(fā)企業(yè)網(wǎng)站07-03
京東商城的網(wǎng)站是哪個(gè)團隊開(kāi)發(fā)的?07-11
網(wǎng)站開(kāi)發(fā)專(zhuān)業(yè)就業(yè)前景06-30