出處:http://www.cnblogs.com/0603ljx/p/4326674.html+其餘css
1解釋下浮動和它的工做原理。html
浮動的框能夠左右移動,直到它的外邊緣遇到包含框或者另外一個浮動框的邊緣,因此才說浮動定位不屬於正常的頁面流。css的定位機制:普通流,浮動,絕對定位(position:fixed是position:absolute的一個子類)。文檔中的普通流就會表現得和浮動框不存在同樣,當浮動框高度超出包含框的時候,就會出現包含框不會自動伸縮高度。前端
2 請解釋一下 relative、fixed、absolute 和 static 元素的區別chrome
下面對應用的較多的relative和absolute與fixed進行分析:
relative定位的層老是相對於其最近的父元素,不管其父元素是何種定位方式。
absolute定位的層老是相對於其最近的定義爲absolute或relative的父層,而這個父層並不必定是其直接父層。若是其父層中都未定義absolute或relative,則其將相對body進行定位,
fixed:生成絕對定位的元素,相對於瀏覽器窗口進行定位。瀏覽器
各個屬性值的定義:網絡
一、static:默認值。沒有定位,元素出如今正常的流中(忽略 top, bottom, left, right 或者 z-index 聲明)。佈局
二、relative:生成相對定位的元素,經過top,bottom,left,right的設置相對於其正常位置進行定位。可經過z-index進行層次分級。優化
三、absolute:生成絕對定位的元素,相對於 static 定位之外的第一個父元素進行定位。元素的位置經過 "left", "top", "right" 以及 "bottom" 屬性進行規定。可經過z-index進行層次分級。網站
四、fixed:生成絕對定位的元素,相對於瀏覽器窗口進行定位。元素的位置經過 "left", "top", "right" 以及 "bottom" 屬性進行規定。可經過z-index進行層次分級。spa
3請列舉兼容性問題
設置較小高度標籤(通常小於10px),在ie6,ie7,遨遊中高度超出本身設置高度
這是由於在IE6中,系統默認的並不是是Div有一個默認的高度,而是你沒有解決一個隱藏的參數,font-size,所以必須單獨定義這個Div的font-size,這樣才能解決這個問題。
a 加overflow: hidden;zoom: 0.08;
b font-size: 0px;
4)爲何個人被點擊訪問過的超連接樣式只有hover有效?
6)父div高度自適應失效問題:
div嵌套時,當子div設置浮動屬性後,其父div的高度自適應失效了。
解決方法:
1)向父div的末尾再插入一個額外的標籤,<div style="clear:both;"></div>並令其清除浮動(clear)以撐大父容器。這種方法是W3C推薦的方法。
使用hacker 我能夠吧瀏覽器分爲3類:ie6 ;ie7和遨遊;其餘(ie8 chrome ff safari opera等)
條件引用
<!--[if IE 6]> 僅IE6可識別 <![endif]-->
5你如何對網站的文件和資源進行優化?
1)文件合併,若是有多個CSS文件,能夠合併成一個,減小http請求次數()
2)減小調用其餘文件的數量即CSS sprites。如每一個 background的圖像都會產生1次HTTP請求,要改善這個情況,能夠採用background-position屬性來加載背景圖,將須要頻繁加載的多個圖片合成爲1個單獨的圖片
3)使用 CDN(內容分發網絡) 託管
4)可對圖片進行壓縮,png的推薦https://tinypng.com/,不會失真,其餘也能夠壓縮
5)可再結合H5新特性裏的預加載
6描述下 「reset」 CSS 文件的做用和使用它的好處。
reset.css可以重置瀏覽器的默認屬性。不一樣的瀏覽器具備不一樣的樣式,重置可以使其統一。好比說ie瀏覽器和FF瀏覽器下button顯示不一樣,經過reset可以統同樣式,顯示相同的想過。可是不少reset是不必的,多寫了會增長瀏覽器在渲染頁面的負擔。
7data-屬性的做用是什麼?
data-是HTML5爲前端開發者提供自定義的屬性,這些屬性集能夠經過對象的dataset屬性獲取,不支持該屬性的瀏覽器能夠經過 getAttribute方法獲取