JavaScript 改變css樣式的方法

1. 直接設(shè)置style的屬性 某些情況用這個(gè)設(shè)置 !important值無(wú)效
如果屬性有'-'號(hào),就寫(xiě)成駝峰的形式(如textAlign) 如果想保留 - 號(hào),就中括號(hào)的形式

element.style['text-align'] = '100px';
element.style.height = '100px';

2. 直接設(shè)置屬性(只能用于某些屬性,相關(guān)樣式會(huì)自動(dòng)識(shí)別)

element.setAttribute('height', 100);
element.setAttribute('height', '100px');

3. 設(shè)置style的屬性

element.setAttribute('style', 'height: 100px !important');

4. 使用setProperty 如果要設(shè)置!important,推薦用這種方法設(shè)置第三個(gè)參數(shù)

element.style.setProperty('height', '300px', 'important');

5. 改變class 比如JQ的更改class相關(guān)方法
因JS獲取不到css的偽元素,所以可以通過(guò)改變偽元素父級(jí)的class來(lái)動(dòng)態(tài)更改偽元素的樣式

element.className = 'blue';
element.className += 'blue fb';

6. 設(shè)置cssText

element.style.cssText = 'height: 100px !important';
element.style.cssText  += 'height: 100px !important';

7. 創(chuàng)建引入新的css樣式文件

  function addNewStyle(newStyle) {
        var styleElement = document.getElementById('styles_js');

        if (!styleElement) {
            styleElement = document.createElement('style');
            styleElement.type = 'text/css';
            styleElement.id = 'styles_js';
            document.getElementsByTagName('head')[0].appendChild(styleElement);
        }   
        styleElement.appendChild(document.createTextNode(newStyle));
    }
    addNewStyle('.box {height: 100px !important;}');

8. 使用addRule、insertRule

// 在原有樣式操作
    document.styleSheets[0].addRule('.box', 'height: 100px');
    document.styleSheets[0].insertRule('.box {height: 100px}', 0);

    // 或者插入新樣式時(shí)操作
    var styleEl = document.createElement('style'),
        styleSheet = styleEl.sheet;

    styleSheet.addRule('.box', 'height: 100px');
    styleSheet.insertRule('.box {height: 100px}', 0);

    document.head.appendChild(styleEl);
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀(guān)點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,154評(píng)論 1 92
  • CSS全稱(chēng)為“層疊樣式表 (Cascading Style Sheets)”,它主要是用于定義HTML內(nèi)容在瀏覽器...
    百作不死的學(xué)習(xí)閱讀 1,339評(píng)論 0 7
  • 學(xué)習(xí)CSS的最佳網(wǎng)站沒(méi)有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,189評(píng)論 0 1
  • 一款成功的APP離不開(kāi)正確的推廣策略,然而對(duì)于一款剛剛上線(xiàn)的APP,要想獲得不錯(cuò)的曝光量和下載量,又有哪些推廣渠道...
    APP干貨鋪?zhàn)?/span>閱讀 519評(píng)論 0 5
  • 忙碌的一天下午終于有自己的時(shí)間和家人在一起。 闐闐今天還在上課,下午6點(diǎn)放學(xué)休息,洗完澡,答應(yīng)跟我去單位錄...
    麗萍在這閱讀 268評(píng)論 3 3

友情鏈接更多精彩內(nèi)容