在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 為什么js的style.display取不到css樣式表里面的樣式?同樣的是否還

為什么js的style.display取不到css樣式表里面的樣式?同樣的是否還有其它屬性也有這樣的問題?

1、遇到這個(gè)問題是因?yàn)樵趯?shí)現(xiàn)點(diǎn)擊一個(gè)按鈕控制另一個(gè)元素顯隱的時(shí)候遇到了需要第二次點(diǎn)擊按鈕元素才會(huì)顯示的問題;
2、網(wǎng)上查了下,查到的結(jié)果是因?yàn)閖s的style.display取不到css樣式表里面的樣式
3、我的代碼

<!--打賞-->
            <div class="row reward"><button class="btn btn-success" id="reward-btn">打賞</button></div>
            <div class="reward-code row" style="display:none;">
                <img src="images/reward.jpg">
            </div>
            

4、我試了網(wǎng)上的做法,將display寫成內(nèi)聯(lián)樣式,確實(shí)有用。但依然不懂為什么js取不到css樣式表中的樣式?獲取這個(gè)問題是否還有別的解決辦法?同樣的這種問題是否別的樣式也存在?

回答
編輯回答
入她眼

js 可以獲取到最終樣式,也可以獲取到css樣式表中的樣式,一般都是直接獲取最終樣式來處理,獲取樣式表的內(nèi)容去動(dòng)態(tài)修改反而麻煩;

獲取最終樣式:
“DOM2 級(jí)樣式”增強(qiáng)了document.defaultView,提供了getComputedStyle()方法,可以調(diào)用最終的樣式(嵌入式樣式、外部樣式表、內(nèi)聯(lián)樣式綜合的樣式表現(xiàn))。

var myDiv = document.getElementsByClassName("reward-code")[0];
var computedStyle = document.defaultView.getComputedStyle(myDiv, null);
alert(computedStyle.display); //none

兼容IE8及之前版本看這里

獲取 css 樣式表樣式:
js 高程 335頁,內(nèi)容比較多不貼了,而且不大常用,需要的話,可以自己下載看看;

2017年4月6日 05:55
編輯回答
愿如初

這篇文章講的挺詳細(xì)的https://www.cnblogs.com/mayuf...

2018年5月24日 21:54
編輯回答
逗婦惱

問題1:請(qǐng)查看HTMLElement.style的定義:HTMLElement.style 屬性返回一個(gè) CSSStyleDeclaration 對(duì)象,表示元素的 內(nèi)聯(lián)style 屬性(attribute),但忽略任何樣式表應(yīng)用的屬性。
鏈接:查看HTMLElement.style的定義

問題2: 你可以定義class,然后用js addClass、removeClass
問題3: 別的樣式也存在這種問題

2017年1月7日 05:02