这是一个奇怪的,所以我将从一些MVC代码开始(这是在td标签内):
@Html.LabelFor(m => pile.NumCalsReturned)
@Html.DropDownListFor(m => pile.NumCalsReturned, new SelectList(cals))
<br />
@if (pile.NTCal)
{
@Html.LabelFor(m => pile.NumNTCalsReturned)
@Html.DropDownListFor(m => pile.NumNTCalsReturned, new SelectList(cals))
}
我使用以下样式:
label {
width: 140px;
display: inline-block;
}
现在,当输出显示第二个下拉列表比第一个更接近它时,我感到非常惊讶。
我尝试将宽度扩展到200px(之间有足够的空白),但最后一个标签仍然在左边。 IE10和Chrome都是一样的。检查IE10中的源代码我发现了以下奇怪的“空文本节点”
所以,我找到了以下修复:
@Html.LabelFor(m => pile.NumNTCalsReturned)
<span></span> @* without this span, there is a whitespace missing *@
@Html.DropDownListFor(m => pile.NumNTCalsReturned, new SelectList(cals))
现在,我真的想解释一下这里发生了什么?