id为“no”的标签,暂且当div标签来tell;
想要在js中设置这个div的css样式,很一般的做法是:
var
obj
=
document.getElementByIdx_x_x('no')
obj.style.width
=
'400px'
obj.style.height
=
'300px'
如果要设置一堆又一堆的css样式呢,太麻烦了把、
一般情况下都会结合css来添加className或者改变className达到想要的效果,但是如果你create一个元素,难道还想这样简单点?那就要想别的办法了~
于是大家就写了一个又一个的函数,经典的两个是:
var
obj
=
document.getElementByIdx_x_x('no')
function
setStyle(obj,
css)
{
for(var
attr
in
obj){
obj.style[attr]
=
css[attr]
}
}
setStyle(obj,{width:"400px",height:"300px"})
当然还有更简单的,cssText:
var
obj
=
document.getElementByIdx_x_x('no')
obj.style.cssText
=
"width:400px
height:300px"
当然这种方法对于create的元素初始化css样式来说很简单很方便。
以上就是小编为大家带来的js中用cssText设置css样式的简单方法的全部内容了,希望对大家有所帮助,多多支持脚本之家~
给一个HTML元素设置css属性,如复制代码
代码如下:
var
head=
document.getElementById("head")
head.style.width
=
"200px"
head.style.height
=
"70px"
head.style.display
=
"block"
这样写太罗嗦了,为了简单些写个工具函数,如
复制代码
代码如下:
function
setStyle(obj,css){
for(var
atr
in
css){
obj.style[atr]
=
css[atr]
}
}
var
head=
document.getElementById("head")
setStyle(head,{width:"200px",height:"70px",display:"block"})
发现
API
中使用了cssText属性,后在各浏览器中测试都通过了。一行代码即可,实在很妙。如
复制代码
代码如下:
var
head=
document.getElementById("head")
head.style.cssText="width:200pxheight:70pxdisplay:bolck"
和innerHTML一样,cssText很快捷且所有浏览器都支持。此外当批量操作样式时,cssText只需一次reflow,提高了页面渲染性能。
但cssText也有个缺点,会覆盖之前的样式。如
复制代码
代码如下:
<div
style="color:red">TEST</div>
想给该div在添加个css属性width
复制代码
代码如下:
div.style.cssText
=
"width:200px"
这时虽然width应用上了,但之前的color被覆盖丢失了。因此使用cssText时应该采用叠加的方式以保留原有的样式。
复制代码
代码如下:
function
setStyle(el,
strCss){
var
sty
=
el.style
sty.cssText
=
sty.cssText
+
strCss
}
使用该方法在IE9/Firefox/Safari/Chrome/Opera中没什么问题,但由于
IE6/7/8中cssText返回值少了分号
会让你失望。
因此对IE6/7/8还需单独处理下,如果cssText返回值没""则补上
复制代码
代码如下:
function
setStyle(el,
strCss){
function
endsWith(str,
suffix)
{
var
l
=
str.length
-
suffix.length
return
l
>=
0
&&
str.indexOf(suffix,
l)
==
l
}
var
sty
=
el.style,
cssText
=
sty.cssText
if(!endsWith(cssText,
'')){
cssText
+=
''
}
sty.cssText
=
cssText
+
strCss
}
相关:
http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration
https://developer.mozilla.org/en/DOM/CSSStyleDeclaration