在IE7中使用ASP.Net,CSS,VS 2008的奇怪定位行为

时间:2008-10-10 19:30:16

标签: asp.net css css-position

我正在使用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的viewsource),并在生成的HTML中正确设置了类。

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

还有其他人遇到过这种行为吗?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

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

在任何情况下,如果您想要正确解决问题,我建议您发布部分代码。