天天看點

css常見問題解決

css常見問題解決

1、圖檔在IE6及以下有邊框

​ 解決:給img{border:0 none}

2、div插入圖檔有間隙

​ 解決:(1)div{font-size:0}(2)img{display:block}

3、雙倍浮動。在IE6及以下,浮動的元素,有設定margin,出現雙倍外邊距

​ 解決:給浮動的元素設定display:inline

4、在IE6及以下版本,部分塊級元素擁有預設高度

解決:設定font-size:0
           

5、表單元素行高不一樣

​ 解決:input{float:left}

6、按鈕大小不一樣

​ 解決:在input外邊套一層标簽,添加按鈕的樣式,把按鈕的預設樣式清除

7、百分比的bug,在IE6及以下版本中,解析的時候四舍五入計算,

50%+50% > 100%,

​ 解決:把右邊的浮動元素,clear:right

8、margin塌陷(目前元素(父元素裡面第一個子元素)與父元素沒有設定任何浮動的情況下,設定margin-top後,會錯誤的把margin-top加在父級元素上)

​ 解決: (1)給父元素添加overflow:hidden(推薦使用)

(2)給父元素設定border

​(3)給父元素或子元素設定float

9、margin合并bug(當兩個上下排列的元素,上元素有margin-bottom:30px;下面元素有margin-top:20px;他們中間的距離不會疊加,而是會設定為較大的值)

​ 解決:給兩個元素或其中一個加上display:inline-block

10、什麼是BFC

​ BFC塊級格式化上下文,什麼情況下建立?浮動時:float:left/right,絕對定位或固定定位時 position:absolut/fixed,預設情況下,将具有這些屬性的元素修改為display:inline-block什麼時候不能建立?float:none,display :inline-block、table-cell、table-caption、

11、如何清楚浮動

​ 解決:(1)給浮動的父元素添加overflow:hidden,觸發BFC清楚浮動;缺點:當内容增多時,容易造成不自動換行,導緻内容被隐藏,無法顯示溢出的元素;

​ (2)額外添加标簽,在最後一個浮動标簽後新添一個标簽,給其設定clear:both;缺點:maigin失效,導緻兩個div之間沒有任何間隙;

​ (3)使用after僞元素清除浮動

.clearfix:after{
   content:"";//設定内容為空
   height:0;//高度為0
   line-height:0;//行高為0
   display:block;//将文本轉為塊級元素
   visibility:hidden;//将元素隐藏
   clear:both//清除浮動
 }
 .clearfix{
   zoom:1;為了相容IE
  }
           
<body>
 <div class="fahter clearfix">
     <div class="big">big</div>
     <div class="small">small</div>
     <!--<div class="clear">額外标簽法</div>-->
 </div>
 <div class="footer"></div>
</body>
           

(4)使用before和after雙僞元素清除浮動

.clearfix:after,.clearfix:before{
     content: "";
     display: table;
 }
 .clearfix:after{
     clear: both;
 }
 .clearfix{
     *zoom: 1;
 }

<div class="fahter clearfix">
     <div class="big">big</div>
     <div class="small">small</div>
 </div>
 <div class="footer"></div>
           

繼續閱讀