HTML定位

定位

  • position屬性可以控制Web瀏覽器如何以 及在何處顯示特定的元素。
  • 可以使用position屬性把一個元素放置到網 頁中的任何位置。
  • 可選值:
  • static(默認)
  • relative(相對)
  • absolute(絕對)
  • fixed(固定)

相對定位relative

  • 每個元素在頁面的文檔流中都有一個自然位置。相 對于這個位置對元素進行移動就稱為相對定位。周 圍的元素完全不受此影響。
  • 當將position屬性設置為relative時,則開啟了元素 的相對定位。
  • 當開啟了相對定位以后,可以使用top、right、 bottom、left四個屬性對元素進行定位

特點

  • 如果不設置元素的偏移量,元素位置不會發生改變。
  • 相對定位不會使元素脫離文本流。元素在文本流中 的位置不會改變。
  • 相對定位不會改變元素原來的特性。
  • 相對定位會使元素的層級提升,使元素可以覆蓋文 本流中的元素。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>相對定位</title>
    <style type="text/css">
        .box1{
            height: 200px;
            background-color: red;
            position: relative;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /*
            定位:
                - 定位指的就是將指定的元素擺放到頁面的任意位置
                    通過定位可以任意的擺放元素
                - 通過position屬性來設置元素的定位
                -可選值:
                    static:默認值,元素沒有開啟定位
                    relative:開啟元素的相對定位
                    absolute:開啟元素的絕對定位
                    fixed:開啟元素的固定定位(也是絕對定位的一種)
            */
            /*
            當元素的position屬性設置為relative時,則開啟了元素的相對定位
                1.當開啟了元素的相對定位以后,而不設置偏移量時,元素不會發生任何變化
                2.相對定位是相對于元素在文檔流中原來的位置進行定位
                3.相對定位的元素不會脫離文檔流
                4.相對定位會使元素提升一個層級
                5.相對定位不會改變元素的性質,塊還是塊,內聯還是內聯
            */
            position: relative;
            /*
            當開啟了元素的定位(position屬性值是一個非static的值)時,可以通過left right top bottom四個屬性來設置元素的偏移量
                left:元素相對于其定位位置的左側偏移量
                right:元素相對于其定位位置的右側偏移量
                top:元素相對于其定位位置的上邊的偏移量
                bottom:元素相對于其定位位置下邊的偏移量
            通常偏移量只需要使用兩個就可以對一個元素進行定位,
            一般選擇水平方向的一個偏移量和垂直方向的偏移量來為一個元素進行定位
            */
            left: 100px;
            top: 200px;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
        }

        .s1{
            position: relative;
            width: 200px;
            height: 200px;
            background-color: yellow;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box2"></div>
    <div class="box3"></div>

    <span class="s1">我是一個span</span>
</body>
</html>

絕對定位absolute

  • 絕對定位指使元素相對于html元素或離他最近 的祖先定位元素進行定位。
  • 當將position屬性設置為absolute時,則開啟 了元素的絕對定位。
  • 當開啟了絕對定位以后,可以使用top、right、 bottom、left四個屬性對元素進行定位。

絕對定位的特點

  • 絕對定位會使元素完全脫離文本流。
  • 絕對定位的塊元素的寬度會被其內容撐開。
  • 絕對定位會使行內元素變成塊元素。
  • 一般使用絕對定位時會同時為其父元素指定一 個相對定位,以確保元素可以相對于父元素進 行定位。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>絕對定位</title>
    <style type="text/css">
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /*
            當position屬性值設置為absolute時,則開啟了元素的絕對定位

            絕對定位:
                1.開啟絕對定位,會使元素脫離文檔流
                2.開啟絕對定位以后,如果不設置偏移量,則元素的位置不會發生變化
                3.絕對定位是相對于離他最近的、開啟了定位的祖先元素進行定位的(一般情況,開啟了子元素的絕對定位,都會同時開啟父元素的相對定位)
                    如果所有的祖先元素都沒有開啟定位,則會相對于瀏覽器窗口進行定位
                4.絕對定位會使元素提升一個層級
                5.絕對定位會改變元素的性質:
                    內聯元素變成塊元素,
                    塊元素的寬度和高度默認都被內容撐開
            */
            position: absolute;
            /*left: 100px;
            top: 100px;*/
        }
        .box3{
            width: 300px;
            height: 300px;
            background-color: yellowgreen;
        }
        .box4{
            width: 300px;
            height: 300px;
            background-color: orange;
            /*開啟box4的相對定位*/
            /*position: relative;*/
        }
        .s1{
            width: 100px;
            height: 100px;
            background-color: yellow;
            /*開啟絕對定位*/
            position: absolute;
        }
    </style>
</head>
<body>
    <div class="box1"></div>
    <div class="box5">
        <div class="box4">
            <div class="box2"></div>
        </div>
    </div>
    <div class="box3"></div>

    <span class="s1">我是一個span</span>
</body>
</html>

固定定位fixed

  • 固定定位的元素會被鎖定在屏幕的某個位置上,當 訪問者滾動網頁時,固定元素會在屏幕上保持不動。
  • 當將position屬性設置為fixed時,則開啟了元素的 固定定位。
  • 當開啟了固定定位以后,可以使用top、right、
    bottom、left四個屬性對元素進行定位。
  • 固定定位的其他特性和絕對定位類似。
  • 對當前窗口進行定位(四個角)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>固定定位</title>
    <style type="text/css">
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /*
            當元素的position屬性設置fixed時,則開啟了元素的固定定位
            固定定位也是一種絕對定位,它的大部分特點都和絕對定位一樣
            不同的是:
                固定定位永遠都會相對于瀏覽器窗口進行定位
                固定定位會固定在瀏覽器窗口某個位置,不會隨滾動條滾動

            IE6不支持固定定位
            */
            position: fixed;
            left: 0px;
            top: 0px;
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
        }
    </style>
</head>
<body style="height: 5000px;">
    <div class="box1"></div>

    <div class="box4" style="width: 300px; height: 300px; background-color: orange; position: relative;">
        <div class="box2"></div>
    </div>

    <div class="box3"></div>
</body>
</html>

z-index層級

  • 當元素開啟定位以后就可以設置z-index這 個屬性。
  • 這個屬性可以提升定位元素所在的層級。
  • z-index可以指定一個整數作為參數,值越 大元素顯示的優先級越高,也就是z-index 值較大的元素會顯示在網頁的最上層。
  • 父元素的層級再高,也不會蓋住子元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>元素的層級</title>
    <style type="text/css">
        .box1{
            width: 200px;
            height: 200px;
            background-color: red;
            position: relative;
            z-index: 2;
            opacity: 0.5;
            filter: alpha(opacity=50);
        }
        .box2{
            width: 200px;
            height: 200px;
            background-color: yellow;
            /*開啟絕對定位*/
            position: absolute;
            /*設置偏移量*/
            top: 100px;
            left: 100px;
            /*
            如果定位元素的層級是一樣,則下邊的元素會蓋住上邊的
            通過z-index屬性可以用來設置元素的層級
            可以為z-index指定一個正整數作為值,該值將會作為當前元素的層級,層級越高,越優先顯示
            
            對于沒有開啟定位的元素不能使用z-index
            */
            z-index: 25;
            opacity: 0.5;
            filter: alpha(opacity=50);
        }
        .box3{
            width: 200px;
            height: 200px;
            background-color: yellowgreen;
            /*position: relative;
            z-index: 3;*/
            position: absolute;
            top: 200px;
            left: 200px;
            z-index: 30;
            /*
            設置元素的透明背景
            opacity可以用來設置元素背景的透明,它需要一個0-1之間的值
                0 表示完全透明
                1 表示完全不透明
                0.5 表示半透明
            */
            opacity: 0.5;

            /*
            opacity屬性在IE8及以下的瀏覽器中不支持
            IE8及以下的瀏覽器需要使用如下屬性代替
                alpha(opacity=透明度)
            透明度,需要一個0-100之間的值
                0 表示完全透明
                100 表示完全不透明
                50 半透明
            這種方式支持IE6,但是這種效果在IE Tester中無法測試
            */
            filter: alpha(opacity=50);
        }
        .box4{
            width: 200px;
            height: 200px;
            background-color: orange;
            /*開啟相對定位*/
            position: relative;
            /*父元素的層級再高,也不會蓋住子元素*/
            z-index: 20;

            top: 500px;
        }
        .box5{
            width: 100px;
            height: 100px;
            background-color: skyblue;
            /*開啟絕對定位*/
            position: absolute;
            z-index: 10;
        }
    </style>
</head>
<body>
    <div class="box1"></div>

    <div class="box2"></div>

    <div class="box3"></div>

    <div class="box4">
        <div class="box5"></div>
    </div>
</body>
</html>
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,001評論 6 537
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,786評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,986評論 0 381
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,204評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,964評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,354評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,410評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,554評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,106評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,918評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,093評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,648評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,342評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,755評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,009評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,839評論 3 395
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,107評論 2 375

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,777評論 1 92
  • 定位 position屬性可以控制web瀏覽器如何以及在何處顯示特定的元素。可以使用position屬性把一個元素...
    鬼會畫符閱讀 294評論 0 0
  • 定位的四種方式 1、默認定位:static 其沒有top/bottom/left/right屬性 2、固定定位:f...
    石子1110閱讀 452評論 0 1
  • position:relative(相對定位) position:relative; 相對定位 position...
    小小彭007閱讀 270評論 0 0
  • 從昌吉市區,驅車三個半小時的路程,我和指揮部同志一行來到準東開發區五彩灣派出所,看望來自泉州石獅的民警小李子。 小...
    孝愛義恩閱讀 329評論 0 0