【问题标题】:Weird positioning behaviour using ASP.Net, CSS, VS 2008, in IE7在 IE7 中使用 ASP.Net、CSS、VS 2008 的奇怪定位行为
【发布时间】:2010-09-16 14:30:23
【问题描述】:

我正在开发一个使用 ASP.Net/C# 的网页,它对文本框使用绝对定位,事实上有几个。它工作得很好,直到我添加了更多的文本框。也就是说,现有的文本框仍然正确定位,但新的文本框没有,尽管我在 CSS 中为它们创建了新样式,就像其他的一样。下面是一个例子:

.pieceBox {
    position: absolute;
    top: 425px;
    left: 133px;
    background-color: White;
    color: Black;
    width: 132px;
    font-weight: bold;
    text-align: center;     
} 

同一个 CSS 文件(当然名称不同)中相同的样式在这个文件的上方和下方都可以正常工作。我已经检查、仔细检查和三重检查了 CssClass 属性中的样式名称,它是正确的。但是,无论我做什么,包括给它起一个新名称,复制旧条目,重命名它们等等,这三个新文本框都将自己定位在页面顶部,而其他文本框则显示在正确的绝对位置.我查看了 aspx 源页面,并确保它们不在其他 DIV 中,等等。我对此束手无策。我现在确实想出了一个解决方法,但这不是我想要的方式(涉及以编程方式在 Asp:Literal 中创建一些 HTML。)

我检查了生成的源代码(通过 IE 的视图源),并且在生成的 HTML 中正确设置了类。

如果这很重要,还有一件事;这个网站项目最初是在 VS 2005 中创建的,并转换为 VS 2008 格式。没关系,但我想我会提到它。

还有其他人经历过这种行为吗?

【问题讨论】:

  • 请发布一个示例的 URL。没有足够的细节可以从发布的内容中看出。

标签: asp.net css css-position


【解决方案1】:

如果您的绝对定位元素的父元素是绝对定位或相对定位,它们将相对于其容器而不是整个页面定位自己。

换句话说,您的元素可能从不同的原点定位自己。

【讨论】:

  • 使用 Firefox 的 Web Developer 扩展(或 IE 中的等价物)来调试定位问题。
【解决方案2】:

如果没有提供实际代码,就很难解释这样的问题,但我的第一个猜测是,新控件与旧控件使用的父容器不同。

您是否检查了适用于正常工作文本框的父容器的 css 规则?它们通常应设置为“位置:相对;”如果您想让您的子控件根据它们对齐。

还要确保布局问题不会由于控件重叠而发生,即两个文本框可能具有相似或接近的位置,然后一个会出现在另一个上。

无论如何,如果您想正确而直接地解决您的问题,我建议您发布部分代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多