Динамическое изменение CSS не будет работать в Chrome - PullRequest
1 голос
/ 29 декабря 2011

У меня есть страница, которая получает большое левое поле из глобальной таблицы стилей, которую я не могу изменять.Поля на самом деле записываются встроенными в скрипт / таблицу стилей, поэтому я не могу изменить их в своем стиле печати.Мне удалось найти решение jQuery, которое, кажется, работает в FF и IE, но, к сожалению, не в Chrome.Функция jquery:

$('#page').each(function(idx,el){
  el.style.margin='';
});

Я пробовал все от jquery css. ('margin-left', '0') до использования атрибутов DOM, и ничего не работает!Любая помощь очень ценится.

document.getElementById("page").style.margin="0";
document.getElementById("page").setAttribute("margin","0");
document.getElementById("page").setAttribute("margin-left","0");

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011

Описание

Если вы используете jQuery, вам следует использовать функции jQuery, потому что они созданы для кросс-браузерной совместимости.

Проблема в том, что вы используете id. id должно быть уникальным в вашем документе. jQuery знает, что вы используете id selector и изменяет только первый элемент.

Используйте вместо этого класс. Посмотрите демонстрацию jsFiddle, которую я создал.

Пример

Css

.page { margin: 10px }

JQuery

$('.page').css("margin", "");

Дополнительная информация

Обновление

w3c говорит: Атрибут id указывает уникальный идентификатор для элемента HTML (значение атрибута id должно быть уникальным в документе HTML).

Но хорошо, вы сказали, что страница уже существует, и вы не хотите переходить с id на `class. Это не стандартно и не хорошо для поисковой оптимизации.

Вы можете сделать это, чтобы заставить его работать с id.

Sample

Html

<div style="margin: 10px" id="page">div1</div>
<div style="margin: 10px" id="page">div2</div>

JQuery

$('[id="page"]').css("margin", "");
1 голос
/ 29 декабря 2011

Если поле не помечено значком! Важный в вашей глобальной таблице стилей, и если вам разрешено писать стили CSS на своей странице, попробуйте установить поле на своей странице, как показано ниже

#page {
    margin: 0px !important;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...