#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, которые применяются для родительских контейнеров правильно работающих текстовых полей? Обычно они должны быть установлены в «положение: относительно», если вы хотите, чтобы ваши дочерние элементы управления были выровнены в соответствии с ними.
Также убедитесь, что проблема с компоновкой не возникает из-за перекрытия элементов управления, т. е. Два текстовых поля могут иметь одинаковые или близкие позиции, а затем одно накладывается на другое.
В любом случае, если вы хотите правильного и прямого решения своей проблемы, я бы посоветовал вам опубликовать часть вашего кода.