Невозможно стилизовать аккордеон (пример)

#javascript #css #reactjs #jsx

Вопрос:

У меня есть несколько аккордеонов от PrimeReact, которые я использую в своем коде. Но внутри есть картинки, и я хочу сделать их меньше. Это и есть нынешняя проблема:

введите описание изображения здесь

Как вы можете видеть, картина слишком велика. Я хочу установить width это на 100% .

Теперь я уже делал это раньше, когда использовал Angular с PrimeNG (та же библиотека, только для Angular), и мне удалось сделать это в файле css, например:

 :host ::ng-deep .p-accordion-content img {
  width: 100%;
}
 

Этот код сделал именно то, что я хотел.

Теперь мне нужно то же самое для реакции. Но это не работает, когда я использую:

 :host .p-accordion-content img {
  width: 100%;
}
 

Это код, который я использовал для создания аккордеонов. Может быть, это поможет:

 createAccordions = () => {
    const allFAQs = this.state.allFAQs;
    let accordions = [];

    for (const faq of allFAQs) {
        const accordion = <AccordionTab key={faq.uuid} header={faq.question}><div dangerouslySetInnerHTML={{ __html: faq.answer }}></div></AccordionTab>;
        accordions.push(accordion);
    }

    return accordions;
}

render() {
    return (
        <div>
            <div className="p-grid">
                
                <div className="p-col-3">

                </div>

                <div className="p-col-6">
                    <Accordion>
                        {this.createAccordions()}
                    </Accordion>
                </div>


                <div className="p-col-3">
                    
                </div>
            </div>
        </div>
    )
}
 

Кто-нибудь знает, что я сделал не так? Как я могу оформить изображение внутри таблицы аккордеона?

Спасибо за любую помощь!

Ответ №1:

это легко, вам просто нужно провести некоторые эксперименты с размерами вашего изображения, например… добавить высоту вместе с шириной(это используется в CSS с чистым html, аналогично можно использовать и в вашем коде).

 :host .p-accordion-content img {
  width: 100%;
  height: auto;
}
 

спасибо

Комментарии:

1. Я думаю, что произошло недоразумение. Мой css-код, похоже, не применяется к нужным элементам. Я также попробовал поля и отступы.

2. ваш css-код не работает только с этим изображением или весь css-файл не работает? если ваш другой css-код также не работает, вы можете жестко обновить свой браузер. Также проверьте, нет ли какого-либо другого класса с похожим названием в неправильном названии класса (это те вещи, на которые мы иногда обращаем меньше внимания).

3. ноно, я имею в виду, что мой стиль вообще не применяется. Я предполагаю, что я делаю что-то не так.