css中的幾種定位詳解
css中定位的熟練使用,對於頁面的美化和排版有着重要的意義。
首先我們來了解一下css中主要有哪幾種,這些定位主要分為靜態定位,相對定位,絕對定位,固定定位這四種。
一.靜態定位(static)
一般的標簽元素不加任何定位屬性都屬於靜態定位,在頁面的最底層屬於標准流。在默認情況下,元素沒有指定position屬性時,這個元素就是靜態定位的。也就是說,元素position屬性的默認值是static。不過我們一般用不到這種定位。
靜態定位的作用就是:表示塊保留在原本應該在的位置,不會重新定位。
二.固定定位(fixed):
當元素的position屬性設置為fixed時,這個元素就被固定了,說白了就是相對於瀏覽器可視窗口固定,被固定的元素不會隨着滾動條的拖動而改變位置,會一直在你能看到的地方不會消失。這種定位會脫離文檔流,所以margin屬性的設置就不會有用。
三.相對定位(relative):
定位為relative的元素脫離正常的文檔流中,但其在文檔流中的原位置依然存在,后面的無定位元素仍然不會“擠上來”,他的定位是相對於占據的原來的位置進行定位,就是相對於自己本身進行定為移動。
四.絕對定位 (absolute):
跟相對定位不同,它是相對於擁有相對定位屬性的父元素進行定位移動,它會脫離文檔流。如果父元素中的所有子元素都設置了absolute,那么所有的子元素都會亂套,然后就是盒子分布變得十分混亂,所以為了頁面的整潔,我們需要移動這些元素,說白了就是就是直接是style樣式表中書寫:left、right、top、bottom四個屬性,屬性的單位:px(像素)、%(百分比)等。
還有值得注意的就是:left和right不能同時使用,top和bottom不能同時使用(尤其注意!)還有float屬性不可以和position屬性共用。
最后就是一個z-index (層級)的問題,如果給子元素全部設置了absolute,那么所有的子元素就會堆疊在一起,互相遮蓋。那么我們如果想要其中的某一個子元素在最上面該怎么設置呢?就可以使用z-index進行設置,z-index屬性的屬性值是數字,數字越大,那么它就顯示的最靠上。