Как сделать dropdown на всю ширину экрана?

  return (
    <Layout>
      <Header headerCategory={ headerCategory } headerArticles={ headerArticles } />
      <Suspense fallback='loading'>
      </Suspense>
      <React.Suspense fallback="Root content suspense">
        <Switch>
          <Route exact path="/">
            <Redirect to="/prams" />
          </Route>
          <Route path="/prams" component={ lazy ( 'Prams' ) } />
        </Switch>
      </React.Suspense>
    </Layout>
  );
};

export default Root;
import React from 'react';
import { NavLink } from 'react-router-dom';
import styled, { css } from 'styled-components';
import { tablet, mobile, desktop } from '@utils/media';
import { styleLink } from '@components/Header/styles';


const styleBurgerMenuWrapper = css`
  display:flex;
  flex: 1;
  justify-content: flex-start;
  height: 100%;
  position: relative;
`;

const BurgerMenuWrapper = styled.div`
  ${ desktop }{
    display:none;
  }
  ${ tablet }{
   ${ styleBurgerMenuWrapper };
  }
  ${ mobile }{
   ${ styleBurgerMenuWrapper };
  }
`;

const BurgerMenuCheckbox = styled.input`
  display:none;
`;

const BurgerMenuLinesWrapper = styled.figure`
  display: flex;
  flex-direction: column;
  justify-content: space-around;
  position: absolute;
  align-items: center;
  height: 3.5rem;
  width: 3.5rem;
  left: 1rem;
`;

const BurgerMenuLine = styled.div`
  width: 3rem;
  height: .2rem;
  background-color:#fff;
  &:nth-child(2),
  &:nth-child(3){
    position: absolute;
    top: 1.65rem;
  }
`;

const styleBurgerMenuLabel = css`
  display: flex;
  justify-content: start;
  align-items: center;
  user-select: none;
  padding-left: 3rem;
  width: 100%;
  height: 100%;
  z-index: 1;
`;


const BurgerMenuLabel = styled.label`
  ${tablet}{
    ${styleBurgerMenuLabel};
    padding-left: 5rem;
    width: 30%;
  }
  ${mobile}{
    ${styleBurgerMenuLabel};
    padding: 0;
    color: transparent;
  } 

`;

const BurgerMenuNav = styled.nav`
    display: flex;
    flex-direction: column;
    align-items: center;
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: max-content;
    background: aqua;
    transform: translateY(100%);
`;

const BurgerMenuLink = styled(NavLink)`
  ${styleLink};
  display: block;
   height: 4rem;
   position: relative;
   z-index: 5;
   background: aqua;
`;

const BurgerMenu = () => (
  <BurgerMenuWrapper>
    <BurgerMenuCheckbox type='checkbox' id='burger-menu-checkbox' />

    <BurgerMenuLinesWrapper>
      <BurgerMenuLine />
      <BurgerMenuLine />
      <BurgerMenuLine />
      <BurgerMenuLine />
    </BurgerMenuLinesWrapper>

    <BurgerMenuLabel htmlFor='burger-menu-checkbox'>Menu</BurgerMenuLabel>
    <BurgerMenuNav>
      <BurgerMenuLink to='#'>1</BurgerMenuLink>
      <BurgerMenuLink to='#'>2</BurgerMenuLink>
      <BurgerMenuLink to='#'>3</BurgerMenuLink>
      <BurgerMenuLink to='#'>4</BurgerMenuLink>
      <BurgerMenuLink to='#'>5</BurgerMenuLink>
      <BurgerMenuLink to='#'>6</BurgerMenuLink>
      <BurgerMenuLink to='#'>7</BurgerMenuLink>
    </BurgerMenuNav>
  </BurgerMenuWrapper>
);

export default BurgerMenu;
import React from 'react';
import {
  HeaderNavLink,
  HeaderNav,
  HeaderMainContainer,
  HeaderInfoContainer,
  HeaderItemsWrapperLeft,
  HeaderItemsWrapperRight,
  Dropdown,
  DropdownGroup,
  DropdownGroupArticle,
  DropdownGroupWrapper,
  DropdownLink,
  HeaderItem,
  ShopCartWrapper,
  HeaderNavContainer,
  ListItem,
  LogoDesktopWrapper,
  LogoTabletWrapper,
  List
} from './styles';
import { LogoDesktop, LogoTablet, Search, ShopCart, LoginHeaderLink, LocationMarkerLink, BurgerMenu } from '@components';
import PropTypes from 'prop-types';


const Header = ( props ) => {
  const { headerCategory, headerArticles } = props;
  return (
    <HeaderMainContainer>
      <HeaderInfoContainer>
        <HeaderItemsWrapperLeft>
          { /*desktop*/ }
          <HeaderItem></HeaderItem>
          <HeaderItem>E-MAIL</HeaderItem>
          <HeaderItem>
            <LocationMarkerLink />
          </HeaderItem>
          { /*Laptop and mobile*/ }

          <BurgerMenu/>

        </HeaderItemsWrapperLeft>

        { /*Laptop / mobile*/ }
        <LogoTabletWrapper>
          <LogoTablet />
        </LogoTabletWrapper>

        <HeaderItemsWrapperRight>
          { /*desktop*/ }
          <LoginHeaderLink />
          { /*desktop / laptop / mobile*/ }
          <ShopCartWrapper>
            <ShopCart />
          </ShopCartWrapper>

        </HeaderItemsWrapperRight>
      </HeaderInfoContainer>

      <HeaderNavContainer>
        <HeaderNav>
          <List>
            <ListItem><HeaderNavLink to="#">Главная</HeaderNavLink></ListItem>
            <ListItem><HeaderNavLink to="#">Категории</HeaderNavLink>
              <Dropdown>
                <DropdownGroupWrapper>
                  { headerCategory.map ( item =>
                    <DropdownGroup key={ item.id }>
                      { item.listItems.map ( listItem =>
                        <ListItem key={ listItem.text }><DropdownLink
                          to={ listItem.path }>{ listItem.text }</DropdownLink></ListItem>
                      ) }
                    </DropdownGroup>
                  ) }
                </DropdownGroupWrapper>
              </Dropdown>
            </ListItem>
            <ListItem><HeaderNavLink to="#">О Нас</HeaderNavLink></ListItem>
          </List>

          <LogoDesktopWrapper>
            <LogoDesktop />
          </LogoDesktopWrapper>

          <List>
            <ListItem><HeaderNavLink to="/">Оплата</HeaderNavLink></ListItem>
            <ListItem><HeaderNavLink to="#">Статьи</HeaderNavLink>
              <Dropdown>
                <DropdownGroupWrapper>
                  { headerArticles.map ( item =>
                    <DropdownGroupArticle key={ item.text }>
                      <ListItem key={ item.text }><DropdownLink
                        to={ item.path }>{ item.text }</DropdownLink></ListItem>
                    </DropdownGroupArticle>
                  ) }
                </DropdownGroupWrapper>
              </Dropdown>
            </ListItem>
            <ListItem>
              <Search />
            </ListItem>
          </List>
        </HeaderNav>
      </HeaderNavContainer>
    </HeaderMainContainer>
  );
};
Header.propTypes = {
  headerCategory: PropTypes.array.isRequired,
  headerArticles: PropTypes.array.isRequired
};

export default Header;

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

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


Ответы (0 шт):