使用纯 js 删除 css 属性失败
remove css property with pure js failed
我尝试使用以下代码从我的 css 中删除一个属性,但不起作用。
document.getElementById("wrap").style.removeProperty('overflow-x');
CSS:
#wrap{
overflow-x : hidden;
}
当我运行 javascript 时,出现错误 Cannot read property 'style' of null
发布的代码将在以下情况下删除 overflow-x 样式:
<div id="wrap" style="overflow-x: hidden"></div>
CSS 应用的属性不直接应用到元素的样式属性 - 它们应用在更高的层。
实际上,样式 属性 上没有要删除的内容,但您可以在那里设置一个值,这将覆盖从 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
"wrap" 而不是 id
以使其更易于重复使用(如果需要)
我尝试使用以下代码从我的 css 中删除一个属性,但不起作用。
document.getElementById("wrap").style.removeProperty('overflow-x');
CSS:
#wrap{
overflow-x : hidden;
}
当我运行 javascript 时,出现错误 Cannot read property 'style' of null
发布的代码将在以下情况下删除 overflow-x 样式:
<div id="wrap" style="overflow-x: hidden"></div>
CSS 应用的属性不直接应用到元素的样式属性 - 它们应用在更高的层。
实际上,样式 属性 上没有要删除的内容,但您可以在那里设置一个值,这将覆盖从 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
"wrap" 而不是 id
以使其更易于重复使用(如果需要)