2

私は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を使用するなど、より高度で効率的なアプローチが必要だと思います。

4

1 に答える 1

1

私はあなたが正しい方向に進んでいると思います。しかし、jQuery 1.8ではベンダープレフィックスのサポートが導入されており、これが役立つ可能性があります。

要素のCSSを動的に変更するためにクラスを指定する必要はないと思います。ただし、フォームを保存するときに、エクスポート形式でCSS-class-definitionsを使用できます。.css()また、jQueryを使用すると、 -methodでJSONオブジェクトを渡すことができるはずです。そのようにして、各行に特定のコードを必要としません。

ベンダープレフィックス付きCSSプロパティ

W3Cは、まだ標準化されていないCSS機能にベンダープレフィックスを使用するというアイデアを思いついたとき、その中心を持っていましたが、おとぎ話のような結末にはなりませんでした。Web開発者は、ベンダー接頭辞付きのすべてのプロパティ名をスタイルシートに含めるという悪夢に直面しています。jQuery 1.8は、少し苦痛を和らげます。プレフィックスのないプロパティ名が自動的に取得され、現在のブラウザに適したプレフィックスが生成されるため、その必要はありません。たとえば、ChromeではjQuery呼び出し$( "#myscroll")。css( "marquee-direction"、 "backwards")はCSSを-webkit-marquee-direction:backwardsに設定します。

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

于 2012-07-02T10:36:00.897 に答える