Diseño de menú horizontal a desplazable que responde a CSS puro

Un menú horizontal a desplazable es un tipo de barra de menú receptiva en Pure.CSS , que cambia la barra de menú horizontal a una barra de menú desplazable horizontalmente. Se utiliza para hacer que la barra de menú responda cuando el ancho del sitio web aumenta o disminuye de un dispositivo a otro, por ejemplo, tabletas, teléfonos inteligentes, etc. El menú Pure.CSS horizontal a desplazable no necesita ninguna función de JavaScript, su Las clases CSS incorporadas son suficientes para ello.

Clases: Las clases mencionadas y descritas a continuación son necesarias para crear este diseño.

  • pure-menu: Es la clase por defecto que genera el menú horizontal. Puede contener los elementos del menú y los encabezados en forma de lista.
  • pure-menu-horizontal : Es la clase añadida al ‘ pure-menu ‘ vertical predeterminado para convertirlo en un menú horizontal.
  • pure-menu-list: Es la clase para la lista desordenada que contiene los elementos del menú. Los elementos de la lista dentro de esta lista deben tener la clase ‘pure-menu-item ‘.
  • pure-menu-item: Es la clase añadida a los elementos de la lista dentro de esta lista.
  • pure-menu-heading: Es la clase que se agrega para los encabezados dentro o fuera de la lista del menú. De forma predeterminada, escribe en mayúscula el texto interior.
  • pure-menu-scrollable: Es la clase que hace que el pure-menu-horizontal se desplace o pase rápidamente cuando el ancho del sitio web no se ajusta al tamaño del menú.
  • pure-menu-link : Es la clase que se agrega a los enlaces dentro de los elementos del menú.

Sintaxis:

<div class="pure-menu pure-menu-horizontal pure-menu-scrollable">
    .....
</div>

Ejemplo 1: este ejemplo muestra una barra de menú simple horizontal a desplazable.

HTML

<!DOCTYPE html>
<html>
<head>
    <title>Responsive horizontal-scrollable menu</title>
    <link rel="stylesheet"
          href=
"https://unpkg.com/purecss@1.0.0/build/pure-min.css"
          integrity=
"sha384-nn4HPE8lTHyVtfCBi5yW9d20FjT8BJwUXyWZT9InLYax14RDjBj46LmSztkmNP9w"  
          crossorigin="anonymous">
    <style>
        .menu{
            background-color: green;
        }
        .menu h3, .menu a{
            color: white;
        }
        a:hover{
            background-color: white;
            color: green;
        }
        body{
            background-image: url(
"https://media.geeksforgeeks.org/wp-content/uploads/20210101144014/gfglogo-300x300.png");
            background-repeat: no-repeat;
            background-position: center;
            background-attachment: fixed;
        }
    </style>
</head>
<body>
    <div class="pure-menu pure-menu-horizontal
              pure-menu-scrollable menu">
        <h3 class="pure-menu-heading">GeeksforGeeks</h3>
          <ul class="pure-menu-list">
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                Home
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                HTML
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                CSS
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                Javascript
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                React
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                Angular
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                Nodejs
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                Express
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                Mongodb
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                About
              </a>
            </li>
            <li class="pure-menu-item">
              <a href="#" class="pure-menu-link">
                Contact
              </a>
            </li>
          </ul>
    </div>
</body>
</html>

Producción:

Ejemplo 2: el siguiente código demuestra que cuando el ancho del sitio web disminuye a 72 em, los elementos de la lista horizontal a desplazable en la barra de menú se separarán del encabezado. Deberíamos usar la regla @mean() para detectar los cambios en el ancho del sitio web. El código bajo la regla @mean() se ejecutará cuando la condición sea «verdadera».

HTML

<!DOCTYPE html>
<html>
<head>
    <title>Responsive horizontal-scrollable menu</title>
    <link rel="stylesheet"
          href=
"https://unpkg.com/purecss@1.0.0/build/pure-min.css"
      integrity=
"sha384-nn4HPE8lTHyVtfCBi5yW9d20FjT8BJwUXyWZT9InLYax14RDjBj46LmSztkmNP9w"  
    crossorigin="anonymous">
    <style>
        .menubar {
            background-color: green;
            position: relative;
        } 
        .menu {
            display: inline-block;
            width: auto;
            vertical-align: middle;
        } 
        .menu a {
            color: white;
        } 
        .menu a:hover {
            background-color: white;
            color:green;
        }
        .website_name {
            display: block;
            text-align: center;
            position: relative;
        }
        body{
            background-image: url(
"https://media.geeksforgeeks.org/wp-content/uploads/20210101144014/gfglogo-300x300.png");
            background-repeat: no-repeat;
            background-position: center;
            background-attachment: fixed;
        }
       /* To toggle the normal menu bar to
          Horizontal-scrollable menu bar
          when the window size reduced to particular size*/
        @media (max-width: 72em)
        {
           .menu
            {
              display:block;
            }
            .menubar_top
            {
                position: relative;
                padding: 0.5em;
            }
            .scrollable_links
            {
                position: absolute;
                width: 100%;
                background-color: transparent;
                background-color: black;
            }
        }
    </style>
</head>
<body>
    <div class="menubar">
        <div class="pure-menu menu menubar_top">
            <a href="#" class="pure-menu-heading website_name">
              GeeksforGeeks
            </a>
        </div>
        <div class="pure-menu pure-menu-horizontal pure-menu-scrollable
                    menu scrollable_links">
            <ul class="pure-menu-list">
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     Home
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     HTML   
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     CSS
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     Javascript
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     React
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     Angular
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     Nodejs
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     Express
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     Mongodb
                   </a>
                </li>
                <li class="pure-menu-item">                  
                   <a href="#" class="pure-menu-link">
                     About
                   </a>
                </li>
                <li class="pure-menu-item">
                   <a href="#" class="pure-menu-link">
                     Contact
                   </a>
                </li>
            </ul>
        </div>
    </div>
</body>
</html>

Producción:

Publicación traducida automáticamente

Artículo escrito por ashwin13602 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *