Javascript 如何修改CSS樣式(網頁樣式) 補充說明

我寫了一片文章:

Javascript 如何訪問修改CSS樣式(網頁樣式) 

後來發現對這個訪問和修改瞭解的卻並不是很深入,訪問和修改是不一樣的,如果是訪問的話,請看我寫的《Javascript 如何訪問修改CSS樣式(網頁樣式) 》,如果是修改的話,就請看本文吧,不過也可以看看《Javascript 如何訪問修改CSS樣式(網頁樣式) 》,加深一下理解。


注意:javascript訪問和修改CSS樣式具有不同的方法,能訪問的一般能修改,但是,能修改樣式的卻不一定能訪問,也就是在訪問時輸出爲null(或者空),對於這個問題,請看:Javascript 如何訪問修改CSS樣式(網頁樣式)


使用 javascript 修改網頁樣式可以通過

  1. 直接改變樣式
  2. 改變className
  3. 改變cssText


三種方式來實現。


這裏需要注意的是 javascript 對大小寫十分敏感,className不能夠把“N”寫成“n”,cssText也不能夠把“T”寫成“t”,否則無法實現效果

下面對這三種方式再做一個簡單的說明:


1. 改變元素的className

通過改變一個元素的 className,使其變爲另外一種 樣式,這需要事先寫一個CSS樣式表,定義類選擇器

這裏需要注意的是:在調用時不再寫style,比如:

document.getElementById('div1').style.className="....." 的寫法是錯誤的,應該這樣寫:

document.getElementById('div1').className="....."    這個一定要注意!!


2. 改變元素的cssText

和改變className不同的是,在改變元素的cssText時,必須加上style,比如正確的寫法如下:

document.getElementById('div1').style.cssText="....."  這個一定和上面的對照着看!!


3. 直接改變樣式

用法比如:

document.getElementById('div1').style.width=".....";

document.getElementById('div1').style.backgroundColor=".....";等等


下面看一個具體的例子:

mycss.css

.style1{
	width:500px;
	height:200px;
	background-color:pink;
}
.style2{
	width:600px;
	height:100px;
	background-color:yellow;
}
.style3{
	width:300px;
	height:300px;
	background-color:green;
}
.style4{
	width:400px;
	height:400px;
	background-color:blue;
}

html

<html>  
	<link rel="stylesheet" type="text/css" href="mycss.css" />  
	<head>  
		<script language="javascript">  

			function test(eventObj){
				//獲取元素
				var div1=document.getElementById('div1');
				
				window.alert(div1.className);
				window.alert(div1.style);	
				window.alert(div1.style.cssText);  //這裏輸出爲空

				if(eventObj.value=="改變className"){
				
					div1.className="style2";   //這裏不寫style
					div1.className="style3";
					div1.className="style4";
					
				} else if(eventObj.value=="改變cssText"){
					
					div1.style.cssText="width:400px;height:300px;background-color:blue";  //這裏要寫style
					
				} else if(eventObj.value=="改背景色爲紅色"){
					
					div1.style.backgroundColor="red";	
					
				} 			
			}	
		</script>  
	</head>  
	<body > 
	<div id="div1" class="style1">div1</div>
	<input type="button" value="改變className" onclick="test(this)"/><!-- 這裏的this就是當前button對象 -->
	<input type="button" value="改變cssText" onclick="test(this)"/>
	<input type="button" value="改背景色爲紅色" onclick="test(this)"/>
	</body>  
</html>

實際運行效果請粘貼代碼運行

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章