一、css盒模型有哪些及區別content-box border-box padding-boxcss
W3C標準盒子模型 box-sizing:content-box;(標準模式)默認模式html
content-box不包含padding,border-box包含padding。因此若是你設置的大小是同樣的,content-box看起來,會比border-box大css3
二、頁面導入樣式時,使用link和@import有什麼區別?面試
三、display有哪些值?說明它們的做用。算法
四、css清除浮動的幾種方法?瀏覽器
一、clear清除浮動(添加空div法)服務器
在浮動元素下方添加空div,並給該元素寫css樣式: {clear:both;height:0;overflow:hidden;}
二、方法:給浮動元素父級設置高度併發
咱們知道了高度塌陷是應爲給浮動元素的父級高度是自適應致使的,那麼咱們給它的設置適當的高度就能夠解決這個問題了。 缺點:在浮動元素高度不肯定的時候不適用
三、方法:以浮制浮(父級同時浮動)app
何謂「以浮制浮」呢?就是**讓浮動元素的父級也浮動**。 缺點:須要給每一個浮動元素父級添加浮動,浮動多了容易出現問題。
四、方法:父級設置成inline-block佈局
缺點:父級的margin左右auto失效,沒法使用margin: 0 auto;居中了
五、 br 清浮動
<div class="box"> <div class="top"></div> <br clear="both" /> </div>
br 標籤自帶clear屬性,將它設置成both其實和添加空div原理是同樣的。
問題:不符合工做中:結構、樣式、行爲,三者分離的要求。
六、給父級添加overflow:hidden 清浮動方法;
問題:須要配合 寬度 或者 zoom 兼容IE6 IE7;
overflow: hidden; *zoom: 1;
七、萬能清除法 after僞類 清浮動(如今主流方法,推薦使用)
選擇符:after{ content:"."; clear:both; display:block; height:0; overflow:hidden; visibility:hidden; }
同時爲了兼容 IE6,7 一樣須要配合zoom使用例如:
.clear:after{content:'';display:block;clear:both;height:0;overflow:hidden;visibility:hidden;} .clear{zoom:1;}
須要注意的東西:
after僞類: 元素內部末尾添加內容; :after{content"添加的內容";} IE6,7下不兼容 zoom 縮放 a、觸發 IE下 haslayout,使元素根據自身內容計算寬高。 b、FF 不支持;
五、px、em、rem的區別?
六、CSS3新特性有哪些?
七、描述css reset的做用和用途?
Reset重置瀏覽器的css默認屬性,瀏覽器的品種不一樣,樣式不一樣,而後重置,讓他們統一。
八、解釋css sprites,如何使用?
css 精靈圖,把一堆小的圖片整合到一張大的圖片(png)上,減輕服務器對圖片的請求數量。
九、爲何要使用css sprites
十、display:none;與visibility:hidden的區別是什麼?
十一、css選擇符有哪些?哪些屬性能夠繼承?優先級算法如何計算?內聯和important哪一個優先級高?
十二、寫出幾種IE6 BUG的解決方法
1、IE6雙倍邊距bug
當頁面上的元素使用float浮動時,無論是向左仍是向右浮動;只要該元素帶有margin像素都會使該值乘以2,例如「margin-left:10px」 在IE6中,該值就會被解析爲20px。想要解決這個BUG就須要在該元素中加入display:inline 或 display:block 明確其元素類型便可解決雙倍邊距的BUG
2、IE6中3像素問題及解決辦法
當元素使用float浮動後,元素與相鄰的元素之間會產生3px的間隙。詭異的是若是右側的容器沒設置高度時3px的間隙在相鄰容器的內部,當設定高度後又跑到容器的相反側了。要解決這類BUG的話,須要使佈局在同一行的元素都加上float浮動。
3、IE6中奇數寬高的BUG
IE6中奇數的高寬顯示大小與偶數高寬顯示大小存在必定的不一樣。其中要問題是出在奇數高寬上。要解決此類問題,只須要儘可能將外部定位的div高寬寫成偶數便可。
4、IE6中圖片連接的下方有間隙
IE6中圖片的下方會存在必定的間隙,尤爲在圖片垂直挨着圖片的時候,便可看到這樣的間隙。要解決此類問題,須要將img標籤訂義爲display:block 或定義vertical-align對應的屬性。也能夠爲img對應的樣式寫入font-size:0
5、IE6下空元素的高度BUG
若是一個元素中沒有任何內容,當在樣式中爲這個元素設置了0-19px之間的高度時。此元素的高度始終爲19px。
解決的方法有四種:
1.在元素的css中加入:overflow:hidden
2.在元素中插入html註釋:<!– >
3.在元素中插入html的空白符:
4.在元素的css中加入:font-size:0
6、重複文字的BUG
在某些比較複雜的排版中,有時候浮動元素的最後一些字符會出如今clear清除元素的下面。
解決方法以下:
1.確保元素都帶有display:inline
2.在最後一個元素上使用「margin-right:-3px
3.爲浮動元素的最後一個條目加上條件註釋,<!–[if !IE]>xxx<![endif]–>
4.在容器的最後元素使用一個空白的div,爲這個div指定不超過容器的寬度。
7、IE6中 z-index失效
具體BUG爲,元素的父級元素設置的z-index爲1,那麼其子級元素再設置z-index時會失效,其層級會繼承父級元素的設置,形成某些層級調整上的BUG。詳細解釋能夠閱讀IE6中部分狀況下z-index無效的緣由,以及解決辦法
結語:實際上IE6中,不少BUG的解決方法均可以使用display:inline、font-size:0、float解決。所以咱們在書寫代碼時要記住,一旦使用了float浮動,就爲元素增長一個display:inline樣式,能夠有效的避免浮動形成的樣式錯亂問題。使用空DIV時,爲了不其高度影響佈局美觀,也能夠爲其加上font-size:0 這樣就很容易避免一些兼容上的問題。
兼容 1li列表的bug /*A當父元素li有float子元素a沒有設置浮動時會出現垂直bug hank:給父元素li和子元素都設置浮動*/ /*B當li中的a轉成block而且有height並有float的li中設置浮動會出現階梯顯示 hank:給li加float*/ 2marginBUG /*A:描述:當前元素與父元素沒有設置浮動狀況下設置margin-top會出現錯誤的加在父元素上 hank:給父元素和子元素加overflow:hidden hank:給父元素和子元素加浮動*/ /*B:描述:當上下排列的元素上元素有margin-bottom:30px下元素有margin-top:20px他們 中間的間距不會疊加而是會設置較大的值 hank:把margin值加在一個元素上 hank:給上或下元素套一個div給div加overflow:hidden*/ 3按鈕元素默認大小不一 /*各個瀏覽器中按鈕元素大小不一 hank1:統一大小(用a標籤模擬) hank2:input外面套一個標籤在這個標籤裏直接寫按鈕的樣式把input邊框去掉 hank3:若是這個按鈕是一個圖片直接把圖片做爲按鈕背景便可*/ 4.百分比的bug /*百分比bug在ie6及更低版本瀏覽器解析百分比時會按照四捨五入致使50%+50%》100% hank:給右邊的浮動元素添加聲明clear:right*/ 5.表單元素行高對齊不一致 /*form裏的input select表單元素的行高對齊方式不一致 hank:給表單元素加float:left*/ 6.高度自適應出現高度塌陷 hank1:給父級元素添加聲明overflow:hidden hank2:在浮動元素下方添加空的div病添加聲明div{clear:both;height:0;overflow:hidden} hank3:萬能清除法ie6不支持div:after{content:".";clear:both;display:block; height:0;overflow:hidden;visibility:hidden;} 7.塊級元素默認高度 /*描述:在ie6及如下版本中部分塊元素擁有默認高度(小於20px在16px左右) hank:給元素添加聲明:font-size:0 hank:給元素添加聲明:overflow:hidden*/ 8.鼠標指針 /*描述:cursor屬性的hand值只有在ie9以上識別其餘瀏覽器不支持cursor的pointer屬性只有 在ie6以上版本及其餘內核瀏覽器都支持 hank:統一鼠標元素鼠標指針形狀爲手型cursor:pointer*/ 9.雙倍邊距 /*當ie6及更低版本瀏覽器解析浮動元素時會錯誤把浮向邊邊界margin加倍顯示 hank:給浮動元素添加聲明display:inline*/ 10透明度的兼容 div{opacity:0.5;filter:alpha(opacity=50)} 11.圖片的間隙 img{display: block;} /*在div中的圖片間隙*/ /*在div中的圖片會在div下方撐大3px hank1:div和img寫在一行上 hank2:img轉成塊元素給img添加display:block 圖片水平居中不起做用加margin:0 auto*/ /*dt li 中的圖片間隙*/ /*img添加display:block*/ 12圖片有邊框 img{border:0;} /*當圖片加在a標籤上時會出現邊框 hank:給圖片加border:0或border:none*/ 13.最小高度自適應的兼容 /*min-height屬性ie瀏覽器不識別 hank1:min-height:100px;_height:100px hank2:min-height:100px;height:auto!important;height:100px*/
1三、標籤上title與alt屬性的區別是什麼?
1四、絕對定位和相對定位區別
一、參照物不一樣 絕對定位的參照物是包含塊(父級)相對定位的參照物是元素本身自己默認位置
二、絕對定位將對象從文檔流中脫離出來所以不佔據空間相對位置不破壞正常的文檔流順序,不管是否進行移動元素仍佔據空間
1五、bfc
BFC 定義
BFC(Block formatting context)直譯爲"塊級格式化上下文"。它是一個獨立的渲染區域,只有Block-level box參與, 它規定了內部的Block-level Box如何佈局,
而且與這個區域外部絕不相干。
1六、實現佈局中間自適應寬度,左右兩欄固定寬度
<style> .box{ display:flex; } .left{ width: 200px; height: 600px; background:red; } .right{ width: 200px; height: 600px; background:red; } .center{ width: 100%; height:600px; background:green; } </style> </head> <body> <div class="box" > <div class="left"></div> <div class="center"></div> <div class="right"></div> </div>
css3新特性
在外圍包裹一層div,設置爲display:flex;中間設置flex:1;可是盒模型默認牢牢挨着,可使用margin控制外邊距。
代碼:
1七、背景透明文字不透明
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"><style> div.background { width:500px; height:250px; background:red; border:2px solid black; } div.transbox { width:400px; height:180px; margin:30px 50px; background-color:#ffffff; border:1px solid black; opacity:0.6; filter:alpha(opacity=60); /* IE8 及更早版本 */ } div.transbox p { margin:30px 40px; font-weight:bold; color:#000000; } </style> </head> <body> <div class="background"> <div class="transbox"> <p>這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。
這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。這些文本在透明框裏。 </p> </div> </div> </body> </body> </html>
1八、CSS3新增僞類有那些?
p:first-of-type 選擇屬於其父元素的首個 <p> 元素的每一個 <p> 元素。
p:last-of-type 選擇屬於其父元素的最後 <p> 元素的每一個 <p> 元素。
p:only-of-type 選擇屬於其父元素惟一的 <p> 元素的每一個 <p> 元素。
p:only-child 選擇屬於其父元素的惟一子元素的每一個 <p> 元素。
p:nth-child(2) 選擇屬於其父元素的第二個子元素的每一個 <p> 元素。
:enabled、:disabled 控制表單控件的禁用狀態。
:checked,單選框或複選框被選中。