在css中的position屬性規定了頁面元素的定位類型,它有以下幾個值:
absolute:絕對定位,相對於static以外的第一個父元素進行定位;
fixed:生成絕對定位的元素,相對於瀏覽器窗口進行定位;
relative:生成相對定位的元素,相對於其正常位置進行定位;
static:默認值,沒有定位;
inherit:繼承父元素的position值;
如果一個塊A要在塊B中進行絕對定位,則我們可以把塊A的position值定為absolute,把塊B的屬性值定為relative,這樣,塊A就會相對於塊B進行絕對定位。
最近在項目中碰到一個這樣的問題,table元素的其中一個td的里面會生成一個div,這個div相對於該td進行定位,如下圖:
td的position值為relative,div的position值為absolute。這樣做在chrome里面沒有任何問題,但到了firefox和ie中,就出現問題了,如下圖:
在圖中可以看到,該td元素的邊框沒有了。而如果我把td元素的position:relative這個樣式給去掉,它又能正常顯示了。后來查了些資料,初步估計是td元素和div元素對position:relative樣式在各瀏覽器中的支持和表現形式不一致。解決方法是這樣的,在td里面再套一個div元素,這個div元素具有position:relative這個樣式。如下圖:
然后再換到頁面,就會發現這個問題解決了。