Sha256: 848107c5408cdd712651a159fc44a49ef6ac2313ab336f84a8185779fbcb3d0d

Contents?: true

Size: 1.73 KB

Versions: 7

Compression:

Stored size: 1.73 KB

Contents

/*
---
name : Sheet.DOM
description : Sheet.DOM adds some handy stuff for working with the browser's native CSS capabilities.

authors   : Thomas Aylott
copyright : © 2010 Thomas Aylott
license   : MIT

provides : Sheet.DOM
...
*/
;(function(document,styleSheets){

if (typeof Sheet == 'undefined') Sheet = {}
if (Sheet.DOM == null) Sheet.DOM = {}

Sheet.DOM.createSheetNode = function(raw){
	var sheet = Sheet.DOM.createSheet(raw)
	var node = sheet.ownerNode
	node.parentNode.removeChild(node)
	return node
}

var UID = 0

Sheet.DOM.createSheet = createStyleSheetWithCSS
function createStyleSheetWithCSS(css){
	var styleElement = document.createElement("style")
	styleElement.appendChild(document.createTextNode(css))
	styleElement.setAttribute('name', styleElement.id = "SheetRuler-" + +new Date)
	document.getElementsByTagName('head')[0].appendChild(styleElement)

	return styleElement.sheet || styleElement.styleSheet
}

Sheet.DOM.createStyle = function(raw){
	var div = document.createElement('div')
	div.innerHTML = '<p style="' + String_escapeHTML.call(raw) + '"></p>'
	return div.firstChild.style
}

Sheet.DOM.createSheetStyle = function(raw){
	var className = 'Sheet' + +new Date
	var sheet = Sheet.DOM.createSheet("." + className + "{" + raw + "}")
	return (sheet.rules || sheet.cssRules)[0].style
}

Sheet.DOM.createRule = function(selector,style){
	var rule = selector + "{" + style + "}"
	
	var sheet = Sheet.DOM.createSheet(rule)
	var rules = sheet.rules || sheet.cssRules
	return rules[rules.length - 1]
}

Sheet.DOM.createStyleWrapped = function(raw){
	return {style:Sheet.DOM.createStyle(raw)}
}

function String_escapeHTML(){
	return ('' + this).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/"/g,'&quot;')
}

}(document, document.styleSheets));

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
lsd_rails-0.1.6 Packages/Sheet.js/Source/Sheet.DOM.js
lsd_rails-0.1.5 Packages/Sheet.js/Source/Sheet.DOM.js
lsd_rails-0.1.4 Packages/Sheet.js/Source/Sheet.DOM.js
lsd_rails-0.1.3 Packages/Sheet.js/Source/Sheet.DOM.js
lsd_rails-0.1.2 Packages/Sheet.js/Source/Sheet.DOM.js
lsd_rails-0.1.1 Packages/Sheet.js/Source/Sheet.DOM.js
lsd_rails-0.1 Packages/Sheet.js/Source/Sheet.DOM.js