jQueryUI 提供了一个方便的 css 框架:http: //jqueryui.com/docs/Theming/API
只需使用 jQueryUI 的 CSS 类(ui-widget-content、ui-widget-header 等),您就可以通过http://jqueryui.com/ThemeRoller轻松创建可主题化的 html-snippets
我在设计我的应用程序时有时缺少的一个功能是重用 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/...)来完成它?