2012-07-02 6 views
2

Я работаю над FormDesigner в Web: HTML5 + CSS3 + jQuery, в результате чего я могу перетащить (div, текстовое поле и т. Д.) На форму и изменить свой стиль css индивидуально.Хранить/извлекать элементы CSS


Мое требование: Как я мог хранить каждый из атрибутов по отдельности, так что я мог бы легко получить самостоятельно? (Generic, многоразовые, гибкий)

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 образом, но я почему-то думаю, должен быть более продвинутым или эффективным подходом, например, иметь класс Class/Attributes/Methods, чтобы я мог хранить их в универсальном, многоразовом и гибком виде.

ответ

1

Я думаю, что вы идете правильно. Но jQuery 1.8 представляет поддержку префикса поставщика, что может помочь вам.

Я не думаю, что вам нужно указать классы для динамического изменения CSS элемента. Тем не менее, определения CSS-класса можно использовать в вашем экспортном формате при сохранении формы. И с jQuery вы должны иметь возможность передавать объекты JSON в методе .css(); таким образом, чтобы не требовался конкретный код для каждой строки.

Производитель префиксом свойства CSS

В W3C было его сердце в нужном месте, когда она пришла в голову идея использовать префиксы для функций CSS, которые еще не были стандартизированы, но hasn» t привело к завершению сказки. Веб-разработчики столкнулись с кошмаром, включающим все имена свойств с префиксом поставщика в таблицах стилей. jQuery 1.8 немного облегчает боль. Мы автоматически берем имя свойства без префикса и генерируем префикс, подходящий для текущего браузера, поэтому вам этого не нужно. Например, в Chrome вызов jQuery $ («# myscroll»). Css («marquee-direction», «назад») установит CSS в -webkit-marquee-direction: назад.

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

+0

Я не беспокоиться о подателю-приставкой-поддержку на самом деле :) Так же, как я могу сохранить/восстановить стили CSS: фон, границы радиуса, коробка-тени, и т.д. легко. Поскольку я хотел бы хранить их с одним централизованным/универсальным методом/классом, не беспокоясь о их параметрах count =) – Roylee

+1

Ну, вы уже упоминали JSON. Используйте jQuery, сохраните каждый атрибут CSS в качестве объекта объекта JSON и отбросьте все это в jQuery .css() - funtcino, упомянутое выше ... – feeela

Смежные вопросы