使用jQuery更改CSS条目
使用jQuery更改CSS条目
我有这个HTML代码。
文件 编辑 帮助
我还有这个CSS代码。
.menu { float: left; width: 150px; position: relative; }
由于某种原因,如果我点击一个特殊按钮,我需要禁用float:left和position:relative,并将其恢复到"unset"状态,但是这段代码不起作用。
function doThat() { $('.menu').css({"float": "", "position": ""}); }
我应该如何做到这一点?问题是这不是内联CSS。谢谢。
编辑:根据@alexfreiria给出的解决方案,我在这里附上答案。
function doThat() { $('.menu').css({"float": "inherit", "position": "inherit"}); }
这在IE中有效。谢谢大家!
问题的出现是因为原来的代码使用了空字符串来重置CSS属性,而空字符串在某些浏览器中会被解析为无效的CSS值。为了解决这个问题,作者将空字符串替换为了"initial",这是CSS中的一个预定义关键字,可以将属性的值重置为其初始值。此外,文章还提到了CSS中的另外两个预定义关键字"inherit"和"unset",以及建议在IE中使用"none"和"static"而不是"initial"。
文章标题:使用jQuery改变CSS入口的原因及解决方法
在这段代码中,原来的函数doThat()使用了空字符串来重置CSS属性,但是在某些浏览器中,空字符串会被解析为无效的CSS值。为了解决这个问题,作者将空字符串替换为了"initial",这是CSS中的一个预定义关键字,可以将属性的值重置为其初始值。
在文章中还提到了CSS中的另外两个预定义关键字"inherit"和"unset",分别用于将属性的值设置为继承自父元素的值和重置为其初始值。此外,文章还指出在IE中不支持"initial",建议使用"none"和"static"来代替。
总结起来,解决这个问题的方法是使用CSS中的预定义关键字来替代空字符串,可以选择使用"initial"将属性的值重置为其初始值,或者根据具体情况使用"inherit"或"unset"来设置属性的值。在IE中,建议使用"none"和"static"替代"initial"。
Change CSS entry using jQuery问题出现的原因是为了改变元素的CSS样式,但不想手动记住初始状态和继承自父元素的状态。
解决方法是使用jQuery的css()方法,通过传入一个包含需要改变的CSS属性和值的对象,来改变元素的CSS样式。这样就不需要手动记住初始状态和继承自父元素的状态。
具体代码如下:
$('.menu').css ({ 'float': 'none', //初始状态是none 'position': 'static' //初始状态是static });
这样就可以改变类为"menu"的元素的float属性为none,position属性为static。
使用这种方法,不需要手动记住初始状态和继承自父元素的状态,更加方便和通用。