CSS 定位和浮動

2021-08-25 07:33:10 字數 2995 閱讀 8751

css 為定位和浮動提供了一些屬性,利用這些屬性,可以建立列式布局,將布局的一部分與另一部分重疊,還可以完成多年來通常需要使用多個**才能完成的任務。

定位的基本思想很簡單,它允許你定義元素框相對於其正常位置應該出現的位置,或者相對于父元素、另乙個元素甚至瀏覽器視窗本身的位置。顯然,這個功能非常強大,也很讓人吃驚。要知道,使用者**對 css2 中定位的支援遠勝於對其它方面的支援,對此不應感到奇怪。

另一方面,css1 中首次提出了浮動,它以 netscape 在 web 發展初期增加的乙個功能為基礎。浮動不完全是定位,不過,它當然也不是正常流布局。我們會在後面的章節中明確浮動的含義。

div、h1 或 p 元素常常被稱為塊級元素。這意味著這些元素顯示為一塊內容,即「塊框」。與之相反,span 和 strong 等元素稱為「行內元素」,這是因為它們的內容顯示在行中,即「行內框」。

您可以使用 display 屬性改變生成的框的型別。這意味著,通過將 display 屬性設定為 block,可以讓行內元素(比如 元素)表現得像塊級元素一樣。還可以通過把 display 設定為 none,讓生成的元素根本沒有框。這樣的話,該框及其所有內容就不再顯示,不占用文件中的空間。

但是在一種情況下,即使沒有進行顯式定義,也會建立塊級元素。這種情況發生在把一些文字新增到乙個塊級元素(比如 div)的開頭。即使沒有把這些文字定義為段落,它也會被當作段落對待:

some text

some more text.

在這種情況下,這個框稱為無名塊框,因為它不與專門定義的元素相關聯。

塊級元素的文字行也會發生類似的情況。假設有乙個包含三行文字的段落。每行文字形成乙個無名框。無法直接對無名塊或行框應用樣式,因為沒有可以應用樣式的地方(注意,行框和行內框是兩個概念)。但是,這有助於理解在螢幕上看到的所有東西都形成某種框。

css 有三種基本的定位機制:普通流、浮動和絕對定位。

除非專門指定,否則所有框都在普通流中定位。也就是說,普通流中的元素的位置由元素在 x(html) 中的位置決定。

塊級框從上到下乙個接乙個地排列,框之間的垂直距離是由框的垂直外邊距計算出來。

行內框在一行中水平布置。可以使用水平內邊距、邊框和外邊距調整它們的間距。但是,垂直內邊距、邊框和外邊距不影響行內框的高度。由一行形成的水平框稱為行框(line box),行框的高度總是足以容納它包含的所有行內框。不過,設定行高可以增加這個框的高度。

在下面的章節,我們會為您詳細講解相對定位、絕對定位和浮動。

通過使用 position 屬性,我們可以選擇 4 種不同型別的定位,這會影響元素框生成的方式。

position 屬性值的含義:

static

元素框正常生成。塊級元素生成乙個矩形框,作為文件流的一部分,行內元素則會建立乙個或多個行框,置於其父元素中。

relative

元素框偏移某個距離。元素仍保持其未定位前的形狀,它原本所佔的空間仍保留。

absolute

元素框從文件流完全刪除,並相對於其包含塊定位。包含塊可能是文件中的另乙個元素或者是初始包含塊。元素原先在正常文件流中所佔的空間會關閉,就好像元素原來不存在一樣。元素定位後生成乙個塊級框,而不論原來它在正常流中生成何種型別的框。

fixed

元素框的表現類似於將 position 設定為 absolute,不過其包含塊是視窗本身。

定位:相對定位

本例演示如何相對於乙個元素的正常位置來對其定位。

定位:絕對定位

本例演示如何使用絕對值來對元素進行定位。

定位:固定定位

本例演示如何相對於瀏覽器視窗來對元素進行定位。

使用固定值設定影象的上邊緣

本例演示如何使用固定值設定影象的上邊緣。

使用百分比設定影象的上邊緣

本例演示如何使用百分比值設定影象的上邊緣。

使用畫素值設定影象的底部邊緣

本例演示如何使用畫素值設定影象的底部邊緣。

使用百分比設定影象的底部邊緣

本例演示如何使用百分比值設定影象的底部邊緣。

使用固定值設定影象的左邊緣

本例演示如何使用固定值設定影象的左邊緣。

使用百分比設定影象的左邊緣

本例演示如何使用百分比值設定影象的左邊緣。

使用固定值設定影象的右邊緣

本例演示如何使用固定值設定影象的右邊緣。

使用百分比設定影象的右邊緣

本例演示如何使用百分比值設定影象的右邊緣。

如何使用滾動條來顯示元素內溢位的內容

本例演示當元素內容太大而超出規定區域時,如何設定溢位屬性來規定相應的動作。

如何隱藏溢位元素中溢位的內容

本例演示在元素中的內容太大以至於無法適應指定的區域時,如何設定 overflow 屬性來隱藏其內容。

如何設定瀏覽器來自動地處理溢位

本例演示如何設定瀏覽器來自動地處理溢位。

設定元素的形狀

本例演示如何設定元素的形狀。此元素被剪裁到這個形狀內,並顯示出來。

垂直排列圖象

本例演示如何在文字中垂直排列圖象。

z-index

z-index可被用於將在乙個元素放置於另一元素之後。

z-index

上面的例子中的元素已經更改了z-index。

css 定位屬性允許你對元素進行定位。

屬性描述

position

把元素放置到乙個靜態的、相對的、絕對的、或固定的位置中。

top定義了乙個定位元素的上外邊距邊界與其包含塊上邊界之間的偏移。

right

定義了定位元素右外邊距邊界與其包含塊右邊界之間的偏移。

bottom

定義了定位元素下外邊距邊界與其包含塊下邊界之間的偏移。

left

定義了定位元素左外邊距邊界與其包含塊左邊界之間的偏移。

overflow

設定當元素的內容溢位其區域時發生的事情。

clip

設定元素的形狀。元素被剪入這個形狀之中,然後顯示出來。

vertical-align

設定元素的垂直對齊方式。

z-index

設定元素的堆疊順序。

CSS 定位和浮動

css 為定位和浮動提供了一些屬性,利用這些屬性,可以建立列式布局,將布局的一部分與另一部分重疊,還可以完成多年來通常需要使用多個 才能完成的任務。定位的基本思想很簡單,它允許你定義元素框相對於其正常位置應該出現的位置,或者相對于父元素 另乙個元素甚至瀏覽器視窗本身的位置。顯然,這個功能非常強大,也...

CSS定位和浮動

基本思想 允許定義元素框相對於其正常位置應該出現的位置,或者相對于父元素,另乙個元素和瀏覽器視窗的本身.一切皆為框 元素分為塊級元素和行級元素兩種 可以使用display屬性改變框的型別 display屬性值 詳解block 可以讓行元素表現得像塊級元素一樣 none 生成的元素沒有框,該框的內容不...

CSS定位 浮動定位

css定位機制 浮動定位 float屬性 進行浮動定位 left,right clear屬性 清除浮動 left,right,both float屬性 1.概述 div實現橫向多列布局 float屬性 left 左浮動 right 右浮動 none 不浮動 下圖為 的實現 float屬性用途 在 混...