溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

css中固定定位和絕對(duì)定位有哪些區(qū)別

發(fā)布時(shí)間:2022-09-23 10:16:56 來源:億速云 閱讀:198 作者:iii 欄目:web開發(fā)

這篇“css中固定定位和絕對(duì)定位有哪些區(qū)別”文章的知識(shí)點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“css中固定定位和絕對(duì)定位有哪些區(qū)別”文章吧。

固定定位和絕對(duì)定位的區(qū)別:1、固定定位使用“position: fixed;”樣式設(shè)置,而絕對(duì)定位使用“position: absolute;”樣式設(shè)置;2、固定定位的偏移基準(zhǔn)是屏幕(瀏覽器視口),而絕對(duì)定位的基準(zhǔn)則是父級(jí)元素。

本教程操作環(huán)境:windows7系統(tǒng)、CSS3&&HTML5版、Dell G3電腦。

css中的固定定位

固定定位使用“position: fixed;”設(shè)置。

固定定位的元素是相對(duì)于視口定位的,這意味著即使?jié)L動(dòng)頁面,它也始終位于同一位置。即被固定的元素不會(huì)隨著滾動(dòng)條的拖動(dòng)而改變位置。在視野中,固定定位的元素的位置是不會(huì)改變的。

top、right、bottom 和 left 屬性用于定位此元素。

position:fixed;
top:像素值;
bottom;像素值;
left:像素值;
right:像素值;

“position:fixed;”是結(jié)合top、bottom、left和right這4個(gè)屬性一起使用的,其中“position:fixed;”使得元素成為固定定位元素,接著使用top、bottom、left和right這4個(gè)屬性來設(shè)置元素相對(duì)瀏覽器的位置。

top、bottom、left和right這4個(gè)屬性不一定全部都用到。注意,這4個(gè)值的參考對(duì)象是瀏覽器的4條邊。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
body{
height: 1500px;
}
header {
width: 100%;
background-color: #FFC0CB;
position: fixed;
top: 0;
}
</style>
</head>
<body>
<header>
<h2>網(wǎng)站標(biāo)題</h2>
</header><br><br><br><br><br><br><br>
<div>測試文本!測試文本!測試文本!測試文本!測試文本!測試文本!測試文本!測試文本!</div>
</body>
</html>

css中固定定位和絕對(duì)定位有哪些區(qū)別

css中的絕對(duì)定位

絕對(duì)定位使用“position: absolute;”設(shè)置。

在css中,絕對(duì)定位是使元素的位置與文檔流無關(guān)的定位方式。

設(shè)置為絕對(duì)定位的元素框從文檔流完全刪除,并相對(duì)于其包含塊定位,包含塊可能是文檔中的另一個(gè)元素或者是初始包含塊。默認(rèn)情況下,絕對(duì)定位的位置是相對(duì)于瀏覽器而言,配合top、right、bottom、left進(jìn)行定位。

元素原先在正常文檔流中所占的空間會(huì)關(guān)閉,就好像該元素原來不存在一樣。元素定位后生成一個(gè)塊級(jí)框,而不論原來它在正常流中生成何種類型的框。

絕對(duì)定位的元素相對(duì)于最近的定位祖先元素進(jìn)行定位(而不是相對(duì)于視口定位,如 fixed)。然而,如果絕對(duì)定位的元素沒有祖先,它將使用文檔主體(body),并隨頁面滾動(dòng)一起移動(dòng)。

下面我們來詳細(xì)了解一下絕對(duì)定位(absolute)。其實(shí)絕對(duì)定位absolute和浮動(dòng)float有部分相似性;如果能理解浮動(dòng)float,對(duì)理解絕對(duì)定位absolute會(huì)大有幫助。

先說absolute和float的相似處:包裹性高度欺騙

包裹性

所謂一圖勝千言(唯一的區(qū)別是:下圖的p增加了absolute)

css中固定定位和絕對(duì)定位有哪些區(qū)別

<p style="border:4px solid blue;">
  <img src="img/25/1.jpg" />
</p>
<p style="border:4px solid red; position: absolute;">
  <img src="img/25/2.jpg" />
</p>

一旦給元素加上absolute或float就相當(dāng)于給元素加上了display:block;。什么意思呢?比如內(nèi)聯(lián)元素span默認(rèn)寬度是自適應(yīng)的,你給其加上width是不起作用的。要想width定寬,你需要將span設(shè)成display:block。但如果你給span加上absolute或float,那span的display屬性自動(dòng)就變成block,就可以指定width了。因此如果看到CSS里absolute/float和display:block同時(shí)出現(xiàn),那display:block就是多余的CSS代碼。

高度欺騙

上例中給圖片外層的p加上absolute,因此高度欺騙未能很好的體現(xiàn)出來,將absolute移到內(nèi)部圖片上,效果就出來了:

css中固定定位和絕對(duì)定位有哪些區(qū)別

<p style="border:4px solid blue;">
  <img src="img/25/1.jpg" />
</p>
<p style="border:4px solid red;">
  <img style="position: absolute;" src="img/25/2.jpg" />
</p>

如果你看過CSS浮動(dòng)float詳解會(huì)發(fā)現(xiàn)效果是一樣的。但其背后的原理其實(shí)是有區(qū)別的,并不完全相同。加點(diǎn)文字就看出來了:

css中固定定位和絕對(duì)定位有哪些區(qū)別

<p style="border:4px solid blue;">
  <img src="img/25/1.jpg" />
</p>
<p style="border:4px solid red;">
  <img style="position: absolute;" src="img/25/2.jpg" />
  我是一個(gè)絕對(duì)定位的absolute元素
</p>

從圖中明顯看出文字被圖片遮蓋了,這點(diǎn)和float不同。float是欺騙父元素,讓其父元素誤以為其高度塌陷了,但float元素本身仍處于文檔流中,文字會(huì)環(huán)繞著float元素,不會(huì)被遮蔽。

但absolute其實(shí)已經(jīng)不能算是欺騙父元素了,而是出現(xiàn)了層級(jí)關(guān)系。如果處于正常的文檔流中的父元素算是凡人的話,那absolute已經(jīng)得道成仙,用現(xiàn)在的話說已經(jīng)不在一個(gè)次元上。從父元素的視點(diǎn)看,設(shè)成absolute的圖片已經(jīng)完全消失不見了,因此從最左邊開始顯示文字。而absolute的層級(jí)高,所以圖片遮蓋了文字。

有了上面的基礎(chǔ)后,你還需要了解absolute以下特性

  • 如何確定定位點(diǎn)

  • 和relative相愛相殺

  • 和z-index的關(guān)系

  • 減少重繪和回流的開銷

固定定位和絕對(duì)定位的區(qū)別

1、設(shè)置方式不同

固定定位使用“position: fixed;”設(shè)置。

絕對(duì)定位使用“position: absolute;”設(shè)置。

2、偏移基準(zhǔn)不同

固定定位的偏移基準(zhǔn)是屏幕(瀏覽器窗口),而絕對(duì)定位的基準(zhǔn)則是父級(jí)元素。

而且最好還要注意ie6不兼容固定定位而兼容絕對(duì)定位

以上就是關(guān)于“css中固定定位和絕對(duì)定位有哪些區(qū)別”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

css
AI