jQueryUI は便利な CSS フレームワークを提供します: http://jqueryui.com/docs/Theming/API
jQueryUI の CSS クラス (ui-widget-content、ui-widget-header など) を使用するだけで、http://jqueryui.com/ThemeRoller からテーマ設定可能な html スニペットを簡単に作成できます。
アプリの設計で欠けていることがある機能は、jquery-UI の CSS クラスから css プロパティを再利用することですが、すべてのプロパティを再利用するわけではありません。を使用することで簡易再利用が可能none !important
です。
たとえば、背景や境界線なしで前景のみを取得したい場合は、次のようにしますcolor
。.ui-widget-content
<style>
.no-background { background: none !important; }
.no-border { border: none !important; }
</style>
<div class="ui-widget-content no-background no-border">
hi world :)
</div>
しかし、 を取得して、自分の CSS クラスで として再利用する簡単な方法はありbackground-color
ますか?.ui-widget-header
color
私はこれに対して、やや手短で汚い解決策を作成しました。それは、JavaScript と DOM 操作を使用してスタイル タグを埋めることです。
JSBin: http://jsbin.com/ijuxar/7/edit
HTML コード:
<style class="computedStyles"></style>
<div class="cssHelper ui-helper-hidden-accessible" style="visibility: hidden">
<div class="ui-widget-header"></div>
<div class="ui-widget-content"></div>
<div class="ui-state-default"></div>
<div class="ui-widget-header ui-state-active"></div>
<div class="ui-widget-header ui-state-hover"></div>
</div>
<h1 class="ui-color-2">Hi World</h1>
JS コード:
$(document).ready(function () {
var css= '', i, colors = [
$('.cssHelper .ui-widget-content').css('color'),
$('.cssHelper .ui-widget-header').css('background-color'),
$('.cssHelper .ui-state-hover').css('background-color'),
$('.cssHelper .ui-state-default').css('background-color'),
$('.cssHelper .ui-widget-header.ui-state-active').css('background-color')
];
for (i = 0; i < colors.length; i += 1) {
css += '.ui-color-' + (i + 1) + ' { color: ' + colors[i] + '}\n';
}
$('style.computedStyles:first').text(css);
});
JavaScript による解決策はやや悪いと感じます。さらに、一部のブラウザではFOUCが発生します。
プレーンな CSS および/またはサーバーサイド ツール (SASS/LESS/...) を使用して実行することは可能ですか?