一、獲取內(nèi)聯(lián)樣式
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了東河免費(fèi)建站歡迎大家使用!
div
id
="myDiv"
style="width:100px;height:100px;background-color:red;
border:1px
solid
black;"/div
script
var
myDiv
=
document.getElementById("myDiv");
alert(myDiv.style.width);//100px
alert(myDiv.style['height']);//100px
var
style=myDiv.style;
alert(style.backgroundColor);//red
myDiv.style.backgroundColor='green';//myDiv背景色變?yōu)榫G色
/script
在這種情況下,獲取和設(shè)置樣式只靠style屬性就可以,因?yàn)閑lement.style屬性返回的是類(lèi)似數(shù)組的一組樣式屬性及對(duì)應(yīng)值,因此訪問(wèn)具體樣式的時(shí)候可以采取兩種方式即“ele.style.屬性名稱”和“ele.style['屬性名稱']”。但是,要注意的是,針對(duì)css樣式里background-color;margin-left之類(lèi)的短杠相接的屬性名稱,在使用style屬性獲取設(shè)置樣式的時(shí)候名稱要改為駝峰式,如ele.style.backgroundColor.
二、因?yàn)榈谝环N方法,即使用style屬性只能獲取到內(nèi)聯(lián)樣式。但是,實(shí)際情況是文檔在現(xiàn)在都基本遵循分離思想,樣式基本都是外部鏈接,所以三種樣式都要考慮到的,這時(shí)就要使用其他方法進(jìn)行獲取,而在這種情況下進(jìn)行樣式獲取時(shí),不同的瀏覽器又有不同的處理方式(主要是ie和非ie),因此根據(jù)瀏覽器可以分為兩種方式:
(2.1)非ie瀏覽器中,使用document.defaultView對(duì)象的getComputedStyle(ele,null/偽類(lèi))方法,該方法接受兩個(gè)參數(shù),第一個(gè)為要考察的元素,第二個(gè)則要根據(jù)情況,如果只是考察元素本身則為null,如果要
考察偽類(lèi),則為響應(yīng)的偽類(lèi)。該方法獲取到的為元素應(yīng)用的最終樣式組合,同樣是類(lèi)似數(shù)組的一個(gè)實(shí)例。
(2.2)在ie瀏覽器中,對(duì)getComputedStyle()方法不支持,但是針對(duì)每個(gè)標(biāo)簽元素都有一個(gè)近似于style屬性的currentStyle的屬性,且用法和style用法相同。只不過(guò)獲取到的樣式范圍不一樣。currenStyle獲取到的和getComputedStyle()方法相接近。
為了在處理時(shí)達(dá)到兼容,可以根據(jù)這兩種不同的處理方式創(chuàng)建一個(gè)函數(shù)來(lái)達(dá)到兼容目的,使得不管在那種瀏覽器中,都可以成功獲取樣式。如下所示:
style
type="text/css"
#myDiv
{
background-color:blue;
width:100px;
height:200px;
}
/style
div
id
="myDiv"
style="background-color:red;
border:1px
solid
black;"/div
script
var
myDiv
=
document.getElementById("myDiv");
var
finalStyle
=
myDiv.currentStyle
?
myDiv.currentStyle
:
document.defaultView.getComputedStyle(myDiv,
null);/*利用判斷是否支持currentStyle(是否為ie)
來(lái)通過(guò)不同方法獲取style*/
alert(finalStyle.backgroundColor);
//"red"
alert(finalStyle.width);
//"100px"
alert(finalStyle.height);
//"200px"
/script
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!
在頁(yè)面內(nèi)用JS操作CSS除非用AJAX,但操作頁(yè)面內(nèi)的樣式的話,是可以的。操作樣式分為改變直接樣式,改變className和改變cssText三種
一、局部改變樣式
調(diào)用方法:
改變className
div id="demo"測(cè)試/div
script
document.getElementById('demo').className="test";
/script
改變直接樣式
div id="demo"測(cè)試/div
script
document.getElementById('obj').style.backgroundColor="#003366";
/script
二、全局改變樣式
可以通過(guò)改變外鏈樣式的的href的值實(shí)現(xiàn)網(wǎng)頁(yè)樣式的實(shí)時(shí)切換
link rel = "stylesheet" type="text/css" id="css" href="firefox.css" /
span on click="javascript:document.getElementById('css').href = 'ie.css'"點(diǎn)我改變樣式/span
js:
el.style.display?=?'value'??//?el?為DOM元素,display為要設(shè)置的屬性(width,height,等,采用駝峰式命名法),value為想要設(shè)置的值
jQ
$('.class').css('name',?'value');
或者
$('.class').css({
name1:?value1,
name2:?value2,
'backgroud-color':?'red'
})
鍵值可以使用駝峰式命名法
如果網(wǎng)頁(yè)中一個(gè)
id為“no”的標(biāo)簽,暫且當(dāng)div標(biāo)簽來(lái)tell;
想要在js中設(shè)置這個(gè)div的css樣式,很一般的做法是:
var
obj
=
document.getElementByIdx_x_x('no');
obj.style.width
=
'400px';
obj.style.height
=
'300px';
如果要設(shè)置一堆又一堆的css樣式呢,太麻煩了把、
一般情況下都會(huì)結(jié)合css來(lái)添加className或者改變className達(dá)到想要的效果,但是如果你create一個(gè)元素,難道還想這樣簡(jiǎn)單點(diǎn)?那就要想別的辦法了~
于是大家就寫(xiě)了一個(gè)又一個(gè)的函數(shù),經(jīng)典的兩個(gè)是:
var
obj
=
document.getElementByIdx_x_x('no');
function
setStyle(obj,
css)
{
for(var
attr
in
obj){
obj.style[attr]
=
css[attr];
}
}
setStyle(obj,{width:"400px",height:"300px"});
當(dāng)然還有更簡(jiǎn)單的,cssText:
var
obj
=
document.getElementByIdx_x_x('no');
obj.style.cssText
=
"width:400px;
height:300px;";
當(dāng)然這種方法對(duì)于create的元素初始化css樣式來(lái)說(shuō)很簡(jiǎn)單很方便。
以上就是小編為大家?guī)?lái)的js中用cssText設(shè)置css樣式的簡(jiǎn)單方法的全部?jī)?nèi)容了,希望對(duì)大家有所幫助,多多支持腳本之家~
語(yǔ)法:元素.style.樣式名=樣式值
注意:如果CSS的樣式名中含有-,這種名稱在JS中是不合法的,比如 background-color 。需要將這種樣式名修改為駝峰命名法:去掉-,然后將-后的第一個(gè)字母大寫(xiě),比如 backgroundColor
我們通過(guò)style屬性設(shè)置的樣式都是內(nèi)聯(lián)樣式,而內(nèi)聯(lián)樣式有較高的優(yōu)先級(jí),所以通過(guò)JS修改的樣式往往會(huì)立即顯示
但是如果在樣式中寫(xiě)了!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 要獲取的樣式名
當(dāng)前文章:js中css樣式,js 樣式
網(wǎng)頁(yè)URL:http://www.rwnh.cn/article40/dssodeo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站營(yíng)銷(xiāo)、定制網(wǎng)站、網(wǎng)站內(nèi)鏈、搜索引擎優(yōu)化、軟件開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)