Ir al contenido principal

Curso Bootstrap: Menú de navegación

Curso Bootstrap: Menú de navegación

Uno de los elementos más importantes de cara a la usabilidad web de nuestros proyectos es el menú de navegación. Ayudará al usuario a explorar las diferentes categorías de las que se compone nuestra web de una manera sencilla y directa.

El menú de navegación debe ser claro e intuitivo. Nosotros seguramente conozcamos al dedillo la estructura de nuestra web, pero ese no es el caso del usuario que la visita.

Bootstrap nos brinda un maravilloso menú, el cual tiene la habilidad de ser completamente responsive. De esta manera no quedarán excluidos los usuarios que accedan con dispositivos portátiles.

Vamos a ver una breve descripción de los tres menús con los que vamos a trabajar:

  • Navbar
  • Static top navbar
  • Fixed navbar

Navbar: Es el modelo de menú más básico. Cuenta con los elementos necesarios para poder navegar por nuestra web.

Static top navbar: La diferencia con el modelo anterior básicamente es la ubicación. Está pensado para que su ubicación sea la parte superior de la página sin márgenes ni espacios. Cuando el contenido de la web sea lo suficientemente extenso como para hacer scroll, el menú se ocultará según nos vayamos desplazando a la parte final del contenido.

Fixed navbar: Siempre va a ser visible por mucho contenido del que disponga la página. Podemos ubicarlo en la parte superior o inferior de la web.

Tras esta breve introducción a los modelos de menú de Bootstrap, vamos a ver un ejemplo de cada uno y ver su funcionamiento.

Navbar:

Código Fuente:

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cregarru - Curso Bootstrap: Menú de navegación</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 Shim y Respond.js IE8 soporta elementos HTML5 y media queries -->
    <!-- ATENCIÓN: Respond.js no funciona si visualizas la página vía file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>
    <div class="container">
        <div role="navigation" class="navbar navbar-default">
        <div class="container-fluid">
          <div class="navbar-header">
            <button data-target=".navbar-collapse" data-toggle="collapse" class="navbar-toggle collapsed" type="button">
              <span class="sr-only">Toggle navegación</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
             <span class="icon-bar"></span>
            </button>
            <a href="#" class="navbar-brand">Nombre proyecto</a>
          </div>
          <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
              <li class="active"><a href="#">Enlace</a></li>
              <li><a href="#">Enlace</a></li>
              <li><a href="#">Enlace</a></li>
              <li class="dropdown">
                <a data-toggle="dropdown" class="dropdown-toggle" href="#">Desplegable <span class="caret"></span></a>
                <ul role="menu" class="dropdown-menu">
                  <li><a href="#">Enlace</a></li>
                  <li><a href="#">Enlace</a></li>
                  <li><a href="#">Enlace</a></li>
                  <li class="divider"></li>
                  <li class="dropdown-header">Cabecera navegación</li>
                  <li><a href="#">Enlace separado</a></li>
                  <li><a href="#">Enlace separado</a></li>
                </ul>
              </li>
            </ul>
          </div><!--/.nav-collapse -->
        </div><!--/.container-fluid -->
      </div>
    </div>
    <!-- jQuery (necesario para los plugins de Bootstrap) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <!-- Incluye todos los plugins compilados de Bootstrap -->
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>
Ejemplo

Static top navbar:

Código Fuente:

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cregarru - Curso Bootstrap: Menú de navegación</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 Shim y Respond.js IE8 soporta elementos HTML5 y media queries -->
    <!-- ATENCIÓN: Respond.js no funciona si visualizas la página vía file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>

        <div role="navigation" class="navbar navbar-default navbar-static-top">
        <div class="container">
        <div class="container-fluid">
          <div class="navbar-header">
            <button data-target=".navbar-collapse" data-toggle="collapse" class="navbar-toggle collapsed" type="button">
              <span class="sr-only">Toggle navegación</span>
              <span class="icon-bar"></span>
              <span class="icon-bar"></span>
             <span class="icon-bar"></span>
            </button>
            <a href="#" class="navbar-brand">Nombre proyecto</a>
          </div>
          <div class="navbar-collapse collapse">
            <ul class="nav navbar-nav">
              <li class="active"><a href="#">Enlace</a></li>
              <li><a href="#">Enlace</a></li>
              <li><a href="#">Enlace</a></li>
              <li class="dropdown">
                <a data-toggle="dropdown" class="dropdown-toggle" href="#">Desplegable <span class="caret"></span></a>
                <ul role="menu" class="dropdown-menu">
                  <li><a href="#">Enlace</a></li>
                  <li><a href="#">Enlace</a></li>
                  <li><a href="#">Enlace</a></li>
                  <li class="divider"></li>
                  <li class="dropdown-header">Cabecera navegación</li>
                  <li><a href="#">Enlace separado</a></li>
                  <li><a href="#">Enlace separado</a></li>
                </ul>
              </li>
            </ul>
          </div><!--/.nav-collapse -->
        </div>
      </div>

    <!-- jQuery (necesario para los plugins de Bootstrap) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <!-- Incluye todos los plugins compilados de Bootstrap -->
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>
Ejemplo

Fixed navbar:

Código Fuente:

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cregarru - Curso Bootstrap: Menú de navegación</title>

    <!-- Bootstrap -->
    <link href="css/bootstrap.min.css" rel="stylesheet">

    <!-- HTML5 Shim y Respond.js IE8 soporta elementos HTML5 y media queries -->
    <!-- ATENCIÓN: Respond.js no funciona si visualizas la página vía file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>

      <div role="navigation" class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button data-target=".navbar-collapse" data-toggle="collapse" class="navbar-toggle collapsed" type="button">
            <span class="sr-only">Toggle navegación</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a href="#" class="navbar-brand">Nombre proyecto</a>
        </div>
        <div class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Enlace</a></li>
            <li><a href="#about">Enlace</a></li>
            <li><a href="#contact">Enlace</a></li>
            <li class="dropdown">
              <a data-toggle="dropdown" class="dropdown-toggle" href="#">Dropdown <span class="caret"></span></a>
              <ul role="menu" class="dropdown-menu">
                <li><a href="#">Enlace</a></li>
                <li><a href="#">Enlace</a></li>
                <li><a href="#">Enlace</a></li>
                <li class="divider"></li>
                <li class="dropdown-header">Cabecera navegación</li>
                <li><a href="#">Enlace separado</a></li>
                <li><a href="#">Enlace separado</a></li>
              </ul>
            </li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </div>

    <!-- jQuery (necesario para los plugins de Bootstrap) -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
    <!-- Incluye todos los plugins compilados de Bootstrap -->
    <script src="js/bootstrap.min.js"></script>
  </body>
</html>
Ejemplo

Copiando el código fuente y creando una página nueva en nuestro equipo podemos ver los ejemplos en funcionamiento.

Como vemos el resultado es un menú muy sencillo y claro. Su implementación también es sencilla, aunque puede que al principio te cueste asimilar un poco el código.

Mi consejo es que modifiques el código a tu gusto respetando la estructura, para que poco a poco tengas más soltura con los elementos que pone a nuestra disposición Bootstrap.

Comentarios

Entradas populares de este blog

Efecto destello CSS3

En estas fechas tan señaladas a todos nos invade el espíritu navideño, y con él las ganas de decorar nuestra casa, nuestra habitación y por qué no, nuestra web. Por este motivo se me ocurrió crear un efecto destello de luz mediante CSS3 e imágenes para dar la calidez necesaria que nuestra web se merece. El efecto es sencillo, consiste en dos imágenes (una de fondo y otra que realizará el efecto) y una animación mediante CSS3. El resultado sería el siguiente: Podemos duplicar cuantas veces queramos la estrella y posicionarla donde mejor nos venga. A continuación os dejo el fragmento de código HTML y CSS para que lo probéis y hagáis las modificaciones que sean necesarias. HTML <div class="efectos"> <img src="directorio/imagen-01.jpg" alt="Navidad" class="background-navidad"> <img src="directorio/imagen-02.jpg" class="destello destello-01"> <img src="directorio/imagen-03.jpg" class=

Mitos sobre el diseño web responsive

Las idea del diseño responsive o adaptable surgió en el 2008 por el consorcio W3C. El planteamiento se basaba en mejorar la experiencia de usuario unificando la correcta visualización de una página web en cualquier dispositivo; ya fuese un teléfono móvil o un equipo de sobremesa. Muchas eran las ventajas que prometía el diseño responsive, pero también surgieron bastantes mitos que frenaron el entusiasmo por dar el salto a la web adaptable. A continuación vamos a comentar cuatro mitos falsos sobre el diseño responsive: Se debe probar la web en todos los dispositivos El diseño web responsive está enfocado a la resolución del dispositivo no a un modelo concreto. Teniendo en cuenta que hay miles de dispositivos con conexión a Internet esta tarea es prácticamente inviable. Imagina tener en tu casa u oficina cientos o miles de dispositivos en los que tienes que realizar pruebas, sería algo caótico. Por el contrario sí que podemos clasificar todos esos modelos mediante su resolución d

¿Qué es Font Awesome?

¿Qué es Font Awesome? Font Awesome es una librería de iconos que podemos aplicar fácilmente a cualquier web. Sobre todo es interesante su integración con Bootstrap ya que hay un apartado dedicado especialmente para él con ejemplos prácticos. Disponemos de 479 iconos vectoriales que podemos modificar a nuestro gusto con reglas CSS — tamaño, color, sombras... Font Awesome es de uso libre, lo que quiere decir que podemos implementar los iconos en cualquier proyecto web con fines comerciales sin problemas. Al tratarse de archivos vectoriales, por muy grande que hagamos un icono no perderá calidad. Diferencias con otras librerías En el siguiente enlace , podemos observar una comparativa entre otras librerías de iconos Podemos observar que la diferencia principal frente a los glyphicons que vienen con Bootstrap es que tiene el doble de iconos a elegir. Además con Font Awesome podemos crear listas visualmente atractivas y disponemos de iconos con efectos animados (bastante útile