使用JavaScript動(dòng)態(tài)更改CSS樣式

在很多情況下,都需要對(duì)網(wǎng)頁上元素的樣式進(jìn)行動(dòng)態(tài)的修改哪怔。在JavaScript中提供幾種方式動(dòng)態(tài)的修改樣式宣蔚,下面將介紹方法的使用、效果认境、以及缺陷胚委。

1、使用obj.className來修改樣式表的類名叉信。

2亩冬、使用obj.style.cssTest來修改嵌入式的css。

3硼身、使用obj.className來修改樣式表的類名硅急。

4、使用更改外聯(lián)的css文件鸠姨,從而改變?cè)氐腸ss

下面是一段html代碼和css代碼用來解釋上面方法的區(qū)別的铜秆。

CSS

.style1{margin:10px auto ;background-color:#9999FF; display:block;color:White; border:1px solid white; padding:10px 25px; font-size:18px; }

.style1:hover{ background-color:#66B3FF; cursor:pointer;}

.style2{margin:10px auto ;background-color:gray; display:block;color:black; border:1px solid white; padding:10px 25px; font-size:18px; }

.style2:hover{ background-color:black; color:White; cursor:pointer}

HTML

?<div>
??????? <input id="btnB" type="button" name="btnLogin" value="登錄" class="style1" />
??????? <div id="tool">
??????????? <input type="button" value="【obj.style.className】更改樣式" onclick="changeBackgroundColor()"/>
??????????? <input type="button" value="【obj.style.cssText】更改樣式" onclick="changeFontSize()" />
??????????? <input type="button" value="【obj.className】更改樣式" onclick="addRadius()" />
??????????? <input type="button" value="更改外聯(lián)css樣式" onclick="recover()" />
??????? </div>
??? </div>

一淹真、使用obj.className來修改樣式表的類名

從下面的代碼可以看出ob.style.cssTest是如何來btnB的樣式的讶迁。

?function changeStyle1() {
??????????? var obj = document.getElementById("btnB");
??????????? obj.style.backgroundColor= "black";

? }

該段代碼修改btB的文字的顏色,在瀏覽器中打開調(diào)試工具核蘸,可以發(fā)現(xiàn)btB標(biāo)簽中多了一個(gè)屬性【style="background-color:black"】巍糯,從而改變btB的樣式。

缺陷:

在修改btB的背景色之后用鼠標(biāo)放到btB上可以發(fā)現(xiàn)客扎,btB的偽類hover里面的css根本不起作用祟峦。原來是當(dāng)你修改了這個(gè)這樣樣式之后。在btB的內(nèi)聯(lián)樣式中多了background-color屬性了徙鱼,在css的應(yīng)用中也是有級(jí)別的宅楞,嵌入式>內(nèi)聯(lián)式>外聯(lián)式。而btB的hove偽類的background-color樣式寫在內(nèi)聯(lián)式中袱吆,所以嵌入式的background-color覆蓋了偽類中厌衙,這就使得鼠標(biāo)放入btB上感覺不到背景顏色的變化。

二绞绒、使用obj.style.cssTest來修改嵌入式的css

直接上JavaScript代碼:

?function changeStyle2() {
??????????? var obj = document.getElementById("btnB");
??????????? obj.style.cssText = "background-color:black; display:block;color:White;

}

該段代碼和【一】中的效果是一樣的婶希,缺陷也是一樣。

三蓬衡、使用obj.className來修改樣式表的類名

使用代碼來修改btB引用樣式的類名喻杈,如下段代碼:

? function changeStyle3() {
??????????? var obj = document.getElementById("btnB");
??????????? //obj.className = "style2";
??????????? obj.setAttribute("class", "style2");
??? }

通過更改btB的css的類名的方式來更改樣式彤枢,更改樣式類名有兩種方式。1筒饰、obj.className = "style2";? 2缴啡、 obj.setAttribute("class", "style2");都是一樣的效果。

用這種方式來修改css比上面的效果要好很多瓷们。

四盟猖、使用更改外聯(lián)的css文件,從而改變?cè)氐腸ss


通過更改外聯(lián)的css文件引用從而來更改btB的樣式换棚,操作很簡(jiǎn)單式镐。代碼如下:

首先得引用外聯(lián)的css文件,代碼如下:

<link href="css1.css" rel="stylesheet" type="text/css"? id="css"/>

function changeStyle4() {
??????????? var obj = document.getElementById("css");
??????????? obj.setAttribute("href","css2.css");
?? }

這樣也能方便的更改btB的樣式固蚤,個(gè)人覺得這種方式是最好用的娘汞。是實(shí)現(xiàn)整體頁面換膚的最佳方案。


今天聽了一天的講座夕玩,聽得有點(diǎn)懷疑自己了你弦,玄乎其玄的。還好晚上師兄來了燎孟,給我撥點(diǎn)迷津禽作,讓我又恢復(fù)了以往的堅(jiān)定。

聽演講還是有點(diǎn)收獲的揩页,本次的收獲有兩點(diǎn)旷偿。

第一:開闊了我的見識(shí),引起我的反思爆侣。

第二:給我又一次的打雞血萍程,鞭笞我不斷的努力努力。

不要責(zé)怪自己的意志不堅(jiān)定兔仰,因?yàn)槲乙彩且粋€(gè)合和物茫负。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市乎赴,隨后出現(xiàn)的幾起案子忍法,更是在濱河造成了極大的恐慌,老刑警劉巖榕吼,帶你破解...
    沈念sama閱讀 212,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饿序,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡友题,警方通過查閱死者的電腦和手機(jī)嗤堰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人踢匣,你說我怎么就攤上這事告匠。” “怎么了离唬?”我有些...
    開封第一講書人閱讀 158,369評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵后专,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我输莺,道長(zhǎng)戚哎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,799評(píng)論 1 285
  • 正文 為了忘掉前任嫂用,我火速辦了婚禮型凳,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘嘱函。我一直安慰自己甘畅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,910評(píng)論 6 386
  • 文/花漫 我一把揭開白布往弓。 她就那樣靜靜地躺著疏唾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪函似。 梳的紋絲不亂的頭發(fā)上槐脏,一...
    開封第一講書人閱讀 50,096評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音撇寞,去河邊找鬼顿天。 笑死,一個(gè)胖子當(dāng)著我的面吹牛重抖,可吹牛的內(nèi)容都是我干的露氮。 我是一名探鬼主播祖灰,決...
    沈念sama閱讀 39,159評(píng)論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼钟沛,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了局扶?” 一聲冷哼從身側(cè)響起恨统,我...
    開封第一講書人閱讀 37,917評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎三妈,沒想到半個(gè)月后畜埋,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,360評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡畴蒲,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,673評(píng)論 2 327
  • 正文 我和宋清朗相戀三年悠鞍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片模燥。...
    茶點(diǎn)故事閱讀 38,814評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡咖祭,死狀恐怖掩宜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情么翰,我是刑警寧澤牺汤,帶...
    沈念sama閱讀 34,509評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站浩嫌,受9級(jí)特大地震影響檐迟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜码耐,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,156評(píng)論 3 317
  • 文/蒙蒙 一追迟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧骚腥,春花似錦怔匣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纯露,卻和暖如春剿骨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背埠褪。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工浓利, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人钞速。 一個(gè)月前我還...
    沈念sama閱讀 46,641評(píng)論 2 362
  • 正文 我出身青樓贷掖,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親渴语。 傳聞我的和親對(duì)象是個(gè)殘疾皇子苹威,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,728評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容

  • 為了達(dá)到某種特殊的效果我們需要用Javascript動(dòng)態(tài)的去更改某一個(gè)標(biāo)簽的Css屬性,如何動(dòng)態(tài)修改css樣式呢驾凶?...
    LazzMan閱讀 14,523評(píng)論 0 1
  • CSS基礎(chǔ) 本文包括CSS基礎(chǔ)知識(shí)選擇器(重要Q栏Α!5魑ァ)繼承窟哺、特殊性、層疊技肩、重要性CSS格式化排版單位和值盒模型浮動(dòng)...
    廖少少閱讀 3,068評(píng)論 0 40
  • <a name='html'>HTML</a> Doctype作用且轨?標(biāo)準(zhǔn)模式與兼容模式各有什么區(qū)別? (1)、<...
    clark124閱讀 3,462評(píng)論 1 19
  • FreeCodeCamp - HTML5 and CSS 發(fā)現(xiàn)原來在另外一臺(tái)電腦學(xué) FreeCodeCamp 的時(shí)...
    付林恒閱讀 9,356評(píng)論 2 17
  • 我希望有個(gè)如你一般的人 生活,千般滋味旋奢;心情阿蝶,瞬息萬變。我希望有個(gè)如你一般的人黄绩,一直在身邊羡洁,從未 走遠(yuǎn)。----題...
    格格牽著牛閱讀 424評(píng)論 1 3