启网、虚拟主机、域名注册、服务器合租
精致合租、5人、10人、15人服务器合租、freebsd合租
当前位置:站长中国 > DIV+CSS教程 > JS修改CSS

JS修改CSS

2009 - 10 - 08  作者:  来源:  浏览:548  评论: 发布评论 问高手
推荐:启网 - 专业的主机、服务器合租提供商 17hz.net - 5年服务器合租精品服务
    

js修改css详解2009-02-07 15:11出处请看这里:http://hi.baidu.com/ahbzhehu/blog/item/3237bc301da8cc9ea9018ec0.html


abc.css


CSS code


.class1

    {

    width:10px;

    background-color: red;

    }


HTML code




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<link rel="stylesheet" type="text/css" href="abc.css" />


<TITLE> New Document </TITLE>

<script>

window.onload=fnInit;

function fnInit(){

// 访问 styleSheet 中的一条规则, 将其 backgroundColor 改为蓝色。

var oStyleSheet=document.styleSheets[0];

var oRule=oStyleSheet.rules[0];

oRule.style.backgroundColor="#0000FF";

}


</script>

</HEAD>


<BODY>

<div class="class1">aaa</div>

</BODY>

</HTML>


(2)




<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> New Document </TITLE>


<style type="text/css">

<!--

#apDiv1 {

    position:absolute;

    width:399px;

    height:195px;

    z-index:1;

    border:1px solid #000;

    background-color:#CCCCCC;

}

-->

</style>


<script>

window.onload = function(){

    alert(document.getElementById('apDiv1').currentStyle.width)

}


</script>


</HEAD>


<BODY>

<div id="apDiv1">aaa</div>




</BODY>

</HTML>




还可以用   document.styleSheets(i).href   可以知道当前页面中引用的每个css的文件!


另:CSS属性与JavaScript编码对照表


(一定要注意, 上次本人_何向阳,在使用js修改css的中margin-left属性时,总报"left"未定义,后来,找了好多资料,才发现在js中,margin-left的写法为:marginLeft,恍然大悟,希望遇到相同问题的朋友,谨慎对待。)


CSS与JS紧密配合,为我们的页面增添了很多别致的效果。为了达到某种特殊的效果我们需要用Javascript动态的去更改某一个标签的CSS属性。


    比如:鼠标经过一个图片时我们让图片加一个边框,代码可能是这样:JavaScript中style后面的属性应该是什么?

<script type="text/javascript">   

    function imageOver(e) {   

        e.style.border="1px solid red";   

    }   

    function imageOut(e) {   

        e.style.borderWidth=0;   

    }   

</script>




<img src="css.png" onmouseover="imageOver(this)" onmouseout="imageOut(this)" />


    JavaScript CSS Style属性对照表


    盒子标签和属性对照

CSS语法 (不区分大小写)   JavaScript语法 (区分大小写)

border   border

border-bottom   borderBottom

border-bottom-color   borderBottomColor

border-bottom-style   borderBottomStyle

border-bottom-width   borderBottomWidth

border-color   borderColor

border-left   borderLeft

border-left-color   borderLeftColor

border-left-style   borderLeftStyle

border-left-width   borderLeftWidth

border-right   borderRight

border-right-color   borderRightColor

border-right-style   borderRightStyle

border-right-width   borderRightWidth

border-style   borderStyle

border-top   borderTop

border-top-color   borderTopColor

border-top-style   borderTopStyle

border-top-width   borderTopWidth

border-width   borderWidth

clear   clear

float   floatStyle

margin   margin

margin-bottom   marginBottom

margin-left   marginLeft

margin-right   marginRight

margin-top   marginTop

padding   padding

padding-bottom   paddingBottom

padding-left   paddingLeft

padding-right   paddingRight

padding-top   paddingTop




    颜色和背景标签和属性对照

CSS语法 (不区分大小写)   JavaScript语法 (区分大小写)

background   background

background-attachment   backgroundAttachment

background-color   backgroundColor

background-image   backgroundImage

background-position   backgroundPosition

background-repeat   backgroundRepeat

color   color

    样式标签和属性对照

CSS语法 (不区分大小写)   JavaScript语法 (区分大小写)

display   display

list-style-type   listStyleType

list-style-image   listStyleImage

list-style-position   listStylePosition

list-style   listStyle

white-space   whiteSpace

    文字样式标签和属性对照

CSS语法 (不区分大小写)   JavaScript语法 (区分大小写)

font   font

font-family   fontFamily

font-size   fontSize

font-style   fontStyle

font-variant   fontVariant

font-weight   fontWeight

    文本标签和属性对照

CSS语法 (不区分大小写)   JavaScript语法 (区分大小写)

letter-spacing   letterSpacing

line-break   lineBreak

line-height   lineHeight

text-align   textAlign

text-decoration   textDecoration

text-indent   textIndent

text-justify   textJustify

text-transform   textTransform

vertical-align   verticalAlign


 




obj.style方法,这个方法只能JS只能获取写在html标签中的写在style属性中的值(style=""),看一下代码




XML/HTML代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml">  

<head>  

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  

<title>JS获取CSS属性值</title>  

<style type="text/css">  

<!--

.ss{color:#cdcdcd;}

-->  

</style>  

</head>  

  

<body>  

<div id="css88" class="ss" style="width:200px; height:200px; background:#333333">JS获取CSS属性值</div>  

<script type="text/javascript">  

     alert(document.getElementById("css88").style.width);//200px   

     alert(document.getElementById("css88").style.color);//空白   

</script>      

</body>  

</html> 


上面这个例子对id为"css88"的div设置了2种烦事的样式,包括style和外部样式class。


从alert出来的信息可以看到,document.getElementById("css88").style方法获取不到class为ss的属性和值。


那么这么样才能获取到class为ss的属性和值呢?


IE中使用的是obj.currentStyle方法,而FF是用的是getComputedStyle 方法。


网上一个比较方法是:




XML/HTML代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  

<html xmlns="http://www.w3.org/1999/xhtml">  

<head>  

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  

<title>S获取CSS属性值</title>  

  

<style type="text/css">  

<!--

.ss{background:blue; color:#cdcdcd; width:200px}

-->  

</style>  

</head>  

  

<body>  

<p id="qq" class="ss" >sdf</p>  

  

<script type="text/javascript">  

function GetCurrentStyle (obj, prop) {     

     if (obj.currentStyle) {        

         return obj.currentStyle[prop];     

     }      

     else if (window.getComputedStyle) {        

        propprop = prop.replace (/([A-Z])/g, "-$1");           

        propprop = prop.toLowerCase ();        

         return document.defaultView.getComputedStyle (obj,null)[prop];     

     }      

     return null;   

}   

var dd=document.getElementById("qq");   

alert(GetCurrentStyle(dd,"width"));   

</script>  

</body>  

</html> 


当然,如果您是引用外部的css文件同样适用。


另:可以将上面的方法简化为


JavaScript代码

function getDefaultStyle(obj,attribute){ // 返回最终样式函数,兼容IE和DOM,设置参数:元素对象、样式特性   

return obj.currentStyle?obj.currentStyle[attribute]:document.defaultView.getComputedStyle(obj,false)[attribute];   



推荐教程