Мне кажется, что где-то между изображением "Ледяной Белый" и телом находится какой-то сдерживающий элемент (в частности, Firebug обнаруживает, что это <a class="popup1" ... >
), который относительно позиционирован, поэтому ваши 50% относительно это , а не вся страница.
Я знаю, что это кажется немного нелогичным: почему он должен быть относительно по отношению к родительскому элементу, если всплывающее окно использует absolute позиционирование?Это в основном потому, что относительное позиционирование относительно того, где элемент находится в нормальном потоке документа, тогда как абсолютное позиционирование возвращает элемент из этого потока.См. Разделы 9.4.3 и 9.6 объяснения W3C модели визуального форматирования для получения дополнительной информации.
Изучите учебник или два, если это доставляет вам проблемы.Мне нравится Изучение позиционирования CSS за десять шагов и css-tricks.com «Абсолютное позиционирование внутри относительного позиционирования» (на который я бы дал ссылку, если бы не спам-фильтр; впервые отвечающий здесь;)).
Что касается того, что с этим делать, вы, возможно, сможете перемещать всплывающие окна из относительно позиционированного родителя, как предполагает mblaze75, но выглядит (и я предполагаю здесь) вот так <a>
это то, что вызывает ваше событие JavaScript, поэтому вы, вероятно, не можете этого сделать.Вместо этого я бы попытался удалить относительное позиционирование и использовать вместо этого поля.
Кроме того, имейте в виду то, что сказал Грег Агнью: даже после решения этой проблемы вы по-прежнему центрируете левый край, а не центрваше всплывающее окноЯ думаю, что ответ Дури позаботится об этом.