Контент в три колонки на flexbox
Всем доброго времени.
Есть код, в нем конечно каша, но помогите у кого есть возможность разобраться как сделать.
Необходимо меню как на сайте https://www.ey.com/en_gl чтобы табами было. Табы вроде почти реализованы, за исключением того, что не добавляется класс к активному табу, а соответственно его пока не получилось стилизовать.
Не получается в первом табе разместить контент в три колонки. Флексами пробовал и wrap ставил, но пункты все равно уходят за границы и исчезают не переносясь на новую строку. И нужно чтобы вставили в три колонки и строки в колонках были без переносов от длинны, так как нужно будет рамки сделать и линии соответственно чтобы в одной полосе были.
Уже прям нервы берут
function burgerMenu(selector) {
let menu = $(selector);
let button = menu.find('.burger-menu__button');
let links = menu.find('burger-menu__link');
let overlay = menu.find('burger-menu__overlay');
button.on('click', (e) => {
e.preventDefault();
toggleMenu();
});
links.on('click', () => toggleMenu());
overlay.on('click', () => toggleMenu());
function toggleMenu() {
menu.toggleClass('burger-menu_active');
if (menu.hasClass('burger-menu_active')) {
$('body').css('overflow', 'hidden');
} else {
$('body').css('overflow', 'visible');
}
}
}
burgerMenu('.burger-menu');
const tabsBtn = document.querySelectorAll('.tabs__caption');
const tabsContent = document.querySelectorAll('.tabs__content');
function hideTabs() {
tabsContent.forEach((tab) => {
tab.style.display = 'none';
});
}
hideTabs();
function showTab(i) {
tabsContent[i].style.display = 'flex';
}
tabsBtn.forEach((btn, i) => {
btn.addEventListener('click', () => {
hideTabs();
showTab(i);
});
});
body {
overflow: hidden;
font-family: "Noto Sans", sans-serif;
}
.section {
position: relative;
}
.container {
width: 100%;
max-width: 1140px;
margin: 0 auto;
padding-left: 16px;
padding-right: 16px;
}
.section__header {
width: 25%;
margin-right: 15px;
}
.nav-menu {
width: 73%;
}
.section__nav-container {
display: flex;
margin-top: 15px;
margin-bottom: 15px;
}
.burger-menu__container {
display: flex;
width: 100%;
}
.section__header img {
width: 100%;
max-width: 250px;
height: auto;
}
.section__nav {
display: flex;
flex-direction: column;
}
.nav-menu__list {
display: flex;
justify-content: space-between;
align-items: end;
}
.nav-menu__list-item:first-child {
text-align: center;
}
.section__nav-top {
display: flex;
justify-content: flex-end;
}
.nav__search {
display: flex;
justify-content: flex-end;
align-items: center;
}
.nav__search i {
font-size: 20px;
margin-right: 10px;
}
.nav__search-icon {
margin-right: 7px;
}
input::-webkit-input-placeholder {
color: #B6C0A5;
font-style: italic;
background: #E0EFCA;
}
input:-moz-placeholder {
color: #B6C0A5;
font-style: italic;
background: #E0EFCA;
}
input:-ms-input-placeholder {
color: #B6C0A5;
font-style: italic;
background: #E0EFCA;
}
form {
position: relative;
width: 250px;
margin: 0 auto;
}
input {
width: 100%;
height: 30px;
border: 2px solid #000;
padding: 7px;
border-radius: 1px;
outline: none;
background: transparent;
color: #000;
font: 400 12px "Noto Sans";
font-style: normal;
}
input::-moz-placeholder {
background: transparent;
color: #000;
font: 400 12px "Noto Sans";
font-style: normal;
}
input::placeholder {
background: transparent;
color: #000;
font: 400 12px "Noto Sans";
font-style: normal;
}
.nav-menu__list-item {
font: 600 13px "Noto Sans";
color: #222;
transition: 1s ease-in-out 0.3;
}
.nav-menu__list-item:hover {
color: #444;
}
.nav-menu__list-item .nav-menu__contacts-link {
font: 600 14px "Noto Sans";
color: #02357d;
transition: 1s ease-in-out 0.3s;
}
.nav-menu__list-item .nav-menu__contacts-link:hover {
color: #444;
}
li.nav-menu__contacts .nav-menu__list-link, li.nav-menu__contacts i {
color: #02357d;
margin-right: 7px;
}
li.nav-menu__contacts .nav-menu__list-link:hover {
color: #034aaf;
}
.burger-menu__button {
display: none;
position: fixed;
top: -5px;
right: -30px;
z-index: 30;
width: 80px;
height: 80px;
}
.burger-menu__button:hover .burger-menu__lines {
background-color: #666;
}
.burger-menu__button:hover .burger-menu__lines::after {
background-color: #666;
}
.burger-menu__button:hover .burger-menu__lines::before {
background-color: #666;
}
.burger-menu__lines,
.burger-menu__lines::after,
.burger-menu__lines::before {
position: absolute;
width: 40px;
height: 4px;
background-color: #000;
}
.burger-menu__lines {
top: 50%;
right: 50%;
transform: translate(-50%, -50%);
}
.burger-menu__lines::before {
content: "";
top: -8px;
}
.burger-menu__lines::after {
content: "";
top: 8px;
}
.burger-menu_active .burger-menu__lines {
background-color: transparent;
}
.burger-menu_active .burger-menu__lines::after {
top: 0;
transform: rotate(-45deg);
}
.burger-menu_active .burger-menu__lines::before {
top: 0;
transform: rotate(45deg);
}
.burger-menu_active .burger-menu__button:hover .burger-menu__lines {
background-color: transparent;
}
.nav-logo {
display: block;
}
.nav-logo_mobile {
display: none;
}
.burger-menu_active .nav-logo_mobile {
display: block;
}
.burger-menu_active .nav-logo {
display: none;
}
.burger-menu__overlay {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100vw;
height: 100vh;
z-index: 10;
}
.burger-menu_active .burger-menu__overlay {
display: block;
}
.nav-logo_mobile-header {
display: none;
}
.tabs {
overflow: hidden;
border-radius: 5px;
}
.tabs__body {
background-color: #888;
}
.tabs__content {
display: none;
padding: 30px;
color: #fff;
transform: scaleY(0.8);
opacity: 0;
display: flex;
transform-origin: center top;
animation: showContent 0.6s forwards;
}
.tabs__content_active {
display: block;
}
.tabs__caption_active {
border-bottom: 1px solid #02357d;
}
.tabs__content.show {
display: block;
}
.active {
opacity: 0.8;
}
.tabs__content_title {
color: #02357d;
text-decoration: underline;
font: 600 13px "Noto Sans";
}
.nav-submenu__item {
padding-bottom: 15px;
padding-top: 15px;
border-bottom: 1px solid #fff;
border-top: 1px solid #fff;
}
.nav-submenu__link {
color: #fff;
font: 600 13px "Noto Sans";
}
@keyframes showContent {
0% {
transform: scaleY(0.8);
opacity: 0;
}
100% {
transform: scaleY(1);
opacity: 1;
}
}
@media screen and (max-width: 1024px) {
.nav-logo_mobile-header {
display: block;
width: 100%;
max-width: 200px;
height: auto;
margin-top: 15px;
margin-left: 15px;
}
.section__header {
width: 100%;
margin: 0;
}
.section__nav-container {
margin: 0;
}
.container.section__nav-container {
padding: 0;
}
.burger-menu__button {
display: block;
}
.burger-menu__container {
width: 45%;
position: fixed;
padding: 20px 20px 40px 20px;
background-color: #000;
z-index: 20;
display: flex;
flex-direction: column;
overflow-y: auto;
left: -100%;
transition: 0.3s ease-in-out 0.1s;
}
.burger-menu_active .burger-menu__container {
left: 0;
}
.section__nav-bottom {
margin-top: 20px;
}
.nav-menu__list-item {
margin-top: 15px;
}
.section__nav-top {
align-self: flex-start;
}
.nav-menu__list {
align-items: center;
}
.nav-menu {
width: 100%;
margin-top: 25px;
}
.nav-menu__list {
flex-direction: column;
}
.nav-menu__list-item {
color: #fff;
}
input {
border: 2px solid #fff;
color: #fff;
}
input::-moz-placeholder {
background: transparent;
color: #fff;
}
input::placeholder {
background: transparent;
color: #fff;
}
.nav-menu__list-item .nav-menu__list-link {
color: #fff;
transition: 1s ease-in-out 0.3s;
}
.nav-menu__list-item .nav-menu__list-link:hover {
color: #ccc;
}
.nav__search i {
color: #fff;
}
li.nav-menu__contacts a {
color: #fff;
}
li.nav-menu__contacts i {
color: #02357d;
margin-right: 7px;
}
li.nav-menu__contacts a:hover {
color: #ccc;
}
.nav-menu__list-item {
margin-top: 15px;
}
.nav-menu__contacts {
margin-top: 25px;
}
.nav-submenu__list {
left: 0;
max-height: auto;
width: 300px;
flex-wrap: nowrap;
background-color: #000;
}
.show {
display: none;
}
}
@media screen and (max-width: 768px) {
.burger-menu__container {
width: 75%;
}
}/*# sourceMappingURL=style.css.map */
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="https://fonts.cdnfonts.com/css/noto-sans" rel="stylesheet">
<script src="https://use.fontawesome.com/5f455dc027.js"></script>
<link rel="stylesheet" href="src/css/style.css">
<title>Тайт</title>
<meta name="Description" content="" />
<meta name="Keywords" content="" />
<link rel="canonical" href="/" />
</head>
<body>
<div class="section">
<div class="container section__nav-container burger-menu">
<a class="nav-logo_mobile-header" href="/"><img src="/src/img/aipr-logo-frvr.svg" alt=""></a>
<a href="#" class="burger-menu__button">
<span class="burger-menu__lines"></span>
</a>
<div class="burger-menu__container">
<header class="section__header">
<a class="nav-logo" href="/"><img src="/src/img/aipr-logo-frvr.svg" alt=""></a>
<a class="nav-logo_mobile" href="/"><img src="/src/img/aipr-logo-frvr-mobile.svg" alt=""></a>
</header>
<nav class="section__nav nav-menu">
<div class="section__nav-top">
<div class="nav__search">
<i class="nav__search-icon fa fa-search" aria-hidden="true"></i>
<form action="" method="get">
<input type="search" class="nav__search-input" placeholder="Поиск по исследованиям">
</form>
</div>
</div>
<div class="section__nav-bottom tabs">
<ul class="nav-menu__list tabs__head">
<li class="nav-menu__list-item tabs__caption" data-tab="catalog">Каталог</br> исследований</li>
<li class="nav-menu__list-item tabs__caption" data-tab="about">О компании
</li>
<li class="nav-menu__list-item tabs__caption" data-tab="services">Услуги
</li>
<li class="nav-menu__list-item tabs__caption" data-tab="keis">Кейсы
</li>
<li class="nav-menu__list-item">Контакты
</li>
<li class="nav-menu__list-item nav-menu__contacts">
<i class="nav-menu__contacts-icon fa fa-phone" aria-hidden="true"></i>
<a href="phone:" class="nav-menu__contacts-link"></a>
</li>
<li class="nav-menu__list-item nav-menu__contacts">
<i class="nav-menu__contacts-icon fa fa-envelope-o" aria-hidden="true"></i>
<a href="" class="nav-menu__contacts-link"></a>
</li>
</ul>
<div class="tabs__body">
<div class="tabs__content" data-tab="catalog">
<!-- <h3 class="tabs__content_title">Каталог</br>исследований</h3> -->
<ul class="nav-submenu__list">
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Нефтегазовая промышленность (454)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Информационные технологии, оборудование (161)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Машиностроение, промышленное оборудование (590)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Металлургия, металлы, металоизделия (811)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Электротехника, электроника (140)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Добывающая промышленность, сырье (274)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Строительство, недвижимость (1009)</a>
</li>
</ul>
<ul class="nav-submenu__list">
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Потребительские товары (922)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Легкая промышленность (580)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Медицинская фармакология (332)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">для бизнеса (191)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Перевозки, логистика (91)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Химическая промышленность (1601)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Потребительские услуги (345)</a>
</li>
</ul>
<ul class="nav-submenu__list">
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Продукты питания (1335)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Сельское хозяйство (607)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Тара и упаковка (111)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Деревообработка (371)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Электроэнергетика (113)</a>
</li>
<li class="nav-submenu__item">
<a href="" class="nav-submenu__link">Транспорт (375)</a>
</li>
</ul>
</div>
<div class="tabs__content" data-tab="about">2Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum deserunt incidunt ex nisi veniam totam error omnis eum accusamus consequuntur voluptatum quis natus eaque vero quia, quae quos repudiandae rem.</div>
<div class="tabs__content" data-tab="services">3Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum deserunt incidunt ex nisi veniam totam error omnis eum accusamus consequuntur voluptatum quis natus eaque vero quia, quae quos repudiandae rem.</div>
<div class="tabs__content" data-tab="keis">4Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolorum deserunt incidunt ex nisi veniam totam error omnis eum accusamus consequuntur voluptatum quis natus eaque vero quia, quae quos repudiandae rem.</div>
</div>
</div>
</nav>
</div>
<div class="burger-menu__overlay"></div>
</div>
</div>
<script
src="https://code.jquery.com/jquery-3.6.3.min.js"></script>
<script src="/src/js/scripts.js"></script>
</body>
</html>
Источник: Stack Overflow на русском