1. 程式人生 > >block,inline-block區別 float

block,inline-block區別 float

  • display:block
    1. block元素會獨佔一行,多個block元素會各自新起一行。預設情況下,block元素寬度自動填滿其父元素寬度。
    2. block元素可以設定width,height屬性。塊級元素即使設定了寬度,仍然是獨佔一行。
    3. block元素可以設定margin和padding屬性。
  • display:inline
    1. inline元素不會獨佔一行,多個相鄰的行內元素會排列在同一行裡,直到一行排列不下,才會新換一行,其寬度隨元素的內容而變化。
    2. inline元素設定width,height屬性無效。
    3. inline元素的margin和padding屬性,水平方向的padding-left, padding-right, margin-left, margin-right都產生邊距效果;但豎直方向的padding-top, padding-bottom, margin-top, margin-bottom不會產生邊距效果。
  • display:inline-block
    1. 簡單來說就是將物件呈現為inline物件,但是物件的內容作為block物件呈現。之後的內聯物件會被排列在同一行內。比如我們可以給一個link(a元素)inline-block屬性值,使其既具有block的寬度高度特性又具有inline的同行特性。

用float方式會帶來的麻煩:
使用float方式需要注意的是,要有一個元素來包裹float元素,同時避免接下來的元素緊緊地靠近它。

另外一個麻煩是,當有一個多行水平列表,但是列表裡的內容有不同的高度時,就會排的非常痛苦。

用display:inline-block;方式:
display:inline-block;方式樣式化列表時,既可使得列表元素能按行挨個排列,

同時元素還能保持其塊屬性,比如高和寬、上下邊距等。

但是對有不同高度內容的元素時,通常要設定對齊方式如vertical-align: top;來使元素頂部對齊。