1. 程式人生 > >CSS position 屬性:絕對定位與相對定位,以及浮動

CSS position 屬性:絕對定位與相對定位,以及浮動

以前一直很模糊定位原理,以為absolute與relative必須配合使用,使用absolute必須父標籤必須設定為relative。

可能的值:absolute,fixed,relative,static,static,inherit。

描述
absolute

生成絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。

元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。

fixed

生成絕對定位的元素,相對於瀏覽器視窗進行定位。

元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定。

relative

生成相對定位的元素,相對於其正常位置進行定位。

因此,"left:20" 會向元素的 LEFT 位置新增 20 畫素。

static 預設值。沒有定位,元素出現在正常的流中(忽略 top, bottom, left, right 或者 z-index 宣告)。
inherit 規定應該從父元素繼承 position 屬性的值。

最近才弄明白:

1.使用absolute屬性的標籤的父標籤position值必須是absolute/fixed/relative/inherit(不能是繼承static)中的一個。

2.left是相對於離自己最近的父輩容器,且已經relative|absolute|fixed。  margin-left也不一定是相對於父容器而言的,應該是作用於它在文件流的位置。比如有浮動效果時float屬性時,可能margin-left就不是相對父容器而言了。

3.當父標籤是body時,子標籤設定position:absolute。position:absolute 元素相對最近的 position 為 absolute / relative / fixed 的祖先元素(包含塊)定位,如果沒有這樣的祖先元素,則以初始包含塊進行定位,而初始包含塊並不是以<html>或<body>進行定位的。

可以分別給div加樣式的bottom:0px;然後看下效果,body加position:relative樣式,htmlposition:relative樣式。結果表示初始包含塊並不是以<html>或<body>進行定位的。

<style type="text/css">
    html{
        border: 1px solid #ff4eb6;
        background-color: #b8eea5;

    }
    body{
        width:300px;
        height: 200px;
        margin: 10px auto;
        background-color: #eed2dc;
        border: 1px solid #0f0407;

    }
    div{
        width: 100px;
        height: 100px;
        background-color: #3ff;
        position: absolute;
        bottom:0;
    }
</style>

4.絕對定位標籤對後面標籤的位置影響,無影響,即後面標籤的位置,就當絕對定位的標籤不存在一樣,只是可能會被絕對定位遮擋。

5.相對定位標籤對後面標籤的位置影響,只與相對標籤的width,height,padding,margin的值有影響,與top,left,right,bottom值無關。即後面標籤的位置,就當相對定位標籤是static定位。不考慮他的top,left,right,bottom值。

6.浮動與絕對定位的區別。浮動的框可以向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框為止。

由於浮動框不在文件的普通流中,所以文件的普通流中的塊框表現得就像浮動框不存在一樣。

如果浮動元素的高度不同,那麼當它們向下移動時可能被其它浮動元素“卡住”。

7.浮動div對後面標籤的位置影響,不影響,只是會覆蓋部分後面標籤,標籤對後面標籤裡的內容位置有影響,但是對後面標籤的左上角座標無影響。

ps:後面標籤指的緊接著 絕對定位/相對定位/浮動標籤 的下一個標籤,都是隻的預設標籤,即position:static,並且無浮動。不是預設標籤就按相應的規則計算標籤位置。如position:relative就按預設位置,然後加上top,left等值移動後的位置。浮動就按浮動的規則。


<body>
<div style="position: relative; top: 20px;left: 20px;background-color: red;width: 400px;height: 400px;">
    <div style="position: absolute;width: 100px;height: 100px;background-color: white;left: 50px;">absolute</div>
    <div style="width: 200px;height: 200px;background-color: gray;">static</div>

</div>
<div style="background-color: #77ab35;width: 400px;height: 400px;">
    <div style="position: relative;width: 100px;height: 100px;background-color: white;left: 50px;">relative</div>
    <div style="width: 200px;height: 200px;background-color: gray;">static</div>
</div>


相關推薦

CSS position 屬性絕對定位相對定位以及浮動

以前一直很模糊定位原理,以為absolute與relative必須配合使用,使用absolute必須父標籤必須設定為relative。 可能的值:absolute,fixed,relative,s

CSS position 屬性 絕對定位相對定位以及浮動

                以前一直很模糊定位原理,以為absolute與relative必須配合使用,使用absolute必

HTML絕對定位相對定位

HTML絕對定位與相對定位 一開始接觸HTML和CSS時,不可避免地會遇到定位的問題,這時會很難分清楚絕對定位和相對定位區別,導致很多時候自己在用的時也是兩者都試試看,哪個好用哪個,這是不可取的。下面講述一下兩者的區別,並以自己過來人的身份提供一種簡單易記的方法。 首先先在這裡

css關於position屬性的用法(絕對定位相對定位的混淆)

挺久沒用,有點忘了關於position這個屬性的用法,導致在練手的時候又犯了跟最開始新手才會犯的錯誤,那就是absolute和relative的用法。 在此首先看一下官方對這兩個屬性值的解釋: position 屬性值的含義: static元素框正常生成。塊級元素

css絕對定位相對定位文檔流的理解

css 定位 相關鏈接:http://blog.csdn.net/libertea/article/details/11662661 今天在這裏看到了關於一個定位的博客,感覺講的挺好的,在這裏分享一下鏈接。css中絕對定位和相對定位,文檔流的理解

【轉載】CSS絕對定位相對定位

通過 原本 second span sof 動手 lan 根據 為什麽 我們先來看看CSS3 Api中對position屬性的相關定義: static:無特殊定位,對象遵循正常文檔流。top,right,bottom,left等屬性不會被應用。 relative:對象遵

[原創] css中的絕對定位相對定位

www. relative get 邊界 原創 html 初始 一個 有關 我對博客的認識是:記錄問題,解決問題,分享知識。如果有輪子,我不需要造輪子。   首先,定位無論是相對定位還是絕對定位,必須有一個參考項,而這個參考項,專業術語稱之為 包含塊,這裏的包含塊是指

CSS position 屬性

font dex bottom left 沒有 屬性 生成 static 繼承 1.absolute:生成絕對定位的元素,相對於 static 定位以外的第一個父元素進行定位。元素的位置通過 "left", "top", "right" 以及 "bottom" 屬性進行規定

css絕對定位相對定位和文件流的那些事(非本人)

                HTML是流式文件,所以HTML預設佈局就是流式佈局,這裡所說的流式佈局怎麼理解呢?所謂了流式             &nb

20181127——Css中的絕對定位相對定位

在CSS中,所謂絕對定位指的是“相對於”已經定位的祖先元素,如果不存在已經定位的祖先元素,那麼就“相對於”最初的包含快(一般情況下為body);相對定位指的是相對於元素初始位置進行定位。 絕對定位本身與文件流無關,因此不佔空間,普通文件流中的元素的佈局就當絕對定位的元素不存時一樣,所以 它們

CSS定位相對定位+絕對定位+固定定位

1.相對定位:相對定位就是相對於自己以前在標準流中的位置來移動。 1.1相對定位是不脫離標準流的, 會繼續在標準流中佔用一份空間 1.2在相對定位中同一個方向上的定位屬性只能使用一個 1.3由於相對定位是不脫離標準流的, 所以在相對定位中是區分塊級元素/行內元素/行內塊級元素 1.4

CSS:絕對定位相對定位

CSS:絕對定位和相對定位 ​ CSS定位一直以來都是建立網頁佈局很重要的一部分。儘管有一些新的CSS佈局例如Flexbox和CSS Grid出現。定位依舊在任何一個網頁設計者的佈局技巧中佔有著重要的位置。 static (靜態) absolute (絕對)

css 絕對定位相對定位

絕對定位 絕對定位值的是通過規定HTML元素在水平和垂直方向上的位置來固定元素,基於絕對定位的元素不佔據空間。 絕對定位的位置宣告是相對於已定位的並且包含關係最近的祖先元素。如果當前需要被定位的元素沒有已定位的祖先元素做參考值,則相對於整個網頁。  例項1: <

css position 屬性 定位學習

以下是基於W3cschool的內容(http://www.w3school.com.cn/),部分轉自網路。 可能有點亂。 CSS position 屬性 這個屬性定義建立元素佈局所用的定位機制。任何元素都可以定位,不過絕對或固定元素會生成一個塊級框,而不論該元素本身是什麼

CSS 盒子模型絕對定位相對定位

一、盒子模型:         標準模式和混雜模式(IE)。在標準模式下瀏覽器按照規範呈現頁面;在混雜模式下,頁面以一種比較寬鬆的向後相容的方式顯示。混雜模式通常模擬老式瀏覽器的行為以防止老站點無法工

css絕對定位相對定位例項。

先寫一段簡單程式碼:<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-wi

CSS中的絕對定位相對定位

position 屬性規定元素的定位型別。任何元素都可以定位,不過絕對或固定元素會生成一個塊級框,而不論該元素本身是什麼型別。相對定位元素會相對於它在正常流中的預設位置偏移。 position:relative | absolute | fixed | sta

CSS篇之1. CSS 盒子模型絕對定位相對定位

1. CSS 盒子模型,絕對定位和相對定位 解答: (1)css盒子模型: CSS中,盒子模型也叫框模型,它規定了元素框處理元素內容、內邊距、邊框 和 外邊距 的方式。在HTML文件中,每個元素都有盒子模型。 內邊距、邊框和外邊距可以應用於一個

CSS盒子模型、絕對定位相對定位

一、CSS盒子模型: 標準模式和混雜模式(IE)。在標準模式下瀏覽器按照規範呈現頁面;在混雜模式下,頁面以一種比較寬鬆的向後相容的方式顯示。混雜模式通常模擬老式瀏覽器的行為以防止老站點無法工作。 盒子模型的邊框(border)就是圍繞著內容及補白的線,這條線你可以設定它

[CentOS 7系列]絕對路徑相對路徑

change linux 管理員 項目 根目錄 前幾帖中說過,在linux系統中,所有的一切都是以文件的形式呈現。當管理員調用文件時,需要在linux系統中定位到文件的位置。這裏就采用絕對路徑和相對路徑兩種方式。 所謂絕對路徑,就是指文件在硬盤上真正存在的路徑。這個路徑是相對