Почему uncss ignore не работает правильно?

Для моего сайта я использую uncss, чтобы удалить неиспользуемые bootstrap-css. Но в моей навигации есть два элемента - анимация слайдов карусели начальной загрузки и активное состояние, которые не работают должным образом после того, как uncss сгенерировал новый css-файл.

Вот мой uncss-игнор

ignore: [
    ".tab",
    ".tab-content",
    ".tab-pane",
    ".fade",
    ".fade.in",
    ".collapse",
    ".collapse.in",
    ".collapsing",
    ".open",
    "/open+/",
    ".start",
    ".start .container-shadow",
    ".active",
    ".embed-responsive-item",
    ".embed-responsive",
    ".embed-responsive-16by9",
    ".schmerzfrei iframe",
    ".embed-responsive .embed-responsive-item",
    ".embed-responsive embed",
    ".embed-responsive object",
    ".embed-responsive iframe",
    ".embed-responsive video",
    ".highlight a:hover:after, .highlight a:focus:after, .highlight.active a:after",
    ".carousel-inner > .next",
    ".carousel-inner > .prev",
    ".carousel-inner > .next",
    ".carousel-inner > .prev",
    ".carousel-inner > .next.left",
    ".carousel-inner > .prev.right",
    ".carousel-inner > .active.left",
    ".carousel-inner > .active.right",
    ".carousel-inner>.item.active",
    ".carousel-inner>.item.next.left",
    ".carousel-inner>.item.prev.right",
    ".bs.carousel",
    ".slid.bs.carousel",
    ".slide.bs.carousel"
]
}

И это мой CSS, который необходим, но не распознается uncss

.highlight a:hover:after, .highlight a:focus:after, .highlight.active a:after {
    height: 0px;
    -webkit-transition: .3s cubic-bezier(0.71, -0.58, 0.07, 1.29);
    -moz-transition: .3s cubic-bezier(0.71, -0.58, 0.07, 1.29);
    -ms-transition: .3s cubic-bezier(0.71, -0.58, 0.07, 1.29);
    -o-transition: .3s cubic-bezier(0.71, -0.58, 0.07, 1.29);
    transition: .3s cubic-bezier(0.71, -0.58, 0.07, 1.29)
}

любой комментарий или помощь будет отличным!

1 ответ

Согласно https://github.com/giakki/uncss/issues/140, uncss не удаляет селекторы, на которых есть псевдоэлементы, поэтому не нужно указывать их все в списке игнорирования и, по-видимому, помещать их в список игнорирования также не будет ничего делать.

Вы можете попробовать заменить

".highlight a:hover:after, .highlight a:focus:after, .highlight.active a:after"

с

new RegExp('^.highlight.*')

Это должно соответствовать вашим селекторам и будет легче читать.

Другие вопросы по тегам