CSS-min.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. /*
  2. * Ext JS Library 2.0 Copyright(c) 2006-2007, Ext JS, LLC. licensing@extjs.com
  3. *
  4. * http://extjs.com/license
  5. */
  6. Ext.util.CSS = function() {
  7. var D = null;
  8. var C = document;
  9. var B = /(-[a-z])/gi;
  10. var A = function(E, F) {
  11. return F.charAt(1).toUpperCase()
  12. };
  13. return {
  14. createStyleSheet : function(G, J) {
  15. var F;
  16. var E = C.getElementsByTagName("head")[0];
  17. var I = C.createElement("style");
  18. I.setAttribute("type", "text/css");
  19. if (J) {
  20. I.setAttribute("id", J)
  21. }
  22. if (Ext.isIE) {
  23. E.appendChild(I);
  24. F = I.styleSheet;
  25. F.cssText = G
  26. } else {
  27. try {
  28. I.appendChild(C.createTextNode(G))
  29. } catch (H) {
  30. I.cssText = G
  31. }
  32. E.appendChild(I);
  33. F = I.styleSheet
  34. ? I.styleSheet
  35. : (I.sheet || C.styleSheets[C.styleSheets.length - 1])
  36. }
  37. this.cacheStyleSheet(F);
  38. return F
  39. },
  40. removeStyleSheet : function(F) {
  41. var E = C.getElementById(F);
  42. if (E) {
  43. E.parentNode.removeChild(E)
  44. }
  45. },
  46. swapStyleSheet : function(G, E) {
  47. this.removeStyleSheet(G);
  48. var F = C.createElement("link");
  49. F.setAttribute("rel", "stylesheet");
  50. F.setAttribute("type", "text/css");
  51. F.setAttribute("id", G);
  52. F.setAttribute("href", E);
  53. C.getElementsByTagName("head")[0].appendChild(F)
  54. },
  55. refreshCache : function() {
  56. return this.getRules(true)
  57. },
  58. cacheStyleSheet : function(F) {
  59. if (!D) {
  60. D = {}
  61. }
  62. try {
  63. var H = F.cssRules || F.rules;
  64. for (var E = H.length - 1; E >= 0; --E) {
  65. D[H[E].selectorText] = H[E]
  66. }
  67. } catch (G) {
  68. }
  69. },
  70. getRules : function(F) {
  71. if (D == null || F) {
  72. D = {};
  73. var H = C.styleSheets;
  74. for (var G = 0, E = H.length; G < E; G++) {
  75. try {
  76. this.cacheStyleSheet(H[G])
  77. } catch (I) {
  78. }
  79. }
  80. }
  81. return D
  82. },
  83. getRule : function(E, G) {
  84. var F = this.getRules(G);
  85. if (!(E instanceof Array)) {
  86. return F[E]
  87. }
  88. for (var H = 0; H < E.length; H++) {
  89. if (F[E[H]]) {
  90. return F[E[H]]
  91. }
  92. }
  93. return null
  94. },
  95. updateRule : function(E, H, G) {
  96. if (!(E instanceof Array)) {
  97. var I = this.getRule(E);
  98. if (I) {
  99. I.style[H.replace(B, A)] = G;
  100. return true
  101. }
  102. } else {
  103. for (var F = 0; F < E.length; F++) {
  104. if (this.updateRule(E[F], H, G)) {
  105. return true
  106. }
  107. }
  108. }
  109. return false
  110. }
  111. }
  112. }();