asp.net - 添加 runat ="server"会改变布局的行为

标签 asp.net css layout html

我有一个包含一些控件、用户控件等的页面

当我从普通 <div id="foo"> 更改一个 div 时到 <div id="foo" runat="server"> 布局完成更改。

为什么会这样,我该如何预防?

我正在使用 2.0 .NET 框架

是否因为 .NET 更改了我的 ID,这显然是我不想要的?

最佳答案

如果您在 CSS 中定位 div 控件的 ID,然后在服务器上运行该控件,您会发现它不再应用该样式。

这是因为 ASP.NET 有一个内置机制 (INamingContainer) 来确保您没有多个控件同名。它通过添加容器前缀来做到这一点,因此您最终得到:

<div id="ctl00_ctl00_myDivName" runat="server" />

解决此问题的最简单方法是将其从处理 ID 更改为处理类:

<div class="myDiv" runat="server"></div>

或者,我相信 XHTML 要求 Divs 有结束标签,所以使用

<div runat="server">Some content</div>

关于asp.net - 添加 runat ="server"会改变布局的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/897738/

相关文章:

CSS:扩展为可折叠导航栏的流体布局

css - 内联和固定 CSS 布局

.net - ASP.net 配置文件和成员资格 - 自定义提供商还是应该完全自己推出?

c# - IIS 不异步处理 Web Api 请求

javascript - 统一风格的分享按钮

javascript - 在reactjs中生成缩略图作为按钮

java - 为什么 addSeparator() 不适用于我的 JToolBar?

asp.net - Telerik RadGrid 分页和更新面板问题

asp.net - Web 应用程序最方便的阿拉伯字体

css - 如果按钮具有不同的字体大小,如何使按钮与输入水平居中?