2008/11/13

bottom, left, right, top

position | bottom | left | right | top

設定元素的矩形格子(box)之位置。用在 position 特徵設為 relative, absolute, fixed 時使用。

bottom

(一)當元素的 position 設為 absolute 或 fixed 時,此特徵指定元素外緣(margin)的底邊,距離包納區塊(containing block,通常是父矩格或是視窗)底邊的長度。也就是底邊到底邊的距離。

(二)當元素設為 position:relative 時,會先計算元素的正常位置,再向上移動 bottom 的值。此特徵可為負值。可設為:

  1. 長度:設定距離。
  2. 百分比:相對於包納區塊的高度的百分比。如果包納區塊沒有設定高度,而由內容決定高度,則百分比法如同 auto。
  3. auto:依據其它特徵決定高度,此為預設值。
  4. inherit:繼承父元素特徵。

正常位置

  • 風格用法:

     <div style='width:250px; height:250px; background:#338'><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkRzQhhtbzJZB2AZE3Ud_K4poNGAX7hjwO2OoBd8SNHhRMffYRfw9qSeNFexU7Ujwl_U6lb2RYPn3Dc4kJ8d8zE5LnmY2Gz6CMS7I37b1PUw5fYZLQIcEIxMI8Dqv2mYFEjEawXtTJZs/s200/shape.jpg" /> </div>

  • 執行結果:

底邊到底邊的距離。父元素高度的 4%。

  • 風格用法:

     <div style='position:relative;width:250px; height:250px; background:#338'><img style='position:absolute; bottom:4%'
      src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkRzQhhtbzJZB2AZE3Ud_K4poNGAX7hjwO2OoBd8SNHhRMffYRfw9qSeNFexU7Ujwl_U6lb2RYPn3Dc4kJ8d8zE5LnmY2Gz6CMS7I37b1PUw5fYZLQIcEIxMI8Dqv2mYFEjEawXtTJZs/s200/shape.jpg" /> </div>

  • 執行結果:

正常位置上移 bottom 的位移量。10px。

  • 風格用法:

     <div style='width:250px; height:250px; background:#338'><img style='position:relative; bottom:10px' 
      src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkRzQhhtbzJZB2AZE3Ud_K4poNGAX7hjwO2OoBd8SNHhRMffYRfw9qSeNFexU7Ujwl_U6lb2RYPn3Dc4kJ8d8zE5LnmY2Gz6CMS7I37b1PUw5fYZLQIcEIxMI8Dqv2mYFEjEawXtTJZs/s200/shape.jpg" /> </div>

  • 執行結果:

left

(一)當 position 設為 absolute 或 fixed 時,此特徵指定元素外緣的左邊,距離包納區塊左邊的長度。也就是左邊到左邊的距離。

(二)當設為 position:relative 時,會先計算元素的正常位置,再右移 left 的位移量,以正常位置在左為正值。此時包納區塊是指父元素的矩格。此特徵可為負值。可設為:

  1. 長度:設定距離。
  2. 百分比:相對於包納區塊的寬度的百分比。如果包納區塊沒有設定寬度,而由內容決定寬度,則百分比法如同 auto。
  3. auto:依據其它特徵決定寬度,此為預設值。
  4. inherit:繼承父元素特徵。

左邊到左邊的距離。負10px。

  • 風格用法:

     <div style='position:relative; width:250px; height:250px; background:#338'><img style='position:absolute; left:-10px'
        src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNHoHui01woBwkOdqFjwXKNEPsuk_t0yLFXO6PdJD_OO-fTyLAksb6JrIwm_E9aY-Lj5x7LkTxeu_450N-eutQiPei_C5uprpGOxv95ef9nZe7qrn_15MVUcLVoQ3sxRkggGNo_q9g_pA7/s200/absolute.JPG" /> </div>

  • 執行結果:

正常位置右移 left 的位移量。10px。

  • 風格用法:

     <div style='width:250px; height:250px; background:#338'><img style='position:relative; left:10px'
        src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNHoHui01woBwkOdqFjwXKNEPsuk_t0yLFXO6PdJD_OO-fTyLAksb6JrIwm_E9aY-Lj5x7LkTxeu_450N-eutQiPei_C5uprpGOxv95ef9nZe7qrn_15MVUcLVoQ3sxRkggGNo_q9g_pA7/s200/absolute.JPG" /> </div>

  • 執行結果:

(一)當 position 設為 absolute 或 fixed 時,此特徵指定元素外緣的右邊,距離包納區塊右邊的長度。也就是右邊到右邊的距離。

(二)當設為 position:relative 時,會先計算元素的正常位置,再左移 right 的位移量,以正常位置在右為正值。此時包納區塊是指父元素的矩格。此特徵可為負值。可設為:

  1. 長度:設定距離。
  2. 百分比:相對於包納區塊的寬度的百分比。如果包納區塊沒有設定寬度,而由內容決定寬度,則百分比法如同 auto。
  3. auto:依據其它特徵決定寬度,此為預設值。
  4. inherit:繼承父元素特徵。

右邊到右邊的距離。10px。

  • 風格用法:

     <div style='position:relative; width:250px; height:250px; background:#338'><img style='position:absolute; right:10px'
        src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNHoHui01woBwkOdqFjwXKNEPsuk_t0yLFXO6PdJD_OO-fTyLAksb6JrIwm_E9aY-Lj5x7LkTxeu_450N-eutQiPei_C5uprpGOxv95ef9nZe7qrn_15MVUcLVoQ3sxRkggGNo_q9g_pA7/s200/absolute.JPG" /> </div>

  • 執行結果:

正常位置左移 right 的位移量。10px。

  • 風格用法:

     <div style='width:250px; height:250px; background:#338'><img style='position:relative; right:10px'
        src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNHoHui01woBwkOdqFjwXKNEPsuk_t0yLFXO6PdJD_OO-fTyLAksb6JrIwm_E9aY-Lj5x7LkTxeu_450N-eutQiPei_C5uprpGOxv95ef9nZe7qrn_15MVUcLVoQ3sxRkggGNo_q9g_pA7/s200/absolute.JPG" /> </div>

  • 執行結果:

top

(一)當 position 設為 absolute 或 fixed 時,此特徵指定元素外緣的上邊,距離包納區塊上邊的長度。也就是上邊到上邊的距離。

(二)當設為 position:relative 時,會先計算元素的正常位置,再下移 top 的位移量,以正常位置在上為正值。此時包納區塊是指父元素的矩格。此特徵可為負值。可設為:

  1. 長度:設定距離。
  2. 百分比:相對於包納區塊的高度的百分比。如果包納區塊沒有設定高度,而由內容決定高度,則百分比法如同 auto。
  3. auto:依據其它特徵決定高度,此為預設值。
  4. inherit:繼承父元素特徵。

上邊到上邊的距離。10px。

  • 風格用法:

     <div style='position:relative; width:250px; height:250px; background:#338'><img style='position:absolute; top:10px'
      src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkRzQhhtbzJZB2AZE3Ud_K4poNGAX7hjwO2OoBd8SNHhRMffYRfw9qSeNFexU7Ujwl_U6lb2RYPn3Dc4kJ8d8zE5LnmY2Gz6CMS7I37b1PUw5fYZLQIcEIxMI8Dqv2mYFEjEawXtTJZs/s200/shape.jpg" /> </div>

  • 執行結果:

正常位置下移 top 的位移量。負10px。

  • 風格用法:

     <div style='width:250px; height:250px; background:#338'><img style='position:relative; top:-10px'
      src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkRzQhhtbzJZB2AZE3Ud_K4poNGAX7hjwO2OoBd8SNHhRMffYRfw9qSeNFexU7Ujwl_U6lb2RYPn3Dc4kJ8d8zE5LnmY2Gz6CMS7I37b1PUw5fYZLQIcEIxMI8Dqv2mYFEjEawXtTJZs/s200/shape.jpg" /> </div>

  • 執行結果:

:HOVER, :ACTIVE 的應用。使用時要注意,在 IE6 中 :HOVER, :ACTIVE 只能用在 ANCHOR 元素。

  • 風格用法:

     <style type='text/css'>
    .hvr {position:relative;
          display:block;
          background:red;
          width:250px;
          height:250px;
         }
    .hvr IMG {position:absolute;
              top:25px;
              left:25px;
              border:none;
             }
    .hvr:hover  {zoom:1; background:red;}
    .hvr:hover  IMG {top:0px; left:0px;}
    .hvr:active IMG {top:50px; left:50px;}
    </style> <a class=hvr href='javascript:void(0)'> <img src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkRzQhhtbzJZB2AZE3Ud_K4poNGAX7hjwO2OoBd8SNHhRMffYRfw9qSeNFexU7Ujwl_U6lb2RYPn3Dc4kJ8d8zE5LnmY2Gz6CMS7I37b1PUw5fYZLQIcEIxMI8Dqv2mYFEjEawXtTJZs/s200/shape.jpg' /> </a> 

  • 執行結果:

  • 上例使用 display:block 改造 ANCHOR 元素成為區塊元素。:active 在 IE6 的表現不佳。
  • 在 IE6 必須有 .hvr:hover 這行,與 href='javascript:void(0)',否則無法操作。

javascript 應用。可以用 style 物件 的特徵 top, right, bottom, left 作動態變化。此範例使用到 toggleCSS()

  • 風格用法:

     <div style='position:relative; background:red; width:250px; height:250px'>射擊遊戲, 益智遊戲, 好玩遊戲, 搏擊遊戲, 障礙遊戲, 賽車遊戲, 小遊戲, 冒險遊戲. <img  id='test' style='position:absolute' 
      src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmkRzQhhtbzJZB2AZE3Ud_K4poNGAX7hjwO2OoBd8SNHhRMffYRfw9qSeNFexU7Ujwl_U6lb2RYPn3Dc4kJ8d8zE5LnmY2Gz6CMS7I37b1PUw5fYZLQIcEIxMI8Dqv2mYFEjEawXtTJZs/s200/shape.jpg' />  </div><script type='text/javascript'>
    function toggleCSS(id, pty, v1, v2, ms)
    {
      var os=document.getElementById(id).style;
      os[pty]= (os[pty] == v1 ) ? v2 : v1;
      setTimeout('toggleCSS("'+id+'","'+pty+'","'+v1+'","'+v2+'",'+ms+')', ms);
    }
    toggleCSS("test", "top", "0px", "40px", 500);
    toggleCSS("test", "left", "0px", "40px", 750);
    </script> 

  • 執行結果:

    射擊遊戲, 益智遊戲, 好玩遊戲, 搏擊遊戲, 障礙遊戲, 賽車遊戲, 小遊戲, 冒險遊戲.