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】:

&lt;asp:PlaceHolder /&gt; 不会生成 div 标记。

PlaceHolder Web 服务器控件没有任何可见的输出,并且在我们在运行时添加控件时用作占位符。

【讨论】:

【参考方案2】:

空的div标签(和其他容器标签,如p等)封闭在开始元素本身(如&lt;div/&gt;而不是&lt;div&gt;&lt;/div&gt;)可能会导致某些浏览器出现问题。浏览器可能会忽略它以 / 关闭的事实,并将其视为新 div,从而破坏后续标记。

我曾经在使用 Firefox 时遇到过这个问题:我在 python 中使用 minidom xml 库生成 html,它将空 div 表示为 &lt;div /&gt; - 它破坏了我标记的其余部分,弄乱了后续的 div。我最终将注释节点添加到空元素,以确保它们有一个单独的结束标记。

【讨论】:

以上是关于PlaceHolder 和 <div /> 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

div的contenteditable和placeholder蹦出的火花

移动端的坑 之 在可编辑的div中实现placeholder

关于 div 的 contenteditable 使用,placeholder 和 复制图片显示并上传

让div支持placeholder属性/模拟输入框的placeholder属性

手机端input[type=date]的placeholder不起作用

css placeholder 不居中怎么办