Введение
JQuery Mobile имеет 3 CSS файлы. Я напишу об этой теме, используя jQuery Mobile 1.3 в качестве ориентира.
CSS файлы различия
Первый CSS файл, а также главный из них: jquery.mobile-1.3.2.min.css
Он имеет структуру и тематические стили JQuery Mobile
Второй CSS файлы - это только файл структуры jQuery Mobile и он содержит CSS, необходимые для построения структур страниц и виджета: jquery.mobile.structure-1.3.2.css
Третий содержит только стили темы и может быть использован для создания новых образцов: jquery.mobile.theme-1.3.2 .css
Тема против Swatch
Это следующая вещь, которую вы должны понять. jQuery Mobile имеет только 1 тему, но несколько образцов.
Swatch можно изменить с помощью data-theme=""
атрибут. Не спрашивайте, почему он не называется data-swatch=""
.
Если вы хотите узнать больше об этой разнице, посмотрите на мой другой answer.
CSS Переопределение
Первое, что вам нужно, это инструмент, который покажет вам JQuery Mobile HTML и CSS структуру.
Для браузеров Firefox используйте плагин Firebug для обработки HTML/CSS в режиме реального времени. Это даст вам возможность увидеть расширенную разметку страницы, изменить CSS на лету (гораздо проще, если вы хотите увидеть, что произойдет, когда будут применены изменения, не делая этого вручную) и скопируйте внутреннюю структуру HTML.
Хром также имеет плагин firebug, но вы должны избегать его. Это гораздо более легкая версия firebug Firefox, и в то же время у Chrome есть отличный встроенный инструмент под названием «Инструменты разработчика». Его можно легко вызвать с помощью комбинации CTRL + SHIFT + I. Пользователи Macintosh могут открывать его с помощью этой комбинации: Command + Option + i.
Мой последний совет будет придерживаться инструментов разработчика Chrome, плагин Firebug, как известно, был чрезвычайно ресурсным голодным.
с учетом этого вам нужно знать другое. Что вы можете увидеть, как основной JQuery Mobile страницу архитектуры здесь:
<div data-role="page">
<div data-role="header">
<!-- Inner content -->
</div>
<div data-role="content">
<!-- Inner content -->
</div>
<div data-role="footer">
<!-- Inner content -->
</div>
</div>
не является окончательным результатом страницы. Сразу после события pagecreate (и до события pageinit) jQuery Mobile запускает процесс повышения разметки HTML. Таким образом, конечный результат будет выглядеть несколько иначе.
Давайте посмотрим на кнопки, например JQuery Mobile до улучшения выглядит следующим образом:
<a href="#" data-role="button">Link button</a>
После усиления это выглядит следующим образом:
<div data-corners="true" data-shadow="true" data-iconshadow="true" data-wrapperels="span" data-theme="c" data-disabled="false" class="ui-btn ui-shadow ui-btn-corner-all ui-btn-up-c" aria-disabled="false">
<span class="ui-btn-inner">
<span class="ui-btn-text">Classic HTML button</span>
</span>
<input type="button" value="Classic HTML button" class="ui-btn-hidden" data-disabled="false"/>
</div>
Вот почему нам нужны дополнительные инструменты, чтобы мы могли см. окончательную структуру HTML.
С этим может продолжаться дальше.
Если вы хотите переопределить определения jQuery Mobile CSS, вам необходимо научиться использовать! Important. Хотя это обычно большой НЕТ НЕТ, мы не можем сделать это без него.
Допустим, мы хотим изменить цвет текста кнопки (из предыдущего примера кнопки) мы хотели бы сделать это следующим образом:
.custom-btn .ui-btn-inner .ui-btn-text {
color: #013301 !important;
}
Там еще одна вещь, вы всегда можете изменить оригинальную мобильную структуру JQuery Mobile, но я бы посоветуйте вам против этого.
Если вы хотите, чтобы найти еще больше об этой теме, посмотрите на мой блог article где я обсуждаю эту тему (с рабочими примерами jsFiddle).
Последнее, но не менее
Этот ответ можно найти here + рабочие примеры, чтобы быть более прозрачной это мой личный блог.
Что вы можете сделать, не позволяйте jQM стилизовать/усилить определенные элементы, сохранив при этом структуру структуры страницы, используя 'data-enhance = false'. Но это замедлит ваше приложение. http://stackoverflow.com/a/18282935/1771795 – Omar