CSS - меню с горизонтальной прокруткой без прокрутки

Пытаюсь создать меню с горизонтальной прокруткой для мобильных устройств. Я воспользовался советом эта статья, заявив, что это можно сделать с white-space: nowrap; и overflow-x: auto;.

Результат, которого я пытаюсь достичь: контент должен иметь горизонтальную полосу прокрутки, чтобы пользователь мог перемещаться по меню. Само меню должно выходить за пределы экрана следующим образом:

CSS - меню с горизонтальной прокруткой без прокрутки

Вот как выглядит мой код:

body {
     margin: 0;
     width: 500px; /* for this example */
}

.menubar {
     background:#000;
     height: 50px;
}

.logo {
     float:left;
     width: 25%;
     color:#fff;
     text-align: center;
}

.flat {
     margin:0;
     padding: 0;
     list-style: none;
}

.menu {
     width: 70%;
     float: right;
     white-space: nowrap;
     overflow-x: auto;
     -webkit-overflow-scrolling: touch;
     -ms-overflow-style: -ms-autohiding-scrollbar;
}

.menu::-webkit-scrollbar {
     display: none;
}

.menu li {
     float: left;
     margin-right: 1em;
}
<div class = "menubar">
      <div class = "logo">My Logo</div>
      <div class = "menu">
            <ul class = "flat menu">
                  <li><a href = "">Menu item</a></li>
                  <li><a href = "">Menu item</a></li>
                  <li><a href = "">Menu item</a></li>
                  <li><a href = "">Menu item</a></li>
            </ul>
      </div>
</div>

Кто-нибудь знает, почему не работает?

Вы не объясняете, что именно не работает или на какую статью вы ссылаетесь.

Alexander Rice 04.11.2018 20:35

@AlexanderRice Плохо, забыл добавить это. Обновил вопрос.

Appel Flap 04.11.2018 20:41
Улучшение производительности загрузки с помощью 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 страниц, которые помогут...
0
2
275
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий
  1. Удалите ширину из класса .menu.
  2. Добавить float: none; в .menu
  3. Добавить отображение: встроенный; в .menu li

    body {
         margin: 0;
         width: 500px; /* for this example */
    }
    
    .menubar {
         background:#000;
         height: 60px;
    }
    
    .logo {
         float:left;
         width: 25%;
         color:#fff;
         text-align: center;
    }
    
    .flat {
         margin:0;
         padding: 0;
         list-style: none;
    }
    
    .menu {
         float: none;
         white-space: nowrap;
         overflow-x: auto;
         -webkit-overflow-scrolling: touch;
         -ms-overflow-style: -ms-autohiding-scrollbar;
    }
    
    .menu::-webkit-scrollbar {
         display: none;
    }
    
    .menu li {
         margin-right: 1em;
      display:inline;
    
    }
    

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