2012-11-26 68 views
1

當檢查我的元素時,我注意到我的第一個li的高度非常低。我有一些ul li高度問題

我想在選擇「城市(2)」後爲整個li添加背景。

背景填充只有城市(2)紐約的一半。我嘗試了沒有浮動,但後來我不能讓他們排隊。

我添加了2張照片。一個我漂浮,一個沒有。

With floating

Without floating

<ul class="specs"> 
     <li> 
      <div class="trigger">› City (2)</div> 
      <div class="cityByLocation"> 
       <ul> 
        <li class="cityInfo"> 
         <div class="cityName" style="float: left;"> 
          › New York 
         </div> 
         <div class="cityDistance" style="float: left;"> 
          430 miles 
         </div> 
         <div class="btn-take"></div> 
        </li> 
        <li class="cityInfo"> 
         <div class="cityName" style="float: left;"> 
          › Chicago 
         </div> 
         <div class="cityDistance" style="float: left;"> 
          430 miles 
         </div> 
         <div class="btn-take"></div> 
        </li> 
       </ul> 
      </div> 
     </li> 
<ul> 

CSS:

.cityName{ 
    float: left; 
    width: 45%; 
} 


.cityDistance { 
    float: left; 
    width: 20%; 
} 

.specs { 

    padding: 0; 
} 

.specs li { 
    padding: 0; 
    padding-top: 10px; 

    list-style: none; 
} 

.specs ul { 
    list-style: none; 
    padding: 0; 
} 
+0

我不知道什麼是你想實現精確的佈局,但我猜你應該浮動的列表項('.cityInfo'),而不是城市名稱和地點。 – bfavaretto

+0

我試圖讓它看起來像第一張圖片,但背景一直下降。 – sindrem

+0

明白了,看到我的答案。 – bfavaretto

回答

4

你需要清除花車埃裏克說。實現這一最簡單的方法是應用overflow: hidden到容器,所以:

.cityByLocation { 
    overflow: hidden; 
} 

http://jsfiddle.net/a3GLG/

+0

非常感謝! :) – sindrem

2

我認爲這將解決您的問題。

當浮動元素位於容器框內時,該問題發生,該元素不會自動強制將容器的高度調整爲浮動元素。當一個元素被浮動時,它的父元素不再包含它,因爲浮動元素被從流中移除。

您可以使用兩種方法來解決這個問題:

{明確:既}或.clearfix

.clearfix:after { 
    content: "."; 
    display: block; 
    clear: both; 
    visibility: hidden; 
    line-height: 0; 
    height: 0; 
} 

.clearfix { 
    display: inline-block; 
} 

html[xmlns] .clearfix { 
    display: block; 
} 

* html .clearfix { 
    height: 1%; 
} 

source

+0

我應該在html中添加它呢? – sindrem

+0

將代碼添加到您的CSS,然後將類'clearfix'添加到您的浮動元素。如果可以的話,請在[jsFiddle。](http://www.jsfiddle.com)中重新創建問題。這將幫助我更好地爲您提供幫助。 –

0

您也可以通過設置overflow: hiddenli元素修復它。它會清除並自動計算高度。

- 更新 -

感謝@mickmackusa

https://jsfiddle.net/e94pzbbn/1/

+0

要提高答案的價值,您可以在此頁面上設置可運行腳本,或提供指向外部演示的鏈接。 – mickmackusa