12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- //.CommonJS
- var CSSOM = {
- StyleSheet: require("./StyleSheet").StyleSheet,
- CSSStyleRule: require("./CSSStyleRule").CSSStyleRule
- };
- ///CommonJS
- /**
- * @constructor
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet
- */
- CSSOM.CSSStyleSheet = function CSSStyleSheet() {
- CSSOM.StyleSheet.call(this);
- this.cssRules = [];
- };
- CSSOM.CSSStyleSheet.prototype = new CSSOM.StyleSheet();
- CSSOM.CSSStyleSheet.prototype.constructor = CSSOM.CSSStyleSheet;
- /**
- * Used to insert a new rule into the style sheet. The new rule now becomes part of the cascade.
- *
- * sheet = new Sheet("body {margin: 0}")
- * sheet.toString()
- * -> "body{margin:0;}"
- * sheet.insertRule("img {border: none}", 0)
- * -> 0
- * sheet.toString()
- * -> "img{border:none;}body{margin:0;}"
- *
- * @param {string} rule
- * @param {number} index
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-insertRule
- * @return {number} The index within the style sheet's rule collection of the newly inserted rule.
- */
- CSSOM.CSSStyleSheet.prototype.insertRule = function(rule, index) {
- if (index < 0 || index > this.cssRules.length) {
- throw new RangeError("INDEX_SIZE_ERR");
- }
- var cssRule = CSSOM.parse(rule).cssRules[0];
- cssRule.parentStyleSheet = this;
- this.cssRules.splice(index, 0, cssRule);
- return index;
- };
- /**
- * Used to delete a rule from the style sheet.
- *
- * sheet = new Sheet("img{border:none} body{margin:0}")
- * sheet.toString()
- * -> "img{border:none;}body{margin:0;}"
- * sheet.deleteRule(0)
- * sheet.toString()
- * -> "body{margin:0;}"
- *
- * @param {number} index within the style sheet's rule list of the rule to remove.
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleSheet-deleteRule
- */
- CSSOM.CSSStyleSheet.prototype.deleteRule = function(index) {
- if (index < 0 || index >= this.cssRules.length) {
- throw new RangeError("INDEX_SIZE_ERR");
- }
- this.cssRules.splice(index, 1);
- };
- /**
- * NON-STANDARD
- * @return {string} serialize stylesheet
- */
- CSSOM.CSSStyleSheet.prototype.toString = function() {
- var result = "";
- var rules = this.cssRules;
- for (var i=0; i<rules.length; i++) {
- result += rules[i].cssText + "\n";
- }
- return result;
- };
- //.CommonJS
- exports.CSSStyleSheet = CSSOM.CSSStyleSheet;
- CSSOM.parse = require('./parse').parse; // Cannot be included sooner due to the mutual dependency between parse.js and CSSStyleSheet.js
- ///CommonJS
|