Странное поведение позиционирования с использованием ASP.Net, CSS, VS 2008, в IE7 - PullRequest
1 голос
/ 10 октября 2008

Я работаю над веб-страницей в 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 и т. Д. Я действительно нашел обходной путь на данный момент, но это не то, как я хочу его покинуть (включает программное создание некоторого HTML внутри Asp: Literal.)

Я проверил результирующий источник (через источник просмотра IE), и класс был правильно задан в результирующем HTML.

Еще одна вещь, если это имеет значение; Этот веб-сайт изначально был создан в VS 2005 и преобразован в формат VS 2008. Не то чтобы это имело значение, но подумал, что упомяну это.

Кто-нибудь еще сталкивался с таким типом поведения?

Ответы [ 2 ]

1 голос
/ 11 октября 2008

Если у вас есть абсолютно позиционированные элементы, у которых родительский элемент является абсолютно или относительно позиционированным, они будут позиционироваться относительно своего контейнера, а не всей страницы.

Другими словами, ваши элементы могут располагаться из разных исходных точек.

0 голосов
/ 10 октября 2008

Трудно объяснить подобные проблемы, если не предоставлен реальный код, но я думаю, что у вас возникли проблемы с новыми элементами управления, которые не используют те же родительские контейнеры, что и старые.

Проверяли ли вы правила css, которые применяются к родительским контейнерам правильно работающих текстовых полей? Они обычно должны быть установлены на «position: родственник»; если вы хотите, чтобы ваши дочерние элементы управления были выровнены в соответствии с ними.

Также убедитесь, что проблема с макетом не возникает из-за наложения элементов управления, т. Е. Два текстовых поля могут иметь одинаковые или близкие позиции, а затем одно приходит поверх другого.

В любом случае, если вы хотите найти правильное и прямое решение вашей проблемы, я бы посоветовал вам опубликовать часть кода.

...