动态更改CSS无法在Chrome中使用

时间:2011-12-29 15:08:25

标签: javascript jquery css google-chrome printing

我有一个页面从全局样式表中收到一个很大的左边距,我不允许更改。边距实际上是由脚本/样式表内联编写的,因此我无法在我的打印样式中更改它。 我能够找到一个似乎在FF和IE中运行的jQuery解决方案,但遗憾的是不在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 个答案:

答案 0 :(得分:2)

描述

如果您使用的是jQuery,则应该使用jQuery函数,因为它们具有跨浏览器兼容性。

问题是您使用的是idid在您的文档中应该是唯一的。 jQuery知道您正在使用id selector并仅更改第一个元素。

改为使用班级。看看我创建的jsFiddle演示。

示例

<强>的CSS

.page { margin: 10px }

<强>的jQuery

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

更多信息

更新

  

w3c说:id属性指定HTML元素的唯一ID(id属性值在HTML文档中必须是唯一的。)

但是好的,你说该页面是现有页面,你不想从id更改为`class。这不是标准的,也不适合搜索引擎优化。

您可以执行此操作以使其与id一起使用。

样品

<强> HTML

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

<强>的jQuery

$('[id="page"]').css("margin", "");

答案 1 :(得分:1)

如果您的全球样式表中的保证金未标记为!important,并且您可以在页面中编写CSS样式,请尝试在页面中设置保证金,如下所示

#page {
    margin: 0px !important;
}