語(yǔ)法:元素.style.樣式名=樣式值
專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)八宿免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000多家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
注意:如果CSS的樣式名中含有-,這種名稱在JS中是不合法的,比如 background-color 。需要將這種樣式名修改為駝峰命名法:去掉-,然后將-后的第一個(gè)字母大寫,比如 backgroundColor
我們通過(guò)style屬性設(shè)置的樣式都是內(nèi)聯(lián)樣式,而內(nèi)聯(lián)樣式有較高的優(yōu)先級(jí),所以通過(guò)JS修改的樣式往往會(huì)立即顯示
但是如果在樣式中寫了!important,則此時(shí)樣式會(huì)有最高的優(yōu)先級(jí),即使通過(guò)JS也不能覆蓋該樣式,此時(shí)將會(huì)導(dǎo)致JS修改樣式失效
所以盡量不要為樣式添加!important
語(yǔ)法:元素.style.樣式名
通過(guò)style屬性設(shè)置和讀取的都是內(nèi)聯(lián)樣式,無(wú)法讀取樣式表中的樣式
語(yǔ)法:元素.currentStyle.樣式名
如果當(dāng)前元素沒(méi)有設(shè)置該樣式,則獲取它的默認(rèn)值
例如: box1.currentStyle.width
這個(gè)方法是window的方法,可以直接使用需要兩個(gè)參數(shù)
第一個(gè):要獲取樣式的元素
第二個(gè):可以傳遞一個(gè)偽元素,一般都傳null
該方法會(huì)返回一個(gè)對(duì)象,對(duì)象中封裝了當(dāng)前元素對(duì)應(yīng)的樣式
可以通過(guò)對(duì)象﹒樣式名來(lái)讀取樣式
如果獲取的 樣式?jīng)]有設(shè)置 ,則會(huì)獲取到真實(shí)的值,而不是默認(rèn)值
比如:沒(méi)有設(shè)置width,它不會(huì)獲取到auto,而是 一個(gè)長(zhǎng)度
注意:通過(guò)currentStyle和getComputedstyle()讀取到的樣式都是只讀的,不能修改,如果要修改必須通過(guò)style屬性
參數(shù):
obj 要獲取樣式的元素
name 要獲取的樣式名
網(wǎng)頁(yè)的樣式一般都定義在了css的文件中,而JavaScript中的className的屬性能讓css中的樣式動(dòng)態(tài)的應(yīng)用到網(wǎng)頁(yè)的元素上。比如,在css中有樣式.example。代碼如下:
.example {
color: #fff;
font-size 1em;
text-align: right;
}
要用JavaScript動(dòng)態(tài)的應(yīng)用到網(wǎng)頁(yè)上,可以使用如下類似的代碼:
function preparePage() {
//當(dāng)mainContent元素被點(diǎn)擊,mainContent的樣式將會(huì)改變
document.getElementById("mainContent").onclick = function() {
//檢查當(dāng)前mainContent的樣式,若是example,則將樣式取消。
//取消樣式直接將className屬性賦值為空字符串””就行。
//若mainContent的樣式不是example,則應(yīng)用example樣式。
if( document.getElementById("mainContent").className == "example") {
document.getElementById("mainContent").className = "";
} else {
document.getElementById("mainContent").className = "example";
}
};
}
window.onload = function() {
preparePage();
}
通過(guò)上面的JavaScript代碼,我們可以通過(guò)點(diǎn)擊來(lái)控制mainContent元素的樣式。上面的代碼是從秒秒學(xué)上扣出來(lái)的,如果你想要完整的案例,可以在秒秒學(xué)的《使用JavaScript美化界面》一章中找到。
有兩種辦法
(1)敲代碼直接修改
(2)獲取對(duì)象,通過(guò)style來(lái)動(dòng)態(tài)修改
document三個(gè)方法:getElementById()、getElementsByTagName()、getElementsByName()
或者通過(guò)傳參數(shù)的方法獲取對(duì)象,再對(duì)對(duì)象的style樣式里的屬性進(jìn)行修改,例如document.getElementById("el").style.color="red";
document.getElementById("el").style.backgroundImage="2.png";
javascript改變CSS樣式分為局部和全局,分別如下:
一、局部改變樣式
有三種方法:直接改變樣式、改變className和改變cssText
改變className: document.getElementById('obj').className="…"
改變cssText:document.getElementById('obj').style.cssText="width:20px; border:solid 1px #f00;";
改變直接樣式: document.getElementById('obj').style.backgroundColor="#003366″
二、全局改變樣式
通過(guò)改變外鏈樣式的的href的值實(shí)現(xiàn)網(wǎng)頁(yè)樣式的實(shí)時(shí)切換,也就是"改變模板風(fēng)格"。
首先需要賦予需要改變的目標(biāo)一個(gè)id,如
代碼如下:
link rel="stylesheet" type="text/css" id="css" href="firefox.css" /
調(diào)用時(shí)很簡(jiǎn)單,如
代碼如下:
span onclick="javascript:document.getElementById('css').href='ie.css'"點(diǎn)我改變樣式/span