【问题标题】:What's the difference between PlaceHolder and <div />?PlaceHolder 和 <div /> 有什么区别?
【发布时间】:2011-02-14 03:56:08
【问题描述】:
在一个 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);
}
它们是同一个东西吗?是不是比另一个更好?为什么?
【问题讨论】:
标签:
asp.net
html
placeholder
【解决方案1】:
<asp:PlaceHolder /> 不会生成 div 标记。
PlaceHolder Web 服务器控件没有任何可见的输出,并且在我们在运行时添加控件时用作占位符。
【解决方案2】:
空的div标签(和其他容器标签,如p等)封闭在开始元素本身(如<div/>而不是<div></div>)可能会导致某些浏览器出现问题。浏览器可能会忽略它以 / 关闭的事实,并将其视为新 div,从而破坏后续标记。
我曾经在使用 Firefox 时遇到过这个问题:我在 python 中使用 minidom xml 库生成 html,它将空 div 表示为 <div /> - 它破坏了我标记的其余部分,弄乱了后续的 div。我最终将注释节点添加到空元素,以确保它们有一个单独的结束标记。