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=

Placeholder y su uso en HTML5 y CSS3

¿Qué es Placeholder? Placeholder es un texto descriptivo que incluimos dentro de la etiqueta <input> , cuando introduzcamos un valor se sustituirá automáticamente. Sintaxis HTML Su sintaxis es de lo más simple, dentro de la etiqueta <input> añadimos el atributo placeholder incluyendo el texto descriptivo. <input type="text" name="example" placeholder="Ejemplo de Placeholder"> Debajo podemos ver un ejemplo del código anterior. Soporte en navegadores A continuación podemos ver una lista con el soporte en los principales navegadores :   Chrome 4+   Internet Explorer 10+   Firefox 4+   Safari 5+   Opera 11.5+ Sintaxis CSS Mediante CSS podemos dar estilo al atributo Placeholder. Hay que tener en cuenta que la sintaxis no está estandarizada, por lo que en un futuro puede que cambie. ::-webkit-input-placeholder { color: #2c3e50; } ::-moz-placeholder { /* Firefox 19+ */ color:

Curso HTML 5: Introducción

¿Qué es HTML5? HTML son las siglas de HyperText Markup Language (lenguaje de marcas de hipertexto). Este nombre hace referencia al estándar de código y estructura básica con la que vamos a trabajar. El número 5 hace referencia a la quinta versión de este estándar, que trae consigo novedades y mejoras frente a sus predecesores. Una de las mejoras más significativas son las nuevas etiquetas que aportan un significado semántico , y por lo tanto tendrán un valor añadido en cuanto al posicionamiento web . Hay que tener presente que aún está en una fase experimental. Navegadores obsoletos como IE7 no van a poder interpretar correctamente muchas de las nuevas funcionalidades. En la siguiente imagen podemos observar las diferencias entre HTML5 y HTML4/XHTML : De un vistazo podemos percatarnos como con HTML5 obtenemos una estructura más limpia y estandarizada, mediante que con HTML4/XHTML debíamos aplicarles identificadores o clases a todas las cajas y careciamos de un signifi