Заполнение CSS с помощью ReactJS и статического приложения.css

#javascript #css #reactjs

#javascript #css #reactjs

Вопрос:

Я создаю упрощенное приложение для электронной коммерции для своей работы в React с контекстным API, и все функциональные возможности в JS появляются, и я все это понимаю. Однако у меня есть только базовые знания CSS, и я использую App.css из курса udemy MERN Брэда Траверси. До сих пор это было очень полезно и удобно, но теперь я делаю то, что, кажется, немного выходит за рамки ограничений этого app.css, и немного изменил его для боковых панелей. Боковая панель работает почти идеально, но необходимо исправить небольшую проблему с отображением. Ниже приведены, на мой взгляд, соответствующие фрагменты CSS и react, в частности класс контейнера, который используется в основном app.js чтобы содержать каждый из моих 3 маршрутов (хотя на данный момент меня интересует только /pricequoter route amp; component ).

Скриншот проблемы с отображением: я бы хотел, чтобы боковая панель была выровнена по левой стороне браузера, и чтобы она была полностью скрыта при переключении.

PriceQuoter.js боковая панель выключена

PriceQuoter.js включена боковая панель

Сначала фрагменты реакции

App.js фрагмент

            <div className='container'>
              <Switch>
                <Route exact path='/' component={Home} />
                <Route exact path='/about' component={About} />
                <Route exact path='/pricequoter' component={PriceQuoter} />
              </Switch>
            </div>
  

PriceQuoter.js компонент

         <div>
          <div className='grid-2'>
            <div>
              <CartSidebar width={300} height={"100vh"} />
            </div>
            <div>
              <ProductFilter /> <Products />
            </div>
          </div>
        </div>
  

CartSidebar.js компонент

       <div
        className='side-bar'
        style={{
          transform: `translatex(${xPosition}px)`,
          width: width,
          minHeight: height,
        }}
      >
        (code for text of sidebar here)...
      </div>
  

И соответствующие части app.css для контейнера и класса боковой панели. Я попытался удалить класс контейнера из app.js и это избавляет от текущей проблемы с отображением, но приводит к тому, что правая часть страницы вылетает из браузера и требует прокрутки, а также избавляет от полей с обеих сторон приложения, которые я бы предпочел сохранить.

 
.container {
  max-width: 1100px;
  margin: auto;
  overflow: hidden;
  padding: 0 2rem;
  border: 1px;
}

.grid-2 {
  display: grid;
  grid-template-columns: 10% 90%;
  grid-gap: 2rem;
}

.side-bar {
  height: 100% !important;
  display: flex;
  flex-direction: column;
  border-right: 1px solid;
  border-radius: 0;
  border-color: #d3d3d3;
  background-color: rgb(255, 255, 255);
  transition: 0.8s ease;
}

.toggle-menu {
  cursor: pointer;
  height: 65px;
  border-top-right-radius: 20rem;
  border-bottom-right-radius: 20rem;
  width: 30px;
  position: absolute;
  outline: none;
  z-index: 1;
  background-color: #009ca6;
  color: #fff;
}

  

Ценю любую помощь и дайте мне знать, поможет ли какой-либо другой контекст / информация!

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

1. в качестве общего предложения я бы посоветовал не комбинировать css-in-js с файлами css; используйте один или другой, чтобы всем, кто читает код, было ясно, откуда берутся стили

2. Я определенно это понимаю! Я ищу альтернативу app.css для того, что я буду разрабатывать дальше, но это был первый трамплин. На следующей неделе я рассмотрю рефакторинг, чтобы сделать нечетную область, где элементы стиля вводятся непосредственно в js, в классы в app.css. Я также перенастроил большую часть компонента боковой панели из статьи и не был очень уверен в рефакторинге элементов стиля из JS.