獲取元素樣式

獲取元素的某一個(gè)具體的樣式屬性值

元素.style.屬性名
這需要把元素的樣式都寫在行內(nèi)樣式上猫十,寫在樣式表(css)中是不行的,會(huì)得到空值。

    // -> 這需要把元素的樣式都寫在行內(nèi)樣式上,寫在樣式表(css)中是不行的蔼夜,會(huì)得到空值
    console.log(box.style.height); // -> ""
    console.log(box.style.width); // -> 行內(nèi)樣式里width=200px; 得到200px

這種方式不常用,因?yàn)闉榱双@取值而所有樣式都寫在行內(nèi)(無法實(shí)現(xiàn)CSS和HTML的分離)压昼。

使用window.getComputedStyle這個(gè)方法獲取所有通過瀏覽器計(jì)算過的樣式
所有通過瀏覽器計(jì)算過的樣式: 只要當(dāng)前的元素標(biāo)簽可以在頁面中呈現(xiàn)出來求冷,那么它的所有的樣式都是經(jīng)過瀏覽器計(jì)算過的(渲染過的) -> 哪怕有些樣式并沒有寫,也可以獲取到窍霞。

    // -> window.getComputedStyle(當(dāng)前要操作的元素對(duì)象, 當(dāng)前元素的偽類[一般不用偽類,而使用null])匠题。
    // 獲取的結(jié)果是CSSStyleDeclaration 這個(gè)類的實(shí)例: 包含了當(dāng)前元素的所有樣式屬性和值
    console.log(window.getComputedStyle); // 結(jié)果是一個(gè)function
    console.log(window.getComputedStyle(box, null))
    console.log(window.getComputedStyle(box, null).height); // 獲得給定元素具體樣式值

方法雖然好用,但是在IE6-8下不兼容但金。因?yàn)閣indow下沒有g(shù)etComputedStyle這個(gè)屬性韭山。得到的結(jié)果是undefined。所以在IE6-8下執(zhí)行這個(gè)方法會(huì)報(bào)錯(cuò)冷溃。

    // -> 在IE6-8下可以使用currentStyle來獲取所有經(jīng)過瀏覽器計(jì)算過的樣式
    console.dir(box.currentStyle);

獲取當(dāng)前元素所有經(jīng)過瀏覽器計(jì)算過的樣式中的attr對(duì)應(yīng)的值钱磅。
currentElement: [object]當(dāng)前想要操作的元素對(duì)象。
attr: [string]要獲取的樣式的屬性的名稱秃诵。

    // 使用 try catch 來處理兼容(只有在不得已的情況下才使用這個(gè)方法處理兼容)
    // -> 前提: 必須保證try中的代碼在不兼容瀏覽器中執(zhí)行的時(shí)候會(huì)報(bào)錯(cuò)续搀,這樣才會(huì)執(zhí)行到catch來捕獲異常信息塞琼,進(jìn)行兼容性處理菠净。
    // -> 不管當(dāng)前是什么瀏覽器,都需要先把try中的代碼執(zhí)行一遍彪杉,如果當(dāng)前是IE7毅往,window.getComputedStyle本身是不兼容的。但是此時(shí)仍要將其執(zhí)行一次派近,報(bào)錯(cuò)后才在執(zhí)行currentElement.currentStyle一遍攀唯,這樣就會(huì)消耗性能。
    function getCss(currentElement, attr) {
        var val = null;
        try {
            val = window.getComputedStyle(currentElement, null)[attr];
        } catch (e) {
            val = currentElement.currentStyle[attr];
        }
        return val;
    }
    function getCss(currentElement, attr) {
        var val = null;
        if (window.getComputedStyle) { // -> 首先獲取屬性值渴丸,兼容返回的是一個(gè)函數(shù)侯嘀,
            // 轉(zhuǎn)換為布爾是true,不兼容返回的是undefined谱轨,轉(zhuǎn)換為布爾是false
            val = window.getComputedStyle(currentElement, null)[attr];
        } else { // -> 代表不兼容
            val = currentElement.currentStyle[attr];
        }
        return val;
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末戒幔,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子土童,更是在濱河造成了極大的恐慌诗茎,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,843評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件献汗,死亡現(xiàn)場(chǎng)離奇詭異敢订,居然都是意外死亡王污,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,538評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門楚午,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昭齐,“玉大人,你說我怎么就攤上這事矾柜∷纠耍” “怎么了?”我有些...
    開封第一講書人閱讀 163,187評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵把沼,是天一觀的道長啊易。 經(jīng)常有香客問我,道長饮睬,這世上最難降的妖魔是什么租谈? 我笑而不...
    開封第一講書人閱讀 58,264評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮捆愁,結(jié)果婚禮上割去,老公的妹妹穿的比我還像新娘。我一直安慰自己昼丑,他們只是感情好呻逆,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,289評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著菩帝,像睡著了一般咖城。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上呼奢,一...
    開封第一講書人閱讀 51,231評(píng)論 1 299
  • 那天宜雀,我揣著相機(jī)與錄音,去河邊找鬼握础。 笑死辐董,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的禀综。 我是一名探鬼主播简烘,決...
    沈念sama閱讀 40,116評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼定枷!你這毒婦竟也來了孤澎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,945評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤依鸥,失蹤者是張志新(化名)和其女友劉穎亥至,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,367評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡姐扮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,581評(píng)論 2 333
  • 正文 我和宋清朗相戀三年絮供,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茶敏。...
    茶點(diǎn)故事閱讀 39,754評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡壤靶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惊搏,到底是詐尸還是另有隱情贮乳,我是刑警寧澤,帶...
    沈念sama閱讀 35,458評(píng)論 5 344
  • 正文 年R本政府宣布恬惯,位于F島的核電站向拆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏酪耳。R本人自食惡果不足惜浓恳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,068評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望碗暗。 院中可真熱鬧颈将,春花似錦、人聲如沸言疗。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,692評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽噪奄。三九已至死姚,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間梗醇,已是汗流浹背知允。 一陣腳步聲響...
    開封第一講書人閱讀 32,842評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叙谨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,797評(píng)論 2 369
  • 正文 我出身青樓保屯,卻偏偏與公主長得像手负,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子姑尺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,654評(píng)論 2 354

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

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案竟终? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,751評(píng)論 1 92
  • 獲取元素當(dāng)前樣式 getStyle(obj, styleName) 寫這篇文章的目的是為了拿到當(dāng)前元素的現(xiàn)有的樣式...
    劉大閱讀 340評(píng)論 0 1
  • 上篇文章講到如何設(shè)置元素樣式,本文將繼續(xù)給大家分享如何獲取元素樣式切蟋。 一统捶、style,只獲取標(biāo)簽上定義的行內(nèi)樣式 ...
    前端王睿閱讀 5,557評(píng)論 0 6
  • ——記 巷深幾米 晚霞唏噓 溫酒釀故里 風(fēng)聲幾許 靡靡之音 貪戀復(fù)歸去 晨光熹微 巷頭巷尾 故人不復(fù)歸 不知蒙昧 ...
    溫水遣茶v閱讀 282評(píng)論 0 0
  • 中國是一個(gè)美食大國什黑,中餐行業(yè)是一個(gè)大產(chǎn)業(yè)崎淳,僅次于房地產(chǎn)和汽車產(chǎn)業(yè)。然后愕把,房地產(chǎn)已經(jīng)有幾家產(chǎn)值突破了千億拣凹,汽車突皮百...
    明月H5閱讀 220評(píng)論 0 0