Отключить / удалить стандартные! Важные объявления в элементах - PullRequest
0 голосов
/ 28 марта 2019

У меня конфликт CSS с основным плагином на моем WordPress сайте.Создатель плагинов счел удобным добавить! Важные объявления во все их таблицы стилей.С точки зрения разработчика;это катастрофа.В свою защиту они хотят охватить все темы, которые используют! Важные объявления, поэтому это выглядит согласованно.Я не согласен, поэтому мне нужно решение.

В результате получается, что моя премиум-тема, которая не использует эти объявления, не может переопределить стилизацию.У меня есть несколько решений для удаления определенных классов с помощью jQuery.

Но есть проблема, которую нельзя решить, удалив классы.Например, якорь :hover по умолчанию установлен как border: none !important плагином.Но я хотел бы видеть, что опция anchor: hover border на самом деле применяется через настройки темы.Применяемый CSS это (имейте в виду, что класс .plugin не применяется в привязке, только из файла CSS):

.plugin a { border: none !important; }

Есть ли способ, которым я могу отключитьопределенные комбинации классов из DOM?Я счастлив, что это сделано с php или jQuery.Что-то вроде: .plugin is not applied to anchor Понятия не имею, как это решить.

Ответы [ 3 ]

0 голосов
/ 28 марта 2019

Конечно, это всего лишь случай перезаписи css с лучшей указанной строкой css.

Например, если код:

.plugin a::hover { border: none !important; }

Вы можете перезаписать это, выполнив:

body .plugin a::hover { border: 1px solid grey !important; }

Поскольку вы добавили элемент body в строку css, это добавляет дополнительную специфичность, то есть перезаписывает плагины css.К сожалению, вы должны использовать! Важный, так как! Важный выбрасывает обычную специфичность, исключающую окно (плохой создатель плагина).

Подробнее о специфичности CSS здесь

0 голосов
/ 02 апреля 2019

Вам нужен какой-либо из стилей, предоставляемых плагином? Если нет, то, возможно, стоит вообще отказаться от стилей плагинов и просто добавить свои собственные стили там, где тема их не охватывает.

Если вы обнаружите зарегистрированное имя таблицы стилей (должно быть в теге стиля), вы можете удалить из него что-то вроде:

function remove_push_plugin_styles() {
   wp_dequeue_style( 'plugin-stylesheet' );
}
add_action( 'wp_print_styles', 'remove_pushy_plugin_styles', 1000 );

0 голосов
/ 28 марта 2019

Вы не можете редактировать содержимое iframe, правда.Но сам iframe по-прежнему принадлежит вашей странице, и вы можете редактировать атрибуты.Я только что проверил и смог сделать что-то похожее на:

var i = $('div.item iframe');
// Did the selector work?
console.log(i.length);
i.removeAttr('width');
i.removeAttr('height');

Это, как говорится, использование! Важный в этой ситуации не плохо.Если вы беспокоитесь о поддержке CSS, оставьте комментарий, что! Важный переопределяет атрибуты элемента.! важный часто демонизируется, но в этом случае это правильное использование для повышения специфичности вашего CSS.

Преимущество этого в CSS состоит в том, что он будет применяться до загрузки вашего JavaScript, поэтому вы выигралине получите доли секунды этих атрибутов и стилей, применяемых до того, как JavaScript удалит стили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...