簡體   English   中英

如何動態地在css文件中添加css?

[英]how to add css in css file dynmically?

我已經為網格編寫了一個js。 網格有一個功能,我在這樣的輸入中獲取每個列的寬度。

mygrid._struct = [{ fieldType : "deltaHedgeType", defaultWidth : 80},
           { fieldType : "quoteccy", defaultWidth : 40 }]

所以網格html會這樣生成

<table id="mygrid">
  <tr>
    <td class="deltaHedgeType"></td>
    <td class="quoteccy"></td>
  </tr>
  <tr>
    <td class="deltaHedgeType"></td>
    <td class="quoteccy"></td>
  </tr>
</table>

我希望此CSS附加在style.css中

#mygrid .deltaHedgeType{
    width:40;
}
#mygrid .quoteccy{
    width:80;
}

我想到的是在標簽的標頭中附加此CSS。 coz IE瀏覽器的數量有所限制,並且它還會增加頁面的html大小。 所以我如何在style.css中添加此CSS。

您必須解析mygrid._struct以獲得fieldType和defaultWidth,然后對每個元素使用以下代碼

添加CSS的最終JavaScript將是

var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = '#mygrid.'+fieldType+'{ width:'+defaultWidth+'; }';
document.getElementsByTagName('head')[0].appendChild(style);

例如,限制要么在一個已經使用的樣式上使用一個id,然后使用jquery引用它,要么創建一個新的樣式,然后將所有您的樣式附加到該樣式上。

           $style = $('#MyGridStyle');
          if (!$style[0]) {
            $style = $("<style id='MyGridStyle' type='text/css' rel='stylesheet' />").appendTo($("head"));
          }

現在使用此$ style添加到此

動態添加另一個解決方案的樣式表時,請參考IE 8和7錯誤

您可以將CSS直接寫到html頁面的開頭-我在這里找到了一個很好的例子: 使用JavaScript向<head>添加CSS嗎?

在CSS文件內部,您可以使用@import url("/css/filename.css")導入新的CSS文件,該文件會動態刷新並用於某些特殊用途。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM