巧用cssText属性批量操作样式

原链接:

巧用cssText属性批量操作样式

给一个HTML元素设置css属性,如


1

2

3

4

var head= document.getElementById("head");

head.style.width = "200px";

head.style.height = "70px";

head.style.display = "block";

这样写太罗嗦了,为了简单些写个工具函数,如


1

2

3

4

5

6

7

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"})

发现 Google API 中使用了cssText属性,后在各浏览器中测试都通过了。一行代码即可,实在很妙。如


1

2

var head= document.getElementById("head");

head.style.cssText="width:200px;height:70px;display:bolck";

和innerHTML一样,cssText很快捷且所有浏览器都支持。此外当批量操作样式时,cssText只需一次reflow,提高了页面渲染性能。

但cssText也有个缺点,会覆盖之前的样式。如


1

<div style="color:red;">TEST</div>

想给该div在添加个css属性width


1

div.style.cssText = "width:200px;";

这时虽然width应用上了,但之前的color被覆盖丢失了。因此使用cssText时应该采用叠加的方式以保留原有的样式。


1

2

3

4

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返回值没";"则补上


1

2

3

4

5

6

7

8

9

10

11

12

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;

}

时间: 2024-12-28 17:00:13

巧用cssText属性批量操作样式的相关文章

巧用cssText属性批量操作样式【转】

给一个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 cs

用cssText属性批量操作样式

给一个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 c

巧用cssText属性

给一个HTML元素设置css属性,如 1 2 3 4 var head= document.getElementById("head"); head.style.width = "200px"; head.style.height = "70px"; head.style.display = "block"; 这样写太罗嗦了,为了简单些写个工具函数,如 1 2 3 4 5 6 7 function setStyle(obj,c

jQuery入门(2)使用jQuery操作元素的属性与样式

jQuery入门(1)jQuery中万能的选择器 jQuery入门(2)使用jQuery操作元素的属性与样式 一.区分DOM属性和元素属性 对于下面这样一个标签元素: <img id='img' src="images/image.1.jpg" alt='1' class="imgs"></img> 我们通常将id.src.alt.class称为属性,也即元素属性.但是,当浏览器对标签元素进行解析时,会将元素解析为Dom对象,相应的,元素属性

从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式

原文:从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式 从零开始学习jQuery (五) 事件与事件对象 从零开始学习jQuery (六) jQuery中的Ajax 从零开始学习jQuery (七) jQuery动画-让页面动起来!

jquery中的属性和样式设置

添加属性 $target.attr({"title":"one piece","name":"solgan"}); 为目标元素添加title和name属性 添加之前: <div class="second"> <p>我是路飞,要成为海贼王的男人.</p> </div> 添加之后: <div class="second"> <

cssText设置css样式

js中用cssText设置css样式 (2012-08-21 10:40:22) 转载▼ 标签: js   如果网页中一个 id为“no”的标签,暂且当div标签来tell:想要在js中设置这个div的css样式,很一般的做法是: var obj = document.getElementByIdx_x_x('no');obj.style.width = '400px';obj.style.height = '300px'; 如果要设置一堆又一堆的css样式呢,太麻烦了把.一般情况下都会结合cs

jQuery的属性及样式

1jQuery的属性与样式之.attr()与.removeAttr() 每个元素都有一个或者多个特性,这些特性的用途就是给出相应元素或者其内容的附加信息.如:在img元素中,src就是元素的特性,用来标记图片的地址. 操作特性的DOM方法主要有3个,getAttribute方法.setAttribute方法和removeAttribute方法,就算如此在实际操作中还是会存在很多问题,这里先不说.而在jQuery中用一个attr()与removeAttr()就可以全部搞定了,包括兼容问题 jQue

JavaScript学习笔记——document对象的内容、属性、样式的操作

javascript-对文档对象的内容.属性.样式的操作(上) 一.操作内容 1. innerHTML 用来设置或获取对象起始和激素标签内的内容(识别html标签) 2. innerText 用来设置或获取对象起始和激素标签内的内容 (IE)   textContent用来设置或获取对象起始和激素标签内的内容 (FF) 3. outerHTML 用来设置或获取包括本对象在内起始和激素标签内的内容(识别html标签)   outerText 用来设置或获取包括本对象在内起始和激素标签内的内容 二.