文檔流

文檔流

  • 定義:將窗體自上而下分成一行行, 並在每行中按從左至右的順序排放元素,即爲文檔流
  • 佔用文檔流:我們將網頁比作一張二維平面,那麼掛載在該平面的網頁對象就稱爲佔用了文檔流。網頁中大部分對象默認是佔用文檔流。
  • 不佔文檔流:不掛在文檔流這個平面上的對象,則稱爲不佔用文檔流。主要方式有:
  • 設置float
  • 設置position爲fixed
  • 設置position爲absolute
  • 父類元素與子類元素的關係

內聯元素和塊元素

  • 區分:所佔寬度是否是佔用了全部寬度
  • 塊元素:佔用了全部寬度,在前後都是換行符。eg:
  <p>
  <h1>
  <div>
  • 內聯元素:只需要必要的寬度,不強制換行。
  <span><a>
  • 改變元素的顯示方式:** display **
  • 將內聯元素改爲塊元素:display:block;
    在這裏插入圖片描述
  • 將塊元素改爲內聯元素:display:inline;
    在這裏插入圖片描述
  • 【注】:一個內聯元素設置爲display:block是不允許有它內部的嵌套塊元素。

定位

  • 定義:CSS中元素可以使用top,bottom,left,right來設置元素的定位。position的值不一樣,這些屬性所參考的位置不一樣。

  • static:HTML元素的默認值,即沒有定位,元素出現在正常的流中。使用該定位方式(靜態方式)的元素不會受到 top, bottom, left, right影響。

  • fixed:元素的位置相對於瀏覽器窗口是固定位置。即使窗口是滾動的它也不會移動。

  • Fixed定位使元素的位置與文檔流無關,因此不佔據空間。(脫離文檔流)

  • Fixed定位的元素和其他元素重疊。(和其他元素不在同一平面)

  • relative:相對定位元素的定位是相對其正常位置。

  • 相對定位的元素可以和其他元素重合,但它仍然處於文檔流這一平面中,所以該元素仍然佔文檔流空間。

  • 與相對定位的元素重合的其他元素,毋庸置疑,也佔文檔流。

  • 相對定位元素經常被用來作爲絕對定位元素的容器塊。

  • absolute:絕對定位的元素的位置相對於最近的已定位父元素,如果元素沒有已定位的父元素,那麼它的位置相對於<html>

  • 總結

    • static元素不會受到left,top,right,bottom等屬性影響,但可以通過box-model的屬性來改變它們的位置。eg:
    <span style="position:static;left:100px;">static定位</span>
    <br>
    <span style="position:static;margin-left:100px;">static定位</span>
    

    在這裏插入圖片描述

    • fixed定位與absolute定位的聯繫與區別
    • fixed定位是相對於瀏覽器窗口固定,而absolute是相對於文檔(最近的父類元素,即使沒有父類元素,也是相對於html標籤)固定
    • 都脫離了文檔流,都不佔文檔流的空間

浮動 Float

  • 定義:CSS 的 Float(浮動),會使元素向左或向右移動,其周圍的元素也會重新排列。
  • 方式:元素的水平方向浮動,意味着元素只能左右移動而不能上下移動。
  • 特點
  • 一個浮動元素會盡量向左或向右移動,直到它的外邊緣碰到包含框或另一個浮動框的邊框爲止。
  • 浮動元素之後的元素將圍繞它。
  • 浮動元素之前的元素將不會受到影響。
  • 如果圖像是右浮動,後面的對象流將環繞在它左邊。
  • 彼此相鄰的浮動元素:幾個浮動的元素放到一起,如果有空間的話,它們將彼此相鄰
  • 清除浮動: 使用 clear
  • 素浮動之後,周圍的元素會重新排列,爲了避免這種情況,使用 clear 屬性。
  • clear 屬性指定元素兩側不能出現浮動元素。

脫離文檔流的方式總結

  • position:absolute;
  • position:fixed;
  • float:left/right;
  • 父元素脫離文檔流,則子元素也會脫離。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章