CSS: почему настройка margin-top работает только в Webkit? - PullRequest
1 голос
/ 13 августа 2010

Вот тестовый пример / живой пример. Краткое описание проблемы:

Это работает только в WebKit:

Y.one('#container').setStyle('margin-top', 100);

Это работает во всех браузерах:

Y.one('#container').setStyle('margin', 100);

Почему настройка поля наверху работает только в WebKit?

РЕДАКТИРОВАТЬ: исправление показано ниже в одном из ответов.Вы должны иметь marginTop здесь, и тогда это работает.Итак, отредактированный вопрос: ПОЧЕМУ вам нужен marginTop, а не margin-top в этом случае?

Ответы [ 3 ]

3 голосов
/ 15 августа 2010

Если вы обращаетесь к свойству style, тогда применяется по стандартному верблюжьему делу. Так что если webkit поддерживает что-то вроде element.style["margin-top"], то это странно. Помните, что здесь вы не имеете дело напрямую с CSS, это просто промежуточный слой.

Вкратце - marginTop является частью интерфейса CSS2Properties, а margin-top - нет.

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

2 голосов
/ 13 августа 2010

Это должно быть marginTop, потому что вы не устанавливаете свойство CSS в файле CSS. Вы устанавливаете свойство marginTop объекта style. - является недопустимым символом для идентификатора.

2 голосов
/ 13 августа 2010

Это работает для меня в Firefox:

<div id="nav">
<a href='#' onclick='document.getElementById("nav").style.marginTop="25px";'>test</a>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...