玩转CSS文本属性:深入理解js的cssText
转载自:https://www.cnblogs.com/majingyi/p/6840818.html
很多人用过 style.color、style.display 等直接设置元素的样式属性,但是 style.cssText 用过的人就不多了。
cssText 本质是什么?
cssText 的本质就是设置 HTML 元素的 style 属性值。
cssText的优势?
一般情况下我们用js设置元素对象的样式会使用这样的形式:
var element= document.getElementById(“id”);
element.style.width=”20px”;
element.style.height=”20px”;
element.style.border=”solid 1px red”;
样式一多,代码就很多;而且通过JS来覆写对象的样式是比较典型的一种销毁原样式并重建的过程,这种销毁和重建,都会增加浏览器的开销。
使用cssText:element.style.cssText=”width:20px;height:20px;border:solid 1px red;”;
这样就可以尽量避免页面reflow,提高页面性能。
cssText 怎么用?
document.getElementById("d1").style.cssText = "color:red; font-size:13px;";
看了这个示例后,相信不说,也知道 style.cssText 是什么意思了,它就是设置 HTML 元素的 style 属性。
cssText 返回值是什么?
cssText也有个缺点,会覆盖之前的样式。因此使用cssText时应该采用叠加的方式以保留原有的样式。另外,在某些浏览器中(比如 Chrome),你给他赋什么值,它就返回什么值。在 IE 中则比较痛苦,它会格式化输出、会把属性大写、会改变属性顺序、会去掉最后一个分号,比如:
document.getElementById("d1").style.cssText = "color:red; font-size:13px;";
alert(document.getElementById("d1").style.cssText);
在 IE 中值为:FONT-SIZE: 13px; COLOR: red
解决办法:Element.style.cssText += ‘;width:100px;height:100px;top:100px;left:100px;’
另外,这个属性在加有!important的行内样式时特别有用,比如,top:80px !important 。而用style.top="80px !important" 是加不上的。