存储/检索 CSS 元素

Store/Retrieve CSS elements

本文关键字:元素 CSS 检索 存储      更新时间:2023-09-26

我正在Web中开发FormDesigner:HTML5 + CSS3 + jQuery,我可以将一个(div,textbox等)拖到表单上并单独更改它们的css样式。


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

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

这就是我的做法:(代码片段)

            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方式存储了它们,但不知何故,我认为应该有更先进或更有效的方法,例如拥有类/属性/方法,以便我可以以通用、可重用和灵活的方式存储它们。

我认为你走对了路。但是jQuery 1.8引入了供应商前缀支持,这可能会对您有所帮助。

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

以供应商为前缀的 CSS 属性

W3C在提出为尚未标准化的CSS功能使用供应商前缀的想法时,心思对了,但它并没有导致童话般的结局。Web 开发人员面临着在样式表中包含所有以供应商为前缀的属性名称的噩梦。jQuery 1.8 稍微减轻了这种痛苦。我们会自动采用不带前缀的属性名称并生成适用于当前浏览器的前缀,因此您不必这样做。例如,在Chrome上,jQuery调用$("#myscroll").css("marquee-direction","backs")会将CSS设置为-webkit-marquee-direction: backs。

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