# CSS 定位 (Positioning)
**CSS 定位 (Positioning) 屬性允許你對元素進行定位。**
## CSS 定位和浮動
CSS 為定位和浮動提供了一些屬性,利用這些屬性,可以建立列式布局,將布局的一部分與另一部分重疊,還可以完成多年來通常需要使用多個表格才能完成的任務。
定位的基本思想很簡單,它允許你定義元素框相對于其正常位置應該出現的位置,或者相對于父元素、另一個元素甚至瀏覽器窗口本身的位置。顯然,這個功能非常強大,也很讓人吃驚。要知道,用戶代理對 CSS2 中定位的支持遠勝于對其它方面的支持,對此不應感到奇怪。
另一方面,CSS1 中首次提出了浮動,它以 Netscape 在 Web 發展初期增加的一個功能為基礎。浮動不完全是定位,不過,它當然也不是正常流布局。我們會在后面的章節中明確浮動的含義。
## 一切皆為框
div、h1 或 p 元素常常被稱為塊級元素。這意味著這些元素顯示為_一塊內容_,即“塊框”。與之相反,span 和 strong 等元素稱為“行內元素”,這是因為它們的內容顯示在行中,即“行內框”。
您可以使用 [display 屬性](/cssref/pr_class_display.asp "CSS display 屬性")改變生成的框的類型。這意味著,通過將 display 屬性設置為 block,可以讓行內元素(比如 <a> 元素)表現得像塊級元素一樣。還可以通過把 display 設置為 none,讓生成的元素根本沒有框。這樣的話,該框及其所有內容就不再顯示,不占用文檔中的空間。
但是在一種情況下,即使沒有進行顯式定義,也會創建塊級元素。這種情況發生在把一些文本添加到一個塊級元素(比如 div)的開頭。即使沒有把這些文本定義為段落,它也會被當作段落對待:
```
<div>
some text
<p>Some more text.</p>
</div>
```
在這種情況下,這個框稱為無名塊框,因為它不與專門定義的元素相關聯。
塊級元素的文本行也會發生類似的情況。假設有一個包含三行文本的段落。每行文本形成一個無名框。無法直接對無名塊或行框應用樣式,因為沒有可以應用樣式的地方(注意,行框和行內框是兩個概念)。但是,這有助于理解在屏幕上看到的所有東西都形成某種框。
## CSS 定位機制
CSS 有三種基本的定位機制:普通流、浮動和絕對定位。
除非專門指定,否則所有框都在普通流中定位。也就是說,普通流中的元素的位置由元素在 (X)HTML 中的位置決定。
塊級框從上到下一個接一個地排列,框之間的垂直距離是由框的垂直外邊距計算出來。
行內框在一行中水平布置。可以使用水平內邊距、邊框和外邊距調整它們的間距。但是,垂直內邊距、邊框和外邊距不影響行內框的高度。由一行形成的水平框稱為_行框(Line Box)_,行框的高度總是足以容納它包含的所有行內框。不過,設置行高可以增加這個框的高度。
在下面的章節,我們會為您詳細講解相對定位、絕對定位和浮動。
## CSS position 屬性
通過使用 [position 屬性](/cssref/pr_class_position.asp "CSS position 屬性"),我們可以選擇 4 種不同類型的定位,這會影響元素框生成的方式。
position 屬性值的含義:
static
relative
absolute
fixed
提示:相對定位實際上被看作普通流定位模型的一部分,因為元素的位置相對于它在普通流中的位置。
## 實例
[定位:相對定位](/tiy/t.asp?f=csse_position_relative)
[定位:絕對定位](/tiy/t.asp?f=csse_position_absolute)
[定位:固定定位](/tiy/t.asp?f=csse_position_fixed)
[使用固定值設置圖像的上邊緣](/tiy/t.asp?f=csse_position_top)
[使用百分比設置圖像的上邊緣](/tiy/t.asp?f=csse_position_top_percent)
[使用像素值設置圖像的底部邊緣](/tiy/t.asp?f=csse_position_bottom)
[使用百分比設置圖像的底部邊緣](/tiy/t.asp?f=csse_position_bottom_percent)
[使用固定值設置圖像的左邊緣](/tiy/t.asp?f=csse_position_left)
[使用百分比設置圖像的左邊緣](/tiy/t.asp?f=csse_position_left_percent)
[使用固定值設置圖像的右邊緣](/tiy/t.asp?f=csse_position_right)
[使用百分比設置圖像的右邊緣](/tiy/t.asp?f=csse_position_right_percent)
[如何使用滾動條來顯示元素內溢出的內容](/tiy/t.asp?f=csse_overflow)
[如何隱藏溢出元素中溢出的內容](/tiy/t.asp?f=csse_pos_overflow_hidden)
[如何設置瀏覽器來自動地處理溢出](/tiy/t.asp?f=csse_pos_overflow_auto)
[設置元素的形狀](/tiy/t.asp?f=csse_clip)
[垂直排列圖象](/tiy/t.asp?f=csse_vertical-align)
[Z-index](/tiy/t.asp?f=csse_zindex2)
[Z-index](/tiy/t.asp?f=csse_zindex1)
## CSS 定位屬性
CSS 定位屬性允許你對元素進行定位。
| 屬性 | 描述 |
| --- | --- |
| [position](/cssref/pr_class_position.asp) | 把元素放置到一個靜態的、相對的、絕對的、或固定的位置中。 |
| [top](/cssref/pr_pos_top.asp) | 定義了一個定位元素的上外邊距邊界與其包含塊上邊界之間的偏移。 |
| [right](/cssref/pr_pos_right.asp) | 定義了定位元素右外邊距邊界與其包含塊右邊界之間的偏移。 |
| [bottom](/cssref/pr_pos_bottom.asp) | 定義了定位元素下外邊距邊界與其包含塊下邊界之間的偏移。 |
| [left](/cssref/pr_pos_left.asp) | 定義了定位元素左外邊距邊界與其包含塊左邊界之間的偏移。 |
| [overflow](/cssref/pr_pos_overflow.asp) | 設置當元素的內容溢出其區域時發生的事情。 |
| [clip](/cssref/pr_pos_clip.asp) | 設置元素的形狀。元素被剪入這個形狀之中,然后顯示出來。 |
| [vertical-align](/cssref/pr_pos_vertical-align.asp) | 設置元素的垂直對齊方式。 |
| [z-index](/cssref/pr_pos_z-index.asp) | 設置元素的堆疊順序。 |
- HTML 基礎
- HTML 簡介
- 基本的 HTML 標簽 - 四個實例
- HTML 元素
- HTML 屬性
- HTML 標題
- HTML 段落
- HTML 文本格式化
- HTML 編輯器
- HTML CSS
- HTML 鏈接
- HTML 圖像
- HTML 表格
- HTML 列表
- HTML <div> 和 <span>
- HTML 布局
- HTML 表單和輸入
- HTML 框架
- HTML Iframe
- HTML 背景
- HTML 顏色
- HTML 顏色名
- HTML 4.01 快速參考
- HTML 高級
- HTML <!DOCTYPE>
- HTML 頭部元素
- HTML 腳本
- HTML 字符實體
- HTML 統一資源定位器
- HTML URL 字符編碼
- HTML Web Server
- HTML 媒體
- HTML 多媒體
- HTML Object 元素
- HTML 音頻
- HTML 視頻
- HTML XHTML
- XHTML 簡介
- XHTML - 元素
- XHTML - 屬性
- HTML 5 教程
- HTML 5 簡介
- HTML 5 視頻
- HTML 5 Video + DOM
- HTML 5 音頻
- HTML 5 拖放
- HTML 5 Canvas
- HTML5 內聯 SVG
- HTML 5 Canvas vs. SVG
- HTML5 地理定位
- HTML 5 Web 存儲
- HTML 5 應用程序緩存
- HTML 5 Web Workers
- HTML 5 服務器發送事件
- HTML5 Input 類型
- HTML5 表單元素
- HTML5 表單屬性
- CSS 基礎
- CSS 簡介
- CSS 基礎語法
- CSS 高級語法
- CSS 派生選擇器
- CSS id 選擇器
- CSS 類選擇器
- CSS 屬性選擇器
- 如何創建 CSS
- CSS 樣式
- CSS 背景
- CSS 文本
- CSS 字體
- CSS 鏈接
- CSS 列表
- CSS 表格
- CSS 輪廓
- CSS 框模型
- CSS 框模型概述
- CSS 內邊距
- CSS 邊框
- CSS 外邊距
- CSS 外邊距合并
- CSS 定位
- CSS 定位 (Positioning)
- CSS 相對定位
- CSS 絕對定位
- CSS 浮動
- CSS 選擇器
- CSS 元素選擇器
- CSS 分組
- CSS 類選擇器詳解
- CSS ID 選擇器詳解
- CSS 屬性選擇器詳解
- CSS 后代選擇器
- CSS 屬性選擇器詳解
- CSS 后代選擇器
- CSS 子元素選擇器
- CSS 相鄰兄弟選擇器
- CSS 偽類 (Pseudo-classes)
- CSS 偽元素 (Pseudo-elements)
- CSS 高級
- CSS 水平對齊
- CSS 尺寸 (Dimension)
- CSS 分類 (Classification)
- CSS 導航條
- CSS 圖片庫
- CSS 圖像透明度
- CSS2 媒介類型
- CSS 注意事項
- CSS3 教程
- CSS3 簡介
- CSS3 邊框
- CSS3 背景
- CSS3 文本效果
- CSS3 字體
- CSS3 2D 轉換
- CSS3 3D 轉換
- CSS3 過渡
- CSS3 動畫
- CSS3 多列
- CSS3 用戶界面
- Firebug 教程
- Firebug 教程
- 使用Firebug查看和編輯HTML和CSS
- 使用 Firebug 調試 JavaScript
- Firebug頁面概況查看
- Firebug動態執行JavaScript
- Firebug記錄Javascript日志
- Firebug監控網絡情況
- 免責聲明