CSS: отключить прокрутку

к сожалению, у меня есть небольшая проблема с классом CSS, который я реализовал на своем веб-сайте. Меню на странице отображается кодом CSS. К сожалению, я не могу отключить прокрутку, когда меню открыто. Я уже пробовал использовать «position: fixed !important;» и «перелив». Почему-то не получилось.

Вот код CSS:

<style>

/*****************************************/
/*********| FULLSCREEN MENU CSS |*********/
/*****************************************/

  
  
/* Move the hamburger to the right of the header */
  
.de-burger-menu .et_pb_menu__wrap {
  justify-content: flex-end !important;
}

/* Hide the desktop menu */

.de-burger-menu .et_pb_menu__wrap .et_pb_menu__menu {
  display: none !important;
}

/* Force the mobile version of the menu */

.de-burger-menu .et_pb_menu__wrap .et_mobile_nav_menu {
  display: block !important;
  align-items: center !important;
}

/* Fullscreen Menu Style when Opened*/

.de-burger-menu .opened #mobile_menu1 {
  width: 100vw !important; /* Make it span the full width of the viewport */
  position: fixed !important;
  top: 0em !important;
  left: 0vw !important;
  height: 100vh !important; /* Make it span the full height of the viewport */
  display: flex !important;
  justify-content: center !important;
  flex-direction: column !important;
  transition: visibility 0.3s, opacity 0.3s ease-in-out; /* Animate the menu to fade in */
  padding: 0 !important;
  background-color: #ffffff!important; /* Fullscreen menu background color */
}

/* Show fullscreen menu */

.de-burger-menu .opened #mobile_menu1 {
  opacity: 1 !important; /* Make it visible by setting opacity to 1 */
  visibility: visible !important; /* Show the menu */
}

/* Hide and fade out the Menu when closed */

.de-burger-menu .closed #mobile_menu1 {
  opacity: 0 !important; /* Make it invisible by setting opacity to 0 */
  visibility: hidden !important; /* Hide the menu */
  transition: visibility 0.3s, opacity 0.3s, left 1s, ease-in-out !important; /* Animate the menu to fade out */
}

/* Remove Bullets next to LI Elements */

.de-burger-menu #mobile_menu1 li {
  list-style: none !important;
  text-align: center !important;
  width: 100%
}

/* Make sure that the menu is above other elements */

.de-burger-menu .et_pb_menu__wrap span.mobile_menu_bar {
  z-index: 999999 !important;
}

/* Set the close icon for when the menu is open */

.de-burger-menu .et_pb_menu__wrap .opened .mobile_menu_bar:before {
  color: #562f2f !important; /* Icon color */
  content: "\4d" !important; /* Divi font icon to use for the close icon */
  left: -40px; /* Close icon position. You might need to play with this to make it look right */
}

/* Keep hamburger icon in fixed position on mobile */
.de-burger-menu .opened .mobile_menu_bar {
  position: fixed !important;
}

/* Remove mobile menu border */

.de-burger-menu .et_mobile_menu {
  border-top: none;
}

/* Make sure the menu items do not show a background */

.de-burger-menu .et_mobile_menu .menu-item-has-children>a {
  background-color: transparent;
}

/* Remove the hover background from the menu items and add hover animation */

.et_mobile_menu li a:hover {
  background-color: transparent;
  opacity: 1;
  transition: transform 0.3s ease-in-out !important; /* Animated the menu item when hovered */
  transform: scale(1.15); /* Enlarge the hovered menu item by 15% when hovered */
}

/* Remove menu item bottom borders */

.de-burger-menu .et_mobile_menu li a {
  border-bottom: none;
}
</style>

Сайт: https://aureus-frankfurt.de/

Я надеюсь, что кто-то знает решение.

С уважением

Вам нужно отключить прокрутку для элемента body: и единственный способ сделать это — использовать селектор :has CSS, например. body:has(.mobile_nav.opened) { overflow: hidden }. Если вам нужна наилучшая кроссбраузерная поддержка, вам нужно использовать JS.

Terry 10.02.2023 10:35
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в 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. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
1
1
52
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Привет Добро пожаловать в сообщество:

Вы можете настроить таргетинг на мобильный класс opened с помощью :has и сделать тело overflow:hidden

body:has(.mobile_nav.opened) { 
overflow: hidden 
}

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