目錄
為什麼要用定位?
元素的定位屬性
靜態定位(static)
相對定位relative(自戀型)
絕對定位absolute (拼爹型)
1.父級沒有定位
2.父級有定位
3.子絕父相※※
絕對定位的盒子水平/垂直居中
程式碼範例
固定定位fixed(認死理型)
叠放次序(z-index)
四种定位总结
定位模式转换
顺丰案例
首頁 web前端 css教學 css定位position屬性應如何用(實例詳解)

css定位position屬性應如何用(實例詳解)

Dec 20, 2021 pm 04:26 PM
css

這篇文章帶給大家css中position定位屬性的相關知識,position用來當屬性規定元素的定位類型,不同的屬性值有著不同的定位樣式,希望對大家有幫助。

css定位position屬性應如何用(實例詳解)

定位(position)

#background-position 背景定位

如果,說浮動, 關鍵在一個「浮」 字上面, 那麼我們的定位,關鍵在於一個「位」 上。

PS: 定位是我們CSS算是數一數二難點的了,但是,你務必要學好它,我們CSS離不開定位,特別是後面的js特效,天天和定位打交道。不要抵觸它,反而要愛上它,它可以讓我們工作更輕鬆!

為什麼要用定位?

那麼定位,最長運用的場景再在那裡呢?來看幾幅圖片,你一定會有感悟!

  1. 小黃色區塊可以再圖片上移動:
    css定位position屬性應如何用(實例詳解)

  2. #左右箭頭壓住圖片:
    css定位position屬性應如何用(實例詳解)

  3. #hot 再盒子外面多出一塊,更加突出:
    css定位position屬性應如何用(實例詳解)
    以上三個小地方,如果用標準流或浮動,實作會比較複雜或者難以實現,此時我們用定位來做。

元素的定位屬性

元素的定位屬性主要包括定位模式和邊偏移兩部分。
1、邊偏移

邊偏移屬性 描述
#top 頂端偏移量,定義元素相對於其父元素上邊線的距離
bottom #底部偏移量,定義元素相對於其父元素下邊線的距離
left 左側偏移量,定義元素相對於其父元素左邊線的距離
right 右邊偏移量,定義元素相對於其父元素右邊線的距離

也就說,以後定位要跟這邊偏移搭配使用了,top: 100px; left: 30px; 等等

2、定位模式(定位的分類)

#在CSS中,position屬性用於定義元素的定位模式,其基本語法格式如下:

選擇器{position:屬性值;}

position屬性的常用值

##absolute 絕對定位,相對於其上一個已定位的父元素進行定位#fixed固定定位,相對於瀏覽器視窗進行定位

靜態定位(static)

靜態定位是所有元素的預設定位方式,當position屬性的取值為static時,可以將元素定位於靜態位置。所謂靜態位置就是各元素在HTML文檔流中預設的位置。

上面的話翻譯成白話: 就是網頁中所有元素都預設的是靜態定位。其實就是標準流的特性。

在靜態定位狀態下,無法透過邊偏移屬性(top、bottom、left或right)來改變元素的位置。

其實沒啥,靜態定位唯一的用途:就是 取消定位。 position: static;

相對定位relative(自戀型)

相對定位是將元素相對於它在標準流中的位置進行定位,當position屬性的取值為relative時,可以將元素定位於相對(自己的)位置

對元素設定相對定位後,可以透過邊偏移屬性改變元素的位置,但是它在文件流程中的位置仍然保留(保留原來所佔位置)。如下圖所示,也就是一個相對定位的效果展示:

注意:

  1. 相對定位最重要的一點是,它可以透過邊偏移移動位置,但是原來的所佔的位置,繼續佔有
  2. 其次,每次移動的位置是以自己的左上角為基點移動(相對於自己來移動位置)

就是說,相對定位的盒子仍在標準流中,它後面的盒子仍以標準流方式對待它。 (相對定位不脫標

如果說浮動的主要目的是讓多個區塊級元素一行顯示,那麼定位的主要價值就是移動位置, 讓盒子到我們想要的位置上去。

絕對定位absolute (拼爹型)

[注意] 如果文件可捲動,絕對定位元素會隨著它滾動,因為元素最終會相對於正常流的某一部分定位。

當position屬性的值為absolute時,可以將元素的定位模式設為絕對定位。

注意: 絕對定位最重要的一點是,它可以透過邊偏移移動位置,但它完全脫標完全不佔位置

絕對定位absolute又分成三種情況:

1.父級沒有定位

若所有父元素都沒有定位,以瀏覽器目前畫面為準對齊(document文檔)。

2.父級有定位

絕對定位是將元素依據最近的已經定位(絕對、固定或相對定位)的父元素(祖先)進行定位。

3.子絕父相※※

#這句話的意思是子級是絕對定位的話, 父級要用相對定位

首先, 我們說下, 絕對定位是將元素依據最近的已經定位絕對、固定或相對定位)的父元素(祖先)進行定位。

是說,子級是絕對定位,父親只要是定位即可(不管父親是絕對定位還是相對定位,甚至是固定定位都可以),就是說, 子絕父絕,子絕父相都是正確的。 但是,極力推薦用相對位置

但是,在我們網頁佈局的時候, 最常說的 子絕父相是怎麼來的呢?請看如下圖:


所以,我們可以得到以下結論:

因為子級是絕對定位,不會佔有位置,可以放到父盒子裡面的任何一個地方。

父盒子佈局時,需要佔有位置,因此父親只能是 相對定位.

這就是子絕父相的由來。

絕對定位的盒子水平/垂直居中

普通的盒子是左右margin 改為auto就可, 但是對於絕對定位就無效了

#定位的盒子也可以水平或垂直居中,有演算法。

  1. 首先left 50% 父盒子的一半大小
  2. #然後走自己外邊距負的一半值就可以了 margin-left。

程式碼範例

<!DOCTYPE html><html lang="en"><head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
	p {
		width: 200px;
		height: 200px;
		background-color: pink;
		/*margin: 100px auto;*/
		/*float: left;*/
		position: absolute;
		/*加了定位 浮动的的盒子  margin 0 auto 失效了*/
		left: 50%;
		margin-left: -100px;
		top: 50%;
		margin-top: -100px;
	}
	</style></head><body>
	<p></p></body></html>
登入後複製

固定定位fixed(認死理型)

固定定位是絕對定位的一種特殊形式,類似於方塊是一個特殊的長方形。它以瀏覽器視窗作為參照物來定義網頁元素。當position屬性的取值為fixed時,即可將元素的定位模式設定為固定定位。

當對元素設定固定定位後,它將脫離標準文件流的控制,並始終依據瀏覽器視窗定義自己的顯示位置。不管瀏覽器捲軸如何捲動也不管瀏覽器視窗的大小如何變化,該元素都會始終顯示在瀏覽器視窗的固定位置。

固定定位有兩點:

  1. 固定定位的元素跟父亲没有任何关系,只认浏览器。
  2. 固定定位完全脱标,不占有位置,不随着滚动条滚动。

ie6等低版本浏览器不支持固定定位。

叠放次序(z-index)

当对多个元素同时设置定位时,定位元素之间有可能会发生重叠。

在CSS中,要想调整重叠定位元素的堆叠顺序,可以对定位元素应用z-index层叠等级属性,其取值可为正整数、负整数和0。

比如: z-index: 2; font-weight: 700

注意:

  1. z-index的默认属性值是0,取值越大,定位元素在层叠元素中越居上
  2. 如果取值相同,则根据书写顺序,后来居上
  3. 后面数字一定不能加单位
  4. 只有相对定位,绝对定位,固定定位有此属性,其余标准流,浮动,静态定位都无此属性,亦不可指定此属性。

四种定位总结

描述
static #自動定位(預設定位方式)
relative 相對定位,相對於其原始文件流的位置進行定位
定位模式是否脱标占有位置是否可以使用边偏移移动位置基准
静态static不脱标,正常模式不可以正常模式
相对定位relative脱标,占有位置可以相对自身位置移动(自恋型)
绝对定位absolute完全脱标,不占有位置可以相对于定位父级移动位置(拼爹型)
固定定位fixed完全脱标,不占有位置可以相对于浏览器移动位置(认死理型)

定位模式转换

跟 浮动一样, 元素添加了 绝对定位和固定定位之后, 元素模式也会发生转换, 都转换为行内块模式

行内块 的宽度和高度 跟内容有关系

** 因此 比如 行内元素 如果添加了 绝对定位或者 固定定位后 浮动后,可以不用转换模式,直接给高度和宽度就可以了。**

顺丰案例

css定位position屬性應如何用(實例詳解)

<!DOCTYPE html><html lang="en"><head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style>
		* {
			margin: 0;
			padding: 0;
		}
		.sf {
			width: 1259px;
			height: 472px;
			margin: 100px auto;
			position: relative;
		}
		.nav {
			width: 960px;
			height: 80px;
			background-color: #000;
			position: absolute;
			bottom: 0;
			left: 50%;
			margin-left: -480px;
		}
		.nav li {
			list-style-type: none;
			width: 160px;
			height: 80px;
			float: left;
		}
		.nav li a {
			width: 160px;
			height: 80px;
			display: block;
			text-align: center;
			line-height: 80px;
			color: #fff;
			text-decoration: none;
		}
		.nav li a:hover {
			color: #000;
			background-color: #fff;
		}

	</style></head><body>
	<p class="sf">
		<a href="#">
			<img src="/static/imghw/default1.png"  data-src="images/sf.png"  class="lazy"   alt=""    style="max-width:90%"  style="max-width:90%">
		</a>
		<p class="nav">
			<ul>
				<li><a href="#">快递查询</a></li>
				<li><a href="#">快递查询</a></li>
				<li><a href="#">快递查询</a></li>
				<li><a href="#">快递查询</a></li>
				<li><a href="#">快递查询</a></li>
				<li><a href="#">快递查询</a></li>
			</ul>

		</p>
	</p></body></html>
登入後複製

(学习视频分享:css视频教程

以上是css定位position屬性應如何用(實例詳解)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它們
1 個月前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue中怎麼用bootstrap vue中怎麼用bootstrap Apr 07, 2025 pm 11:33 PM

在 Vue.js 中使用 Bootstrap 分為五個步驟:安裝 Bootstrap。在 main.js 中導入 Bootstrap。直接在模板中使用 Bootstrap 組件。可選:自定義樣式。可選:使用插件。

HTML,CSS和JavaScript的角色:核心職責 HTML,CSS和JavaScript的角色:核心職責 Apr 08, 2025 pm 07:05 PM

HTML定義網頁結構,CSS負責樣式和佈局,JavaScript賦予動態交互。三者在網頁開發中各司其職,共同構建豐富多彩的網站。

bootstrap怎麼寫分割線 bootstrap怎麼寫分割線 Apr 07, 2025 pm 03:12 PM

創建 Bootstrap 分割線有兩種方法:使用 標籤,可創建水平分割線。使用 CSS border 屬性,可創建自定義樣式的分割線。

bootstrap怎麼調整大小 bootstrap怎麼調整大小 Apr 07, 2025 pm 03:18 PM

要調整 Bootstrap 中元素大小,可以使用尺寸類,具體包括:調整寬度:.col-、.w-、.mw-調整高度:.h-、.min-h-、.max-h-

bootstrap怎麼插入圖片 bootstrap怎麼插入圖片 Apr 07, 2025 pm 03:30 PM

在 Bootstrap 中插入圖片有以下幾種方法:直接插入圖片,使用 HTML 的 img 標籤。使用 Bootstrap 圖像組件,可以提供響應式圖片和更多樣式。設置圖片大小,使用 img-fluid 類可以使圖片自適應。設置邊框,使用 img-bordered 類。設置圓角,使用 img-rounded 類。設置陰影,使用 shadow 類。調整圖片大小和位置,使用 CSS 樣式。使用背景圖片,使用 background-image CSS 屬性。

bootstrap怎麼設置框架 bootstrap怎麼設置框架 Apr 07, 2025 pm 03:27 PM

要設置 Bootstrap 框架,需要按照以下步驟:1. 通過 CDN 引用 Bootstrap 文件;2. 下載文件並將其託管在自己的服務器上;3. 在 HTML 中包含 Bootstrap 文件;4. 根據需要編譯 Sass/Less;5. 導入定製文件(可選)。設置完成後,即可使用 Bootstrap 的網格系統、組件和样式創建響應式網站和應用程序。

bootstrap怎麼看日期 bootstrap怎麼看日期 Apr 07, 2025 pm 03:03 PM

答案:可以使用 Bootstrap 的日期選擇器組件在頁面中查看日期。步驟:引入 Bootstrap 框架。在 HTML 中創建日期選擇器輸入框。 Bootstrap 將自動為選擇器添加樣式。使用 JavaScript 獲取選定的日期。

bootstrap按鈕怎麼用 bootstrap按鈕怎麼用 Apr 07, 2025 pm 03:09 PM

如何使用 Bootstrap 按鈕?引入 Bootstrap CSS創建按鈕元素並添加 Bootstrap 按鈕類添加按鈕文本

See all articles