使用纯js删除css属性失败

时间:2015-01-08 01:47:55

标签: javascript css

我尝试使用以下代码从我的css中删除属性但不起作用。

 document.getElementById("wrap").style.removeProperty('overflow-x');

CSS:

#wrap{
overflow-x : hidden;
}

当我运行javascript时,收到错误Cannot read property 'style' of null

1 个答案:

答案 0 :(得分:3)

发布的代码将删除以下场景中的overflow-x样式:

<div id="wrap" style="overflow-x: hidden"></div>

CSS应用属性不直接应用于元素的style属性 - 它们应用于更高层。

实际上,没有什么可以删除样式属性,但你可以在那里设置一个值,它会覆盖从CSS属性应用的值(除非css指定了!important标志)

请改为尝试:

document.getElementById("wrap").style.overflowX = 'visible';

由于您的具体方案是基于某些浏览器检测应用样式,我建议使用以下javascript:

var userAgent = window.navigator.userAgent.toLowerCase();
var is_ios = /iphone|ipod|ipad/.test( userAgent );
if (!is_ios) document.body.className += 'not-ios';

使用CSS:

.not-ios #wrap {
    overflow-x : hidden;
}

您还可以使用class“换行”而不是id来使其更易于重复使用(如果需要)