Подтвердить что ты не робот

Как применить тему CSS только к определенному элементу jQuery-UI?

У меня уже есть веб-сайт с моей собственной темой CSS. Я использую jQuery UI "вкладки" виджета, но не CSS из jQuery-UI.

Теперь я пытаюсь добавить виджет "Выбор даты" на одной из моих страниц. Было бы здорово, если бы я мог повторно использовать тему по умолчанию jQuery-UI, которая просто прекрасна.

Проблема заключается в том, что тема выбора даты также применяется к моим вкладкам CSS. Например, свойства css "ui-widget" применяются к элементам выбора даты и вкладок.

Я не могу найти способ применить свойства css только для выбора даты. Я не вижу "суперселектора", который применяется только к DIV выбора даты.

Каким будет лучший способ справиться с этим?


[EDIT] Виджет datepicker действительно является проблемой. Я не могу применить к нему стиль CSS. Вот стартовый код DIV, который появляется всплывающим:

<div style="position: absolute; top: 300.4px; left: 149px; display: block;" id="ui-datepicker-div" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"><div class="ui-datepicker-header ui-widget-header ui-helper-clearfix ui-corner-all">

Таким образом, я не могу добавить суперселектор. Было бы замечательно, что виджет выбора даты поддерживает область CSS. Но это не так. Я застреваю вручную редактирование файла CSS jQuery.

Выбор даты в настоящее время refactored. Надеюсь, новый код рассмотрит эту проблему.

4b9b3361

Ответ 1

$(window).load(function() {
   $('#ui-datepicker-div').addClass('CSS-Scope-Class');
});

. addClass() Функция jQuery добавит необходимый класс к datepicker для его выбора вверх по тематической таблице стилей.

Мне пришлось привязываться к событию загрузки окна, а не к событию готовности документа, потому что датапикер еще не был вставлен.

Примечание. Будет небольшая задержка между тем, как датапикер добавляется в DOM и применяемый новый класс, что означает, что datepicker может выглядеть неизученным, пока страница заканчивает загрузку.

Ответ 2

Вы можете настроить тему с помощью ролика ролика здесь http://jqueryui.com/themeroller/

Найдите элемент, который хотите стилизовать, с помощью функции DOM Firebug, чтобы настроить целевой класс, который вы хотите выбрать.

Ответ 3

У меня была такая же проблема с дампикером и аккордеон. Я хотел новый стиль дампикера, но не хотел его для аккордеона. Я сделал легкий выход, я скопировал соответствующие части ui.theme.css и добавил .ui-datepicker перед всеми стилями. Это предназначено только для datepicker и оставляет все остальные плагины пользовательского интерфейса.

Я не уверен, был ли это лучший способ, но он работал для моих целей.

Ответ 4

Я мог бы что-то упустить, но не мог бы вы просто добавить класс в свой объект выбора даты и выбрать его?

Ответ 5

Попробуйте: $('#cmsContent').css('margin', '0');

Ответ 6

Просто добавление класса css в div datepicker не сработало для меня, мне пришлось создать еще один div вокруг него так:

$("#ui-datepicker-div").wrap('<div class="CSS-Scope-Class" />');

Ответ 7

Это работает для меня

$("#ui-datepicker-div").wrap("<div class='Your-CSS-Scope-Class'></div>");