2013-08-05 62 views
2

這裏是一個小提琴(http://jsfiddle.net/zq3YA/2/),顯示我正在嘗試糾正的事情。 我想做一個時尚的,所以我想列表(ul)放在一個有邊界的容器(div)下。問題是我有一個不需要的垂直空間。我已經嘗試刪除邊距等,但沒有任何工作。div和ul之間的奇怪垂直空間

下面是HTML:

<div class="selector"> 
    <div class="selector-select"> 
     <div class="selector-value"></div> 
     <a href="#" class="selector-button"></a> 
    </div>     
    <ul class="selector-list"> 
     <li class="selector-item">Toto</li> 
     <li class="selector-item">Titi</li> 
    </ul> 
</div> 

這裏是CSS代碼:

.selector 
{ 
    width     : 200px; 
} 

.selector-select 
{ 
    margin     : 0; 
    padding     : 0; 
    position    : relative; 
} 

.selector-select, .selector-value 
{ 
    display     : inline-block; 
    height     : 20px; 
} 

.selector-select, .selector-list 
{ 
    border-style   : solid; 
    border-width   : 1px; 
    min-height    : 1px; 
} 

.selector-value 
{ 
    width     : 180px; 
} 

.selector-button 
{  
    display     : inline-block; 
    width     : 20px; 
    height     : 100%; 
    background-color  : blue; 
    position    : absolute; 
    right     : 0; 
    top      : 0; 
} 

.selector-list 
{ 
    width     : 170px; 
    list-style-type   : none; 
    margin     : 0; 
    padding     : 0; 
} 

.selector-item 
{ 
    margin     : 0; 
    padding     : 0; 
} 

.selector-item:hover 
{ 
    background-color  : blue; 
} 

你有什麼happends任何想法?

在此先感謝。

+0

一個答案來自@ user924016是使用'浮法left'使用類'.selector-select'的元素。但這個空間的存在的解釋總是一個謎。 – dooxe

+0

另一個解決方案來自@loops,它包含: '.selector-select,.selector-list {border = style; solid; border-width:1px; display:table; // block // inherit min-height:1px; }' – dooxe

+0

這不是一個謎。這是g,j,y等字符的下行者留下的空間。看到我的答案。 – Alohci

回答

0

這是因爲具有「選擇器值」類的div位於基線上,因此字符下降區有空間。

添加.selector-value { vertical-align: bottom; }的CSS

+0

我明白你的意思了。它也可以工作,非常感謝。 – dooxe

0

修復它的一種方法是使用float:left;

+0

謝謝,它修復了它。但我不明白爲什麼這個空間存在。 – dooxe

2
.selector-select, .selector-list { 
    border-style: solid; 
    border-width: 1px; 
    display: table; //block // inherit 
    min-height: 1px; 
} 

也解決了這個問題。

+0

謝謝你這個有用的答案。 – dooxe