CSS(層疊樣式表)是網頁設計中必不可少的一部分,在頁面布局方面,CSS有許多強大的屬性,可以達到讓網頁看上去更加漂亮和易讀的目的。其中定位屬性就是CSS極具優勢和靈活性的部分之一,它也是CSS布局的核心部分。而定位中的脫文檔流,則是它的一項非常重要的特性。
默認情況下,一個元素的位置是被其前面的元素給限制的,也就是說它在一定程度上是依賴其前面的元素而存在的,我們稱這種特性為文檔流中的位置。而當我們把一個元素的定位屬性設置為absolute或fixed時,它脫離文檔流,將不再受到文檔流的約束,而是直接由定位屬性來決定它的位置。例如下面的例子中:
#box{ position:absolute; top:50px; left:50px; }
該元素的定位屬性被設置為absolute,top和left屬性分別規定了該元素的上邊緣和左邊緣相對于父級元素(即包裹#box的父級元素)的距離為50像素,這樣就使該元素以絕對定位方式脫離文檔流,它不再受任何父級元素的限制。
而fixed定位方式與absolute類似,一個元素使用fixed定位,就會懸浮在頁面固定的位置,不會跟著頁面的滾動而滾動。同時,fixed定位方式也是絕對定位的一種形式。
在實際開發中,定位屬性的脫文檔流特性可以被我們用來設計出更加靈活、自由的網頁布局。例如“彈性布局”、“流式布局”等,它們都是以CSS定位脫文檔流原理來實現的。