關於浮動,最主要的就是解決浮動在IE6、7下要做的相容問題。例如:雙邊距bug,圖片下的空隙問題等等。後面要和定位帶來的相容問題一起總結一下好了~~~ 塊的特征 1、預設獨占一行 2、沒有寬度時,預設撐滿一排(即父元素有多寬它就是多寬) 3、支持所有css命令 行內元素的特征 1、同排可以繼續跟同類 ...
關於浮動,最主要的就是解決浮動在IE6、7下要做的相容問題。例如:雙邊距bug,圖片下的空隙問題等等。後面要和定位帶來的相容問題一起總結一下好了~~~ 塊的特征
1、預設獨占一行
2、沒有寬度時,預設撐滿一排(即父元素有多寬它就是多寬)
3、支持所有css命令
行內元素的特征1、同排可以繼續跟同類的標簽
2、內容撐開寬度
3、不支持寬高(就是寫上寬高值也並沒有什麼卵用~)
4、上下的margin和padding有問題(不支持上下的margin,對padding的上下設置並沒有起到實際的作用。不會擠開上下的元素)
5、代碼換行被解析為一個空格
inline-block的特點和問題1、在一行顯示
2、內聯元素支持寬高
3、沒有寬度時預設內容撐開寬度
4、標簽之間的換行間隙被解析為空格(無論是塊元素還是內聯元素都會被解析)
5、IE6/7不支持塊屬性標簽的inline-block
浮動的意思就是使元素脫離文檔流,按照指定方向發生移動,遇到父級邊界或者相鄰的浮動元素停了下來。
加上float以後的元素有如下特征:1、塊在一排顯示;2、內聯元素支持寬高;3、無論是塊元素還是內聯元素沒有寬度時預設內容撐開寬度;4、脫離文檔流;(所以要想法設法清浮動呀~~)5、提升層級半層
如何清浮動呢?
1.父級加height。但是一般網頁height值是依據子元素的height和得來的,所以擴展性不好,一般不採用。 2.給所有的父級都添加浮動。但會導致margin左右自動失效3.給父級加display:inline-block。問題:margin左右auto失效
4.添加<div class="clear"></div>空標簽問題:IE6 最小高度 19px;(解決後IE6下還有2px偏差)在IE6下,高度小於19px的元素高度會被當作19px來處理~
5.添加<br>清浮動。但這個方法不符合結構、樣式、行為三者分離的要求 6.after偽類 清浮動方法(現在主流方法).clear:after{content:‘’;display:block;clear:both;} 必須是block才行
.clear{zoom:1;}
其中:
after偽類: 是在元素內部末尾添加內容;:after{content"添加的內容";} IE6,7下不相容,但是在IE6、7下,浮動元素父級有寬度就不用清浮動!
zoom:1;是為了觸發 IE下 haslayout,使元素根據自身內容計算寬高。但是FF 不支持 7.overflow:hidden 清浮動方法;overflow有包著浮動元素的特點!但在IE6下不相容,在IE6下包不住浮動元素,即在IE6下沒有包元素的特點
問題:需要配合 寬度 或者 zoom:1 來相容IE6;(如果該父元素有邊框,這裡寫寬度就會給該父級設置相應的寬度,寫zoom:1僅僅達到實現輕浮動的目的,邊框會包住整個頁面的width)