1

我正在使用 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 格式。没关系,但我想我会提到它。

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

4

2 回答 2

1

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

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

于 2008-10-11T01:22:50.813 回答
0

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

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

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

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

于 2008-10-10T19:57:01.343 回答