欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

玩转CSS文本属性:深入理解js的cssText

最编程 2024-08-10 12:43:46
...

转载自: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" 是加不上的。