在ASP.NET项目中,我有以下HTML:
<asp:PlaceHolder ID="plcTitle" runat="server"></asp:PlaceHolder>
<div id="divStrapline" runat="server" />
填充了以下代码:
if (this.TitlePanel != null)
{
plcTitle.Controls.Add(this.TitlePanel);
}
if (this.Strapline != null)
{
divStrapline.Controls.Add(this.Strapline);
}
他们俩都是一回事吗?要么比另一个更好?为什么呢?
答案 0 :(得分:4)
<asp:PlaceHolder />
未生成div
代码。
PlaceHolder Web服务器控件没有任何可见输出,在运行时添加控件时用作占位符。
答案 1 :(得分:1)
空白div
标记(以及其他容器标记,如p
等)在开放元素本身中关闭(如<div/>
而不是<div></div>
)可能会导致问题一些浏览器。浏览器可能会忽略它被/
关闭的事实,并将其视为新的div,从而打破后续标记。
我曾经遇到过Firefox的这个问题:我在python中使用minidom xml库生成html,它将空div表示为<div />
- 它打破了我的标记的剩余部分,弄乱后续的div。我最后将注释节点添加到空元素,以确保它们有一个单独的结束标记。