2008/11/13

float

clear | float
float

指定元素是否浮動。可設定的值有:

  1. left:元素的矩格向容器的左邊靠。其它內容,則由此元素的右邊通過,開始位置與此元素的上方對齊;文字與文字行元素(inline)會圍繞此元素。display 特徵失效,除非是 display:none。
  2. right:元素的矩格向容器的右邊靠。其它內容,則由此元素的左邊通過,開始位置與此元素的上方對齊;文字與文字行元素會圍繞此元素。display 特徵失效,除非是 display:none。
  3. none:元素不浮動,此為預設值。
  4. inherit:繼承父元素的特徵值。

後面的元素要用 CLEAR 特徵,才能清除 float 元素的影響。

  • 上面的第二例設了 float:left,第三例設了 float:right,所以展現風格與第一個不同。
  • 第三例前的 BR 元素有加上 CLEAR

將區塊左右並列。可用在 DIV + CSS 佈局

  • DIV 區塊原本是上下排列,上例中的兩個 DIV 區塊都宣告 float 所以可以左右並列。

用在文字行元素。下例是用在 SPAN 元素。

  • 上例顯示,float 會將 SPAN 元素變成區塊。

父元素區塊的高度未能展開。下例中的 DIV 區塊的高度未能展開,只達文字的高度;這種情形只發生在子元素設為 float 時。

解決方法。請參考 How To Clear Floats Without Structural Markup。此文提出以下解決方法。對 IE/Win 來說,只要將父元素設為 hasLayout 即可,通常使用 zoom:1;下例中 DIV 加上 width:250px,會使 DIV 變成 hasLayout 狀態。對 Firefox, Safari, Chrome 則使用 .clearfix:after 所定義的風格區塊。下面的方法未涵蓋 IE/Mac 瀏覽器。

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

  • 上例,IE6, Firefox 成功;Safari, Chrome 失敗。

javascript 應用:可以用 元素物件.style 讀取與設定 float。在 IE 用 styleFloat;在 Firefox, Safari, Chrome 用 cssFloat。