2012-03-14 70 views
0

當我將無序列表格式化爲內嵌塊時,如果其他元素具有任何塊內容,則列表中的最後一個列表元素似乎具有額外的頂部邊距。看看這個HTML:列表元素的CSS格式具有不正確的邊距

<div id="report_builder"> 
    <ul id="report_layout_1" class="report_layout ui-droppable"> 
     <li rel="recid">Id 
      <div><input type="text" class="report-column-value"></div> 
     </li> 
     <li rel="street1">Address 
      <div><input type="text" class="report-column-value"></div> 
     </li> 
     <li> 
      Last Field 
     </li> 
    </ul> 
</div>​ 

這裏是CSS:

#report_builder li { 
    font-size: 8pt; 
} 

#report_builder > ul { 
    float: left; 
} 

.report_layout { 
    height: 150px; 
} 
.report_layout > li { 
    display: inline-block; 
    padding: 5px; 
    margin-left: 2px; 
    border: 1px solid #ccc; 
    border-top: 10px solid #ccc; 
    height: 100px; 
    background-color:#fff; 
} 
.report_layout > li:last { 
    cursor: default; 
} 
.report_layout > li a { 
    cursor: pointer; 
} 
.report_layout > li:nth-child(even) { 
    background-color:#eee; 
} 

#report_builder input.report-column-value { 
    width: 95px; 
} 

爲什麼這最後一個列表元素下拉?這是一個fiddle來演示我在做什麼。

回答

2

很是怪異,但你應該強迫你的列表項對齊到使用vertical-align: top;頂部。見working version on jsfiddle

這是因爲inline-block元素將對齊爲inline,即,兄弟姐妹將使用基線作爲對齊參考。

+0

這是正確的答案。將'vertical-align:top;'添加到'.report_layout> li' – 2012-03-14 19:27:17

+0

這就是我錯過的!非常感謝。 – davidethell 2012-03-14 19:32:37

1

帶有內嵌塊設置的元素呈現,右邊有4個像素邊距。

請參閱this

這是一個與<li>元素之間的空白問題。如果您刪除了空白區域,問題將得到解決。

+0

我很抱歉 - 我在看你的小提琴之前回答了這個問題。 – Dov 2012-03-14 18:44:05