Файл CSS применяется к другому компоненту реакции даже без импорта

Здравствуйте, я использую React для создания веб-сайта, и я хочу использовать файлы .CSS для своего CSS, и я использую import './example.css' в своем файле компонента. Пример:

import React from 'react';
import 'Home.css';
const Home = () => {
return (
<div className = "example">
          Hi
</div>
)
}

и если я создам другую страницу, но не импортирую этот файл CSS, я получу стили на другой странице другая страница:

import React from 'react';

const About= () => {
return (
<div className = "example">
          Hi
</div>
)
}

Любая причина и решение для этого?

Приемы 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 сценарий полностью изменился.
1
0
4 003
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Причина в том, что вы используете один и тот же класс в обоих ваших компонентах. Выполнение import 'Home.css' не инкапсулирует .css только для этого компонента, все .css объединяются вместе, поэтому стили переписываются где-то в конце строки.

Для каждого из компонентов вы можете указать уникальный className поверх вашего компонента и использовать этот класс для стилизации только этого компонента. .home-container .header { ... } Вы также можете сделать одну глобальную часть .css, чтобы поместить стили, которые вы хотите использовать во всем приложении.

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

При импорте файла css, как вы сделали, он будет внедрен в проект, а не только в компонент, из которого вы его импортируете.

То, что вы ищете, это css-модули ( добавление css-модулей с помощью приложения create-react-app)

import React from 'react';
import styles from 'Home.css';

const Home = () => {
  return (
    <div className = {styles.example}>
          Hi
    </div>
  )
}

Могу ли я использовать одно и то же имя класса во всех файлах с модулем css?

Mj Ebrahimzadeh 15.12.2020 09:49

да. потому что css-module переименует имя класса во что-то вроде example_dfd23, чтобы оно было уникальным в браузере.

Philip Oliver 15.12.2020 10:04

Что делать, если я хочу объединить другой класс с этим модулем css. Скажем, класс начальной загрузки. Могу ли я просто использовать строки шаблона, такие как className = {row ${styles.example}}

Ibrahim Farooq 02.06.2021 01:42

@IbrahimFarooq есть несколько способов сделать это. один то, что вы предложили. другой — className = {["row", styles.example].join(" ")}, а для этого есть вспомогательный пакет под названием classnames

Philip Oliver 02.06.2021 12:05

@Philip Я полагаю, что даже если стили модулей css применяются к элементам html, например, - h1 { color: red } , все равно будут глобальными и применяться ко всем компонентам? Это правда?

Saadman Islam Khan 14.07.2022 22:34

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