Работают ли модули CSS с внешними библиотеками?

Я использую библиотеку Slider (https://react-slick.neostack.com/) в своем проекте React.

Когда я использую обычный CSS, слайдер может быть оформлен правильно, но при использовании модуля CSS он не работает.

Файл tsx выглядит так:

import styles from './styles.module.css';
.
.
.
<div className = {`${styles.slider} py-[8px]`}>
   <Slider {...settings} />
</div>

Тогда styles.module.css выглядит так:

.slider {
    .slick-arrow {
        z-index: 10;
        top: 25% !important;
        transform: unset !important;
    }
}

Но в инструментах разработки стили не применяются. Структура:

<div class = "styles_slider__5dDaY py-[8px]">
    <div class = "slick-slider slick-initialized">
        <span class = "slick-arrow slick-prev slick-disabled">
.
.
.

где имя класса styles_slider__5dDaY добавлено правильно, а стили — нет.

Интересно, почему. Это потому, что модули CSS не работают с внешними библиотеками?

Если да, то как мне стилизовать этот компонент Slider?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
0
0
133
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Одним из обходных путей стилизации компонентов из внешних библиотек с помощью модулей CSS является использование комбинации классов модулей CSS и обычных классов CSS.

Создайте CSS-файл «custom-style.css».

.slick-arrow-custom {
    z-index: 10;
    top: 25% !important;
    transform: unset !important;
}

Импортировать в файл

import './custom-style.css';

тогда ваш jsx-файл будет похож

import styles from './styles.module.css';
import './custom-style.css'; 

<div className = {`${styles.slider} ${styles.py8}`}>
   <Slider {...settings} className = "slick-arrow-custom" /> 
</div>

Это работает, большое спасибо~ Однако я бы сказал, что этот дизайн CSS-модуля в React действительно болезненный. Я не помню, чтобы сталкивался с такими проблемами при использовании Svelte.

Snookums 17.04.2024 06:44

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