PlaceHolder 和 <div /> 有啥区别?
Posted
技术标签:
【中文标题】PlaceHolder 和 <div /> 有啥区别?【英文标题】: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);
它们是同一个东西吗?是不是比另一个更好?为什么?
【问题讨论】:
【参考方案1】:<asp:PlaceHolder />
不会生成 div
标记。
PlaceHolder Web 服务器控件没有任何可见的输出,并且在我们在运行时添加控件时用作占位符。
【讨论】:
【参考方案2】:空的div
标签(和其他容器标签,如p
等)封闭在开始元素本身(如<div/>
而不是<div></div>
)可能会导致某些浏览器出现问题。浏览器可能会忽略它以 /
关闭的事实,并将其视为新 div,从而破坏后续标记。
我曾经在使用 Firefox 时遇到过这个问题:我在 python 中使用 minidom xml 库生成 html,它将空 div 表示为 <div />
- 它破坏了我标记的其余部分,弄乱了后续的 div。我最终将注释节点添加到空元素,以确保它们有一个单独的结束标记。
【讨论】:
以上是关于PlaceHolder 和 <div /> 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章
div的contenteditable和placeholder蹦出的火花
移动端的坑 之 在可编辑的div中实现placeholder
关于 div 的 contenteditable 使用,placeholder 和 复制图片显示并上传
让div支持placeholder属性/模拟输入框的placeholder属性