CSS中 link 和@import 的區別是什麼?
a. link屬於HTML標籤,而@import是CSS提供的,且只能加載 CSS
b. 頁面被加載時,link會同時被加載,而@import引用的CSS會等到頁面被加載完再加載
c. import只在IE5以上才能識別,而link是HTML標籤,無兼容問題
d. link方式的樣式的權重 高於@import的權重
e. 當使用 Javascript 控制 DOM 去改變樣式的時候,只能使用 link 方式,因爲 @import 眼裏只有 CSS ,不是 DOM 可以控制
position的absolute與fixed共同點與不同點
相同:
a. 改變行內元素的呈現方式,display被置爲block
b. 讓元素脫離普通流,不佔據空間
c. 默認會覆蓋到非定位元素上
區別:
a. absolute的”根元素“是可以設置的,而fixed的”根元素“固定爲瀏覽器窗口。
b. 當你滾動網頁,fixed元素與瀏覽器窗口之間的距離是不變的。
position的值, relative和absolute分別是相對於誰進行定位的?
absolute:生成絕對定位的元素,相對於 static 定位以外的第一個祖先元素進行定位
fixed:生成絕對定位的元素,相對於瀏覽器窗口進行定位。 (IE6不支持)
relative:生成相對定位的元素,相對於其在普通流中的位置進行定位
static:默認值。沒有定位,元素出現在正常的流中
解釋下 CSS sprites原理,優缺點
CSS Sprites其實就是把網頁中一些背景圖片整合到一張圖片文件中,
再利用CSS的“background-image”,“background- repeat”,“background-position”的組合進行背景定位,
background-position可以用數字精確的定位出背景圖片的位置。
優點:
a. 減少網頁的http請求
b. 減少圖片的字節
c. 解決了網頁設計師在圖片命名上的困擾,只需對一張集合的圖片上命名就可以了,不需要對每一個小元素進行命名
d. 更換風格方便,只需要在一張或少張圖片上修改圖片的顏色或樣式,整個網頁的風格就可以改變。
缺點:
a. 在寬屏,高分辨率的屏幕下的自適應頁面,你的圖片如果不夠寬,很容易出現背景斷裂
b. CSS Sprites在開發的時候,要通過photoshop或其他工具測量計算每一個背景單元的精確位置
c. 在維護的時候比較麻煩,如果頁面背景有少許改動,一般就要改這張合併的圖片
經常遇到的瀏覽器兼容性有哪些?如何解決?
a. 瀏覽器默認的margin和padding不同
b. IE6雙邊距bug
c. 在ie6,ie7中元素高度超出自己設置高度。原因是IE8以前的瀏覽器中會給元素設置默認的行高的高度導致的
d. min-height在IE6下不起作用
e. 透明性IE用filter:Alpha(Opacity=60),而其他主流瀏覽器用 opacity:0.6
f. input邊框問題,去掉input邊框一般用border:none;就可以,但由於IE6在解析input樣式時的BUG(優先級問題),在IE6下無效
rgba()和opacity的透明效果有什麼不同?
a. opacity作用於元素,以及元素內的所有內容的透明度,rgba()只作用於元素的顏色或其背景色。
b. 設置rgba透明的元素的子元素不會繼承透明效果!
清除浮動的方法
a. 設置父元素高度
b. 在末尾添加一個div設置爲clear:both;
c. 父元素使用bfc來清除浮動