Странное поведение при позиционировании с использованием ASP.Net, CSS, ПО СРАВНЕНИЮ с 2008 годом, в IE7

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

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

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

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

Комментарии:

1. Пожалуйста, отправьте URL-адрес для примера. Там недостаточно подробностей, чтобы судить о том, что было опубликовано.

Ответ №1:

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

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

Комментарии:

1. Используйте расширение веб-разработчика для Firefox (или его эквивалент в IE) для отладки проблем с позиционированием.

Ответ №2:

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

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

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

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