源碼下載
編程相關
建站資源
書籍教程
手遊
手機軟件
文章
更多
源碼下載
編程相關
建站資源
書籍教程
手遊
手機軟件
文章
中文(繁体)
中文(简体)
中文(繁体)
한국어
日本語
English
Português
Español
Русский
العربية
Indonesia
Deutsch
Français
ภาษาไทย
首頁
>
網頁設計教程
>
CSS教程
CSS基礎:定位position和浮動float
作者:Eve Cole
更新時間:2009-09-10 15:39:46
CSS 為定位和浮動提供了一些屬性,利用這些屬性,可以建立列式佈局,將佈局的一部分與另一部分重疊,還可以完成多年來通常需要使用多個表格才能完成的任務。
定位的基本概念很簡單,它允許你定義元素框相對於其正常位置應該出現的位置,或相對於父元素、另一個元素甚至瀏覽器視窗本身的位置。顯然,這個功能非常強大,也很令人驚訝。要知道,用戶代理對 CSS2 中定位的支持遠勝於對其它方面的支持,不應對此感到奇怪。
另一方面,CSS1 中首次提出了浮動,它以 Netscape 在 Web 發展初期增加的功能為基礎。浮動不完全是定位,不過,它當然也不是正常流佈局。我們會在後面的章節中明確浮動的含義。
一切皆為框
div、h1 或 p 元素常被稱為區塊級元素。這表示這些元素顯示為一塊內容 ,即「塊框」。與之相反,span 和 strong 等元素稱為“行內元素”,這是因為它們的內容顯示在行中,即“行內框”。
您可以使用 display 屬性 來改變產生的框的類型。這意味著,透過將 display 屬性設為 block,可以讓行內元素(例如
元素)表現得像區塊級元素一樣。也可以把 display 設定為 none,讓產生的元素根本沒有框框。這樣的話,該框及其所有內容就不再顯示,不佔用文件中的空間。
但是在一種情況下,即使沒有進行明確定義,也會建立區塊級元素。這種情況發生在把一些文字加到一個區塊級元素(例如 div)的開頭。即使沒有把這些文本定義為段落,它也會被當作段落對待:
Example Source Code
[www.downcodes.com]
some text
Some more text.
在這種情況下,這個框稱為無名塊框,因為它不與專門定義的元素相關聯。
區塊級元素的文字行也會發生類似的情況。假設有一個包含三行文本的段落。每行文字形成一個無名框。無法直接對無名區塊或行框套用樣式,因為沒有可以套用樣式的地方(注意,行框和行內框是兩個概念)。但是,這有助於理解在螢幕上看到的所有東西都形成某種框架。
CSS 定位機制
CSS 有三種基本的定位機制:普通流、浮動和絕對定位。
除非專門指定,否則所有框都在普通流中定位。也就是說,普通流中的元素的位置由元素在 X(HTML) 中的位置決定。
塊級框從上到下一個接一個排列,框之間的垂直距離是由框的垂直外邊距計算出來。
行內框在一行中水平佈置。可以使用水平內邊距、邊框和外邊距來調整它們的間距。但是,垂直內邊距、邊框和外邊距不影響行內框的高度。由一行形成的水平框稱為行框(Line Box) ,行框的高度總是足以容納它所包含的所有行內框。不過,設定行高可以增加這個框的高度。
在下面,我們將為您詳細講解相對定位、絕對定位和浮動。
CSS position 屬性
透過使用 position 屬性 ,我們可以選擇 4 中不同類型的定位,這會影響元素框產生的方式。
position 屬性值的意義:
static
元素框正常產生。區塊級元素產生一個矩形框,作為文件流程的一部分,行內元素則會建立一個或多個行框,置於其父元素中。
relative
元素框偏移某個距離。元素仍保持其未定位前的形狀,它原本所佔的空間仍保留。
absolute
元素框從文件流完全刪除,並相對於其包含區塊定位。包含區塊可能是文件中的另一個元素或是初始包含區塊。元素原先在正常文件流程中所佔的空間會關閉,就好像元素原來不存在一樣。元素定位後產生一個區塊級框,而不論原來它在正常流中產生何種類型的框。
fixed
元素框的表現類似於將 position 設為 absolute,不過其包含區塊是視窗本身。
提示: 相對定位實際上被視為普通流定位模型的一部分,因為元素的位置相對於它在普通流中的位置。
CSS 定位屬性
CSS 定位屬性讓你可以對元素進行定位。
屬性 描述
position 把元素放置到一個靜態的、相對的、絕對的、或固定的位置。
top 定義了一個定位元素的上外邊距邊界與其包含塊上邊界之間的偏移。
right 定義了定位元素右外邊距邊界與其包含塊右邊界之間的偏移。
bottom 定義了定位元素下外邊界邊界與其包含區塊下邊界之間的偏移。
left 定義了定位元素左外邊距邊界與其包含區塊左邊界之間的偏移。
overflow 設定當元素的內容溢出其區域時發生的事情。
clip 設定元素的形狀。元素被剪入這個形狀之中,然後顯示出來。
vertical-align 設定元素的垂直對齊方式。
z-index 設定元素的堆疊順序。