Javascript getStyle()

参考文章:

1. 设置元素浮动的几种方式

2.获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)

3.JS 获取最终样式 【getStyle】

以下这个方法可以解决以上两种方法中提到的不兼容性问题

var getStyle = function(){
var f = document.defaultView;
return new Function('el', 'style', ["style.indexOf('-')>-1 && (style=style.replace(/-(\\w)/g,function(m,a){return a.toUpperCase()}));", "style=='float' && (style='", f ? 'cssFloat' : 'styleFloat', "');return el.style[style] || ", f ? 'window.getComputedStyle(el, null)[style]' : 'el.currentStyle[style]', ' || null;'].join(''));
}();

test:

function getStyleTest(){
var nav = document.getElementsByTagName("nav");
alert(getStyle(nav[0], "margin-top"));
alert(getStyle(nav[0], "float"));
alert(getStyle(nav[0], "color"));
}

从RGB转化成16进制:

function getHexFromRGB(rgb){

var regexp = /^rgb\(([0-9]{0,3})\,\s([0-9]{0,3})\,\s([0-9]{0,3})\)/g;
var re = rgb.replace(regexp, "$1 $2 $3").split(" ");//利用正则表达式去掉多余的部分
var hexColor = "#";
var hex = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'];
for (var i = 0; i < 3; i++) {
var r = null;
var c = re[i];
var hexAr = [];
while (c > 16) {
r = c % 16;
c = (c / 16) >> 0;
hexAr.push(hex[r]);
}
hexAr.push(hex[c]);
hexColor += hexAr.reverse().join('');
}
return hexColor;
}


4.修改CSS规则:

参考:DOM StyleSheet Object http://www.javascriptkit.com/domref/stylesheet.shtml

<script type="text/javascript">
window.onload = function(){

var cssRules = document.styleSheets[0].rules ? document.styleSheets[0].rules : document.styleSheets[0].cssRules;
cssRules[1].style.fontSize = "23px";
for(var ex in cssRules[1]){

console.log(ex);
}
alert(cssRules[0].type);
alert(cssRules[0].cssText);
alert(cssRules[0].selectorText);
}
</script>




转载于:https://www.cnblogs.com/wkylin/archive/2011/10/17/2215586.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值