CSS parser for JavaScript?

后端 未结 7 1091
既然无缘
既然无缘 2020-12-13 19:45

Update 2018: This question was asked long before PostCSS existed, and I would have probably used that.

I\'d like to par

7条回答
  •  别那么骄傲
    2020-12-13 19:57

    No need use external css parser,we can use native css parser

       
    var sheetRef=document.getElementsByTagName("style")[0];
    
    console.log("----------------list of  rules--------------");
    for (var i=0; i 0) {
    //console.log(sheet.cssRules[i]);
      console.log(sheet.cssRules[i].selectorText);
      console.log(sheet.cssRules[i].cssText);
    
                    }}
    .red{
    
    color:red;
    }

    To Insert Rule

    var sheetRef=document.getElementsByTagName("style")[0];
    var sheet = sheetRef.sheet ? sheetRef.sheet : sheetRef.styleSheet;
    sheet.insertRule('.foo{color:red;}', 0);
    

    To Remove Rule all browsers, except IE before version 9

    var sheetRef=document.getElementsByTagName("style")[0];
    var sheet = sheetRef.sheet ? sheetRef.sheet : sheetRef.styleSheet;
    sheet.removeRule (0);
    

    To Delete Rule all browsers, except IE before version 9

    var sheetRef=document.getElementsByTagName("style")[0];
    var sheet = sheetRef.sheet ? sheetRef.sheet : sheetRef.styleSheet;
    sheet.deleteRule (0);
    

    To add Media

      function AddScreenMedia () {
                var styleTag = document.getElementsByTagName("style")[0];
    
                    // the style sheet in the style tag
                var sheet = styleTag.sheet ? styleTag.sheet : styleTag.styleSheet;
    
                if (sheet.cssRules) {   // all browsers, except IE before version 9
                    var rule = sheet.cssRules[0];
                    var mediaList = rule.media;
    
                    alert ("The media types before adding the screen media type: " + mediaList.mediaText);
                    mediaList.appendMedium ("screen");
                    alert ("The media types after adding the screen media type: " + mediaList.mediaText);
                }
                else {  // Internet Explorer before version 9
                        // note: the rules collection does not contain the at-rules
                    alert ("Your browser does not support this example!");
                }
            }
      @media print {
                body {
                    font-size: 13px;
                    color: #FF0000;
                }
              }
    some text
    

    To get rules

     
    var sheetRef=document.getElementsByTagName("style")[0];
    
    console.log("----------------list of  rules--------------");
    for (var i=0; i 0) {
    //console.log(sheet.cssRules[i]);
      console.log(sheet.cssRules[i].selectorText);
      console.log(sheet.cssRules[i].cssText);
      
      console.log(sheet.cssRules[i].style.color)
      console.log(sheet.cssRules[i].style.background)
        console.log(sheet.cssRules[i].style)
    
                    }}
    .red{
    
    color:red;
    background:orange;
    }

    red

提交回复
热议问题