我的空白去了哪里,或者为什么我的mvc生成的html中有“空文本节点”。

时间:2013-12-05 22:57:33

标签: asp.net-mvc html5 asp.net-mvc-4

这是一个奇怪的,所以我将从一些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;
}

现在,当输出显示第二个下拉列表比第一个更接近它时,我感到非常惊讶。

Visual of the text node indentation

我尝试将宽度扩展到200px(之间有足够的空白),但最后一个标签仍然在左边。 IE10和Chrome都是一样的。检查IE10中的源代码我发现了以下奇怪的“空文本节点”

Empty text node IE10

所以,我找到了以下修复:

@Html.LabelFor(m => pile.NumNTCalsReturned) 
<span></span> @* without this span, there is a whitespace missing *@
@Html.DropDownListFor(m => pile.NumNTCalsReturned, new SelectList(cals))

现在,我真的想解释一下这里发生了什么?

0 个答案:

没有答案