2012-03-14 10 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'に追加します –

+0

これは私が行方不明だったものです!本当にありがとう。 – davidethell

1

要素にインラインブロックが設定されている要素は、右側に4ピクセルの余白があります。

thisを参照してください。

<li>要素の間の空白に問題があります。空白を削除すると、問題は解決されます。

+0

私は謝罪します - 私はあなたのフィドルを見る前に質問に答えました。 – Dov

0

liを浮動小数点にして、インラインで表示することができます。それらはあなたのjsfiddleに並んでいます。

http://jsfiddle.net/eHmtR/1/

関連する問題