2012-07-03

用 jQuery 取得 Div 的寬度與高度(Width, Padding, Border, Margin)

這邊講的不一定是 div,所有 Block 物件都可以適用。

什麼是 Block 物件?

簡單講就是會斷行的物件,像 div 或 p 都是;相對於 Block 物件的叫做 Inline 物件,也就是不會斷行的物件,像是 span 或 img。

有關 Block 物件的寬度與高度有個專有名詞,叫做「Box Model」,有興趣 google 一下 Box Model 的圖片就知道了。


Block 物件由四部份組成:
  • Content - 放內容的地方
  • Padding - 邊框與內容之間的留白
  • Border - 邊框
  • Margin - 邊框以外的留白

一般講的寬度指的是內容寬度,但一個 div 的實際寬度不僅只於內容寬度,尤其在做 CSS 排版時更不能搞錯,必須同時考量 Padding、Border 與  Margin 的寬度,四個加起來才是 div 真正佔有的寬度。

jQuery 全都有了!
var content = $('div').width();
var contentWithPadding = $('div').innerWidth();
var withoutMargin = $('div').outerWidth();
var full = $('div').outerWidth(true);
寬度與高度概念一樣,只差水平與垂直向而已。

Margin 有個特色,就是當兩個有 margin的 div 靠在一起時,兩個 div 緊鄰的 margin 不是相加,而是取其大者,舉例來說,兩個 10px margin 的 div 併在一起只會有 10px margin 的距離,若是一個 20px margin,另一個為 10px margin,則會有 20px 的 margin。


沒有留言:

張貼留言