1. 程式人生 > >【Html】雙邊距問題

【Html】雙邊距問題

IE6中雙邊距Bug:

  發生場合:當給父元素內第一個浮動元素設定margin-left(元素float:left)或margin-right(元素float:right)時margin加倍。

  解決方法:是給浮動元素加上display:inline;CSS屬性;或者用padding-left代替margin-left。

  原理分析:塊級物件預設的display屬性值是block,當設定了浮動的同時,還設定了它的外邊距就會出現這種情況。也許你會問:“為什麼之後的物件和第一個物件之間就不存在雙倍邊距的Bug”?因為浮動都有其相對應的物件,只有相對於其父物件的浮動物件才會出現這樣的問題。第一個物件是相對父物件的,而之後物件是相對第一個物件的,所以之後物件在設定後不會出現問題。為什麼display:inline可以解決這個雙邊距bug,首先是inline元素或inline-block元素是不存在雙邊距問題的。然後,float:left等浮動屬性可以讓inline元素haslayout,會讓inline元素表現得跟inline-block元素的特性一樣,支援高寬,垂直margin和padding等,所以div class的所有樣式可以用在這個display inline的元素上。