2010-12-07 52 views
13

我需要設置div的最小高度。在Firefox中一切都很好,但我在IE7上遇到了麻煩 - 這是一個意想不到的大空間。如何在IE7中設置div的最小高度?

ul, il { 
    list-style: none; 
    padding: 0px; 
    margin: 0px; 
} 

    .p_block{ 
     color: #336699; 
     font-size: 14px; 
     min-height: 18px; 
    } 

<ul> 
    <li><a href="#"><div class="p_block">text</div></a></li> 
    <li><a href="#"><div class="p_block">text</div></a></li> 
    <li><a href="#"><div class="p_block">text</div></a></li> 
    <li><a href="#"><div class="p_block">text</div></a></li> 
</ul> 

奇怪的是,如果我從ul, li刪除padding: 0px;,一切工作正常。爲什麼?

+0

你應該考慮改變這個答案。 – Deviljho 2014-11-14 04:25:33

回答

1

使用這個CSS的IE & FF

.p_block{ 
     color: #336699; 
     font-size: 14px; 
     min-height: 18px; 
     height:18px !important; 
    } 
45

@Chinmayee,與該解決方案的問題是,元素的高度將無法在Firefox和其他一些成長過去18像素。

良好的跨瀏覽器解決方案,以最小高度:

{ 
height: auto !important; 
height: 200px; 
min-height: 200px; 
} 

基本上;
第1行:大多數現代瀏覽器都明白!重要,因此不會覆蓋下一行中的屬性。

2號線:因爲舊的瀏覽器不知道!重要的是,它必須是一個高度。除非有溢出:屬性集,否則較舊的瀏覽器將允許元素增長。

第3行:現代瀏覽器理解最小和!重要。所以現代瀏覽器可以理解高度:auto和min-height:200px,而舊版本的瀏覽器可以理解height:200px;但將允許元素增長;)

+0

我認爲IE6理解!重要但不是最小高度,所以它可能無法正常工作。 – Muhd 2012-04-06 23:34:03

+2

@ muhd,是的,但如果有更多的內容存在,IE仍然會擴展高度..(*另一個bug,在這種情況下對我們有利*) – 2012-05-08 10:28:25

2

下面是我希望的解決方案:

.p_block{ 
     color: #336699; 
     font-size: 14px; 
     min-height: 18px; 
} 

那麼對於IE使用:

.p_block{ 
     height: 18px; 
} 

IE會將高度最小高度,因此會增長。

可以通過包括如下所示的特定IE6 & 7 CSS文件指定IE(雲在<頭>)

<!--[if IE 6]> 
     <link rel="stylesheet" type="text/css" href="css/ie6-hacks.css" /> 
     <script type="text/javascript"> 
      // IE6 Background Hover Flicker Fix 
      try { 
       document.execCommand('BackgroundImageCache',false,true); 
       }catch(ignoreme){ 
      } 
     </script> 
    <![endif]--> 
    <!--[if IE 7]> 
     <link rel="stylesheet" type="text/css" href="css/ie7-hacks.css" /> 
    <![endif]--> 
2

小姐出auto height和重要和height前添加*

這將只適用於IE7及以下版本。

.p_block{ 
    min-height: 30px; 
    *height: 30px; 
} 

這是我用什麼,IE7將不使用min-height但將設置height30px,如有需要會更大。