相對定位

Frontend SELF TW
等級 21 , 課堂 2
開放

3.1 position: relative

CSS中的相對定位讓元素可以相對於它們在文件流中的初始位置移動。當使用position: relative時,元素在正常流中仍保有原位,但可以通過屬性toprightbottomleft來移動它。這些屬性允許相對於其正常位置移動元素。

相對定位的基本原則

使用相對定位(position: relative)時,元素從文件流中的原始位置移動。這種移動只影響該元素本身,而其他元素保持其位置,仿佛元素未被移動。這種特性可以用來創建元素重疊的效果或額外的視覺留白。

語法:

    
      .element {
        position: relative;
        top: value;
        right: value;
        bottom: value;
        left: value;
      }
    
  

其中:

  • top: 相對於正常位置向下移動元素
  • right: 相對於正常位置向左移動元素
  • bottom: 相對於正常位置向上移動元素
  • left: 相對於正常位置向右移動元素
  • <值>: 可以是任何CSS中允許的長度值(px%em等)

3.2 top 屬性

top屬性使元素相對於其初始位置向下移動。

使用top的範例:

CSS
    
      .relative-top {
        position: relative;
        top: 20px; /* 向下移動元素20個像素 */
      }
    
  

使用範例:

CSS
    
      .container {
        min-height: 200px;
      }

      .box {
        padding: 20px;
      }

      .static-box {
        background-color: lightgray;
      }

      .relative-top {
        position: relative;
        top: 20px;
        background-color: lightblue;
      }
    
  
HTML
    
      <div class="container">
        <div class="box static-box">這是普通塊</div>
        <div class="box relative-top">這個塊會向下移動20px。</div>
        <div class="box static-box">這是普通塊</div>
      </div>
    
  

3.3 right 屬性

right屬性使元素相對於其初始位置向左移動。

使用right的範例:

CSS
    
      .relative-right {
        position: relative;
        right: 20px; /* 向左移動元素20個像素 */
      }
    
  

使用範例:

CSS
    
      .container {
        min-height: 200px;
      }

      .box {
        padding: 20px;
      }

      .static-box {
        background-color: lightgray;
      }

      .relative-right {
        position: relative;
        right: 20px;
        background-color: lightgreen;
        padding: 20px;
      }
    
  
HTML
    
      <div class="container">
        <div class="box static-box">這是普通塊</div>
        <div class="box relative-right">這個塊會向左移動20px。</div>
        <div class="box static-box">這是普通塊</div>
      </div>
    
  

3.4 bottom 屬性

bottom屬性使元素相對於其初始位置向上移動。

使用bottom的範例:

CSS
    
      .relative-bottom {
        position: relative;
        bottom: 20px; /* 向上移動元素20個像素 */
      }
    
  

使用範例:

CSS
    
      .container {
        min-height: 200px;
      }

      .box {
        padding: 20px;
      }

      .static-box {
        background-color: lightgray;
      }

      .relative-bottom {
        position: relative;
        bottom: 20px;
        background-color: lightcoral;
        padding: 20px;
      }
    
  
HTML
    
      <div class="container">
        <div class="box static-box">這是普通塊</div>
        <div class="box relative-bottom">這個塊會向上移動20px。</div>
        <div class="box static-box">這是普通塊</div>
      </div>
    
  

3.5 left 屬性

left屬性使元素相對於其初始位置向右移動。

使用left的範例:

CSS
    
      .relative-left {
        position: relative;
        left: 20px; /* 向右移動元素20個像素 */
      }
    
  

使用範例:

CSS
    
      .container {
        min-height: 200px;
      }

      .box {
        padding: 20px;
      }

      .static-box {
        background-color: lightgray;
      }

      .relative-left {
        position: relative;
        left: 20px;
        background-color: lightgoldenrodyellow;
        padding: 20px;
      }
    
  
HTML
    
      <div class="container">
        <div class="box static-box">這是普通塊</div>
        <div class="box relative-left">這個塊會向右移動20px。</div>
        <div class="box static-box">這是普通塊</div>
      </div>
    
  

3.6 與相鄰元素的交互

使用position: relative的元素仍然在文件的正常流中,這意味著它們仍然佔據著它們未移動時會佔據的空間。這允許移動元素而不改變頁面上其他元素的佈局。

使用範例:

CSS
    
      .container {
        border: 2px solid #000;
        padding: 10px;
      }

      .box {
        position: relative;
        background-color: #e74c3c;
        color: white;
        padding: 20px;
        margin: 10px;
        width: 200px;
      }

      .box1 {
        top: 20px;
      }

      .box2 {
        left: 20px;
      }
    
  
HTML
    
      <div class="container">
        <div class="box box1">元素 1 (向下移動)</div>
        <div class="box box2">元素 2 (向右移動)</div>
        <div class="box">元素 3 (正常位置)</div>
      </div>
    
  

代碼說明:

  • .box1: 元素向下移動20像素,但它在正常流中的位置未變,這意味著其他元素會相對於它的原始位置排列
  • .box2: 元素向右移動20像素,但它在正常流中的位置未變
1
任務
Frontend SELF TW, 等級 21, 課堂 2
上鎖
相對定位
相對定位
1
任務
Frontend SELF TW, 等級 21, 課堂 2
上鎖
使用 left 與 bottom 屬性
使用 left 與 bottom 屬性
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION