存储/检索CSS元素

时间:2012-07-02 09:51:33

标签: javascript jquery html css3

我正在使用Web上的FormDesigner:HTML5 + CSS3 + jQuery,我可以将(div,文本框等)拖到窗体上并单独更改它们的css样式。


我的要求:我如何单独存储每个属性,以便我可以轻松地单独检索? (通用,可重用,灵活)

background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(#666666), to(#666666), color-stop(0, #333333))

我就是这样做的:(code-snippet)

            cssObj[id] = {};
            cssObj[id].background = {};
            cssObj[id].background.webkitGradient = {};
            cssObj[id].background.webkitGradient.linear = {};
            cssObj[id].background.webkitGradient.linear.hPosStart = hPosStart;
            cssObj[id].background.webkitGradient.linear.vPosStart = vPosStart;
            cssObj[id].background.webkitGradient.linear.colorStart = colorStart;
            cssObj[id].background.webkitGradient.linear.hPosEnd = hPosEnd;
            cssObj[id].background.webkitGradient.linear.vPosEnd = vPosEnd;
            cssObj[id].background.webkitGradient.linear.colorEnd = colorEnd;
            cssObj[id].background.webkitGradient.linear.colorStop = {};
            cssObj[id].background.webkitGradient.linear.colorStop = colorStopArr;

我已经以jSon方式存储了它们,但我认为应该有更多先进或有效的方法,例如拥有类/属性/方法,以便我可以存储它们采用通用,可重用和灵活的方式。

1 个答案:

答案 0 :(得分:1)

我认为你走的是正确的方式。但jQuery 1.8引入了供应商前缀支持,这可能对您有帮助。

我认为您不需要指定类来动态修改元素的CSS。但是,保存表单时,可以在导出格式中使用CSS类定义。使用jQuery,您应该能够在.css() - 方法中传入JSON对象;这种方式不需要每行的特定代码。

  

以供应商为前缀的CSS属性

     

当W3C提出使用供应商前缀用于尚未标准化的CSS功能的想法时,它的心脏在正确的位置,但它并没有导致童话般的结局。 Web开发人员面临着在样式表中包含所有供应商前缀属性名称的噩梦。 jQuery 1.8缓解了一些痛苦。我们自动获取非前缀属性名称并生成适合当前浏览器的前缀,因此您不必这样做。例如,在Chrome上,jQuery调用$(“#myscroll”)。css(“marquee-direction”,“backwards”)将CSS设置为-webkit-marquee-direction:向后。

     

http://blog.jquery.com/2012/06/22/jquery-1-8-beta-1-see-whats-coming-and-going/