переместить один div над другим - PullRequest
1 голос
/ 08 апреля 2010

У меня есть два элемента div , которые являются близнецами (то есть их размеры и содержимое идентичны). Я хочу переместить эти div-ы поверх другого, чтобы их углы были точно такими же координатами. То, что я пытаюсь сделать, это:

var offset = $('div#placeholder').offset();
$('div#overlay').css('position', 'absolute').css('left', offset.left + 'px').css('top', offset.top + 'px')

- но это приводит к тому, что наложение будет точно (или почти точно, принимая во внимание точность субпикселей) на 16 пикселей ниже заполнителя (ниже, то есть overlay_top = placeholder_top + 16px).

Мне известно, что offset () задает положение относительно документа, а position: absolute устанавливает положение относительно body элемента, но компенсирует смещение тела () мало помогает (я получаю смещение в 8 пикселей, равное полям):

offset.top -= $('body').offset().top;
offset.left -= $('body').offset().left;

Также, компенсация полей body (в случае, если они отличались от offset () , не помогли, так как они были установлены на 8px).

Кто-нибудь знает, что я здесь не так делаю?

ОБНОВЛЕНИЕ: Взгляните на здесь - я получаю тот же результат в FireFox 3.6.3 и Opera 10.10.

1 Ответ

1 голос
/ 08 апреля 2010

Я подозреваю, что у вас есть какое-то правило CSS, применяемое на основе класса / имени / типа элемента в таблице стилей. Я предлагаю вам попробовать установить margin / padding для элемента в 0 с помощью javascript. Вы также можете использовать WebDeveloper или FireBug и проверить вычисленные стили на элементе после изменения положения, чтобы увидеть, какие стили применяются и откуда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...