当我将无序列表格式化为内联块时,如果其他元素具有任何块内容,则列表中的最后一个列表元素似乎具有额外的上边距。看看这个HTML:
<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来演示我正在做的事情。
答案 0 :(得分:2)
这很奇怪,但您应该使用vertical-align: top;
强制列表项与顶部对齐。请参阅working version on jsfiddle。
这是因为inline-block
元素将对齐为inline
,即兄弟姐妹会使用基线作为对齐参考。
答案 1 :(得分:1)
答案 2 :(得分:0)
你可以向左移动li
并显示:inline。然后他们排成你的jsfiddle。