January 8, 2021

Горизонтальное меню с прокруткой — horizontal scrolling menu

Один из самых простых способов показать меню с горизонтальной прокруткой — использовать FlexBox (https://caniuse.com/flexbox)

HTML

<nav>
  <ul>
    <li><a href="#">Latest</a></li>
    <li><a href="#">Trending</a></li>
    <li><a href="#">Featured</a></li>
    <li><a href="#">All Posts</a></li>
    <li><a href="#">React</a></li>
    <li><a href="#">Angular</a></li>
    <li><a href="#">Vuejs</a></li>
    <li><a href="#">Meteor</a></li>
    <li><a href="#">Machine Learning</a></li>
    <li><a href="#">Categories</a></li>
    <li><a href="#">Tags</a></li>
    <li><a href="#">My Account</a></li>
  </ul>
</nav>

CSS

nav {
  background-color: #222;
  position: relative;
}
nav:before, nav:after {
  content: "";
  display: block;
  position: absolute;
  width: 20px;
  height: 100%;
  background: transparent;
  background: linear-gradient(90deg, rgba(34, 34, 34, 1) 0%, rgba(34, 34, 34, 0) 100%);
  left: 0;
  top: 0;
}
nav:after {
  background: transparent;
  background: linear-gradient(90deg, rgba(34, 34, 34, 0) 0%, rgba(34, 34, 34, 1) 100%);
  left: auto;
  right: 0;
}
nav ul {
  margin: 0;
  padding: 0;
  padding: 5px 20px;
  padding-right: 20px;
  list-style-type: none;
  display: flex;
  overflow-x: auto;
  align-items: center;
  margin: 10px auto;

  /* HIDE SCROLLBAR */
  -ms-overflow-style: none; /* ie 10+ */
  scrollbar-width: none; /* firefox */
}
nav ul::-webkit-scrollbar {
  display: none; /* webkit (safari, chrome) */
}
nav ul li {
  flex: 0 0 auto;
  margin-right: 10px;
  text-decoration: none;
}
nav a {
  display: block;
  text-decoration: none;
  color: #fff;
  background: #999;
  border-radius: 20px;
  padding: 5px 12px;
}
nav a:hover {
  background: #777;
}

Вуаля!