html中的定位


1static(默認)

當你沒有為一個元素(例如div)指定定位方式時,默認為static,也就是按照文檔的流式(flow)定位,將元素放到一個合適的地方。所以在不同的分辨率下,采用流式定位能很好的自適應,取得相對較好的布局效果。

一般來說,我們不需要指明當前元素的定位方式是static——因為這是默認的定位方式。除非你想覆蓋從父元素繼承來的定位系統。

left,top屬性對static沒有效果,static是靠margin這些定位的。


2.固定定位   fixed 相對於瀏覽器定位
3.相對定位  relative 不會脫離原本的文檔流 相對於選本的位置 會占用原來的空間
4.絕對定位  absolute相對於離他最近的已定位父級進行定位
先用相對定位寫一個盒子 內容用絕對定位

使用absolute定位后,定位元素是脫離文檔流的,這時候父級會檢測不到定位元素的寬高

文檔流:文檔流是文檔中可顯示對象在排列時所占用的位置。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title></title>
    <style type="text/css">
        body{
            height: 10000px;
        }
        div{
            width: 100px;
            height: 100px;
        }
        #guDing{
            background: lightblue;
            position: fixed;
            left: 500px;
            top: 200px;
        }
        #xiangDui{
            background: lightcoral;
            position: relative;
            left: 100px;
            top: 100px;
        }
        #jueDui{
            background: lightgreen;
            position: absolute;
            left: 100px;
            top: 100px;
        }
        
    </style>
</head>
<body>
    
<div id="guDing"></div>
<div id="xiangDui"></div>
<div id="jueDui"></div>

</html>

運行此段代碼會發現 第2個和第3個盒子只有定位方式不同 但是兩個盒子會有8個像素的錯位

8個像素的差值的原因是

jueDui定位的盒子與ziangDui定位的盒子不完全重合,他倆之間有8個像素的錯開的原因因為
第2個盒子是相對定位 默認的位置是再瀏覽器的左上角 屬於body里的相當於body定位 但是再body中會有默認的8個像素
第三個盒子絕對定位相對於離他最近的已定位父級進行定位
並且絕對定位最近的父級是body 但是body沒有定位所以再往上移動一個父級 body的上一個父級為html 所以第3個盒子的定位是瀏覽器的界面

html沒有8個像素的maigin body中有8個像素的margin

此圖為body的conSole

 此圖為html的conSole

定位的重點是他們相對與誰定位  再什么時候什么定位合適 和組合運用時的順序

混合定位

如果對一個父元素設置relative,而對它的一個子元素設置absolute

float(浮動)

對於浮動,需要了解的是:

浮動會將元素從文檔流中刪除,他的空間會被其它元素補上。

浮動的參數物是父元素,是在父元素這個容器中飄。

為了清除浮動造成的對浮動元素之后元素的影響,我們在浮動元素之后加一個div,並將這個div的clear設置為both。

如果兩個元素都設置了浮動,則兩個元素並不會重疊,第一個元素占據一定空間,第二個元素緊跟其后。如果不想讓第二個元素緊跟其后,可以對第二個浮動的元素使用clear。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM