Documente Academic
Documente Profesional
Documente Cultură
Bootstrap 2.0
34 comentarios
Ricardo Borillo 23 de febrero de 2012 | 09:00
Uno de los principales quebraderos de cabeza con los que se encuentra un desarrollador a la hora de
iniciar un nuevo proyecto web, es la creacin de un layout bsico sobre el que trabajar.
Adicionalmente, si queremos que nuestro diseo sea capaz de adaptarse a los distintos navegadores,
configuraciones o incluso dispositivos, la seleccin de un framework de apoyo puede ahorrarnos
mucho tiempo y esfuerzo.
Por desgracia, en la actualidad sigue siendo necesario un profundo conocimiento de los distintos
estndares y de como estos se aplican en cada navegador. De nuevo, la adopcin de un framework
que nos guie en la aplicacin del conjunto necesario de buenas prcticas, puede ser crucial.
Con el fin de cubrir estas necesidades surgen frameworks como 960gs o Bootstrap. En este artculo
nos centraremos en este ltimo, el cual ha sido desarrollado por Twitter y cuya versin 2.0 ha sido
liberada recientemente.
Funcionalidades disponibles
Bootstrap 2.0 es un framework diseado para simplificar el proceso de creacin de diseos web.
Para ello nos ofrece una serie de plantillas CSS y de ficheros JavaScript, los cuales nos permiten
conseguir:
Interfaces que funcionen de manera brillante en los navegadores actuales, y correcta en
los no tan actuales.
Un diseo que pueda ser visualizado de forma correcta en distintos dispositivos y a
distintas escalas y resoluciones.
Una mejor integracin con tus las libreras que sueles usar habitualmente, como por
ejemplo jQuery.
Un diseo slido basado en herramientas actuales y potentes como LESS o estndares
como CSS3/HTML5
De esta plantilla mnima, podemos destacar distintos aspectos. El primero de ellos es la inclusin de
HTML Shim, el cual se encarga de que Internet Explorer reconozca los tags HTML5 y nos permita
asignarles estilos.
Por otra parte, en la cabecera deberemos incluir las CSS que distribuye Bootstrap y, al final de body
para que la pgina se cargue ms rpido, veremos el resto de recursos JavaScript que completan el
despliegue.
Si nos centramos ya en contenido, podemos comenzar nuestro ejemplo con una barra superior que
me permita definir los mens generales del sitio:
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="#">Genbeta Dev</a>
<ul class="nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">Bio</a></li>
<li><a href="#contact">Contacto</a></li>
</ul>
</div>
</div>
</div>
Para verlo en accin, vamos a tomar como base el ejemplo que preparbamos en el apartado
anterior y pondremos nuestro cdigo dentro del bloque cuyo atributo class sea container. En el
ejemplo vamos a crear una disposicin sencilla que muestre una regin superior seguida de varios
bloques ms pequeos para presentar distintos productos de nuestra empresa.
Para completar este esquema, la regin principal puede seguir la siguiente distribucin:
<div class="hero-unit">
<h1>Bienvenidos a nuestra pgina!</h1>
<p>
Texto principal de bienvenida a nuestra pgina. Prueba a redimiensinar el
En este simple marcado ya podemos distinguir toques de diseo interesantes. Por ejemplo, los
bloques que aaden la class hero-unit se presentan como un panel de bordes redondeados.
Adicionalmente, si nos fijamos en el enlace a ms informacin, veremos como Bootstrap lo
renderiza en forma de botn grande.
Y a continuacin, podemos aadir tres productos utilizando la distribucin de 12 columnas. Para
ello debemos tener una regin con el class row, la cual contendr a su vez otras regiones con la
identificacin del nmero de columnas que ocuparn (por ejemplo, span4 para definir un ancho de
cuatro columnas):
<div class="row">
<div class="span4">
<h2>Producto</h2>
<p>
Descripcin del producto presentado. Descripcin del producto presentado.
Descripcin del producto presentado.
</p>
<p><a class="btn" href="#">View details »</a></p>
</div>
</div>
En el ejemplo que nos ocupa y para completar un ancho total de 12 columnas, deberemos tener tres
bloque identificados con un class span4.
Concluiremos nuestro primer marcado con un pie donde poder poner nuestra informacin de
contacto:
<footer>
<p>© Company 2012</p>
</footer>
De igual forma, para definir las reas principales de la pgina podemos optar por etiquetar el bloque
principal con el class container como en los ejemplos, o de nuevo elegir la opcin fluida:
<div class="container-fluid">
<div class="row-fluid">
<div class="span2">
<!Sidebar content>
</div>
<div class="span10">
<!Body content>
</div>
</div>
</div>
Por ltimo, si queremos que nuestra barra de herramientas principal se pueda adaptar a los cambios
en el ancho de navegador o a la renderizacin en otros dispositivos de menor ancho, aplicaremos la
siguiente construccin:
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".navcollapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="#">Genbeta Dev</a>
<div class="nav-collapse">
<ul class="nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">Bio</a></li>
<li><a href="#contact">Contacto</a></li>
</ul>
</div>
</div>
</div>
</div>
Como podemos ver en el cdigo, se ha introducido un nuevo enlace con el class btn btn-navbar.
Este enlace, gracias a atributos extra definidos gracias a HTML5 (data-toggle y data-target), ser
mostrado cuando el layout de la pgina no permita visualizar las opciones textuales convencionales.
Este tipo de elementos nos ofrecen mucha versatilidad, ya que se adaptan a cualquier tamao y
resolucin. El mismo men pero ante un menor tamao se vera de la siguiente forma:
Responsive design
Por ltimo, si queremos asignar estilos especficos a nuestro diseo en funcin de la resolucin del
dispositivo en el que se est visualizando, Bootstrap nos ofrece un conjunto base de media queries
con el que podremos construir expresiones del tipo:
// Smartphones
media (max-width: 480px) { … }
// Tablets
media (max-width: 768px) { }
// Tablets apaisados y escritorio
media (min-width: 768px) and (max-width: 980px) { … }
// Escritorio grande
media (min-width: 1200px) { .. }
En siguientes entregas abordaremos el resto de componentes que ofrece esta excelente librera y,
como no, sus plugins JavaScript integrables con jQuery :)
Botones
Lo ms llamativo del uso de botones, es que pueden se aplicados tanto sobre enlaces, como en
etiquetas button/input simplemente aplicando la clase btn. A partir de esta definicin inicial,
podemos realizar varias customizaciones distintas:
Distinguir su propsito. Esto es posible aplicando distintos valores a la clase del elemento:
.btn-primary, .btn-info, .btn-success, .btn-warning, .btn-danger o .btn-inverse.
Asignarle un icono. Gracias a toda una lista de iconos predefinidos, podemos aadir un
icono a los botones de forma sencilla.
<a class="btn btn-success" href="#">
<i class="icon-shopping-cart icon-white"></i>
Checkout
</a>
Dropdown
Como caracterstica adicional, es interesante explorar el uso de los dropdowns. Este tipo de
componente nos permite asociar un men desplegable a un botn, con el fin de mostrar un conjunto
de opciones de forma agrupada:
Formularios
Para comenzar con los formularios, hay que aclarar que sin aadir ningn marcado adicional,
Bootstrap har que nuestros formularios tengan un mejor aspecto visual. En cualquier caso, si
queremos sacarle todo el partido a las mejoras visuales que aporta, podremos seguir las guas que
detallamos a continuacin.
Layout
Comenzando por la disposicin de los elementos, Bootstrap nos permite una visualizacin vertical
de los mismos (con las etiquetas en la parte superior de los campos), inline, en forma de dilogo de
Estados y alertas
Con Bootstrap podemos remarcar ciertos elementos dentro del formulario gracias a las siguientes
clases:
focused. Permite destacar la introduccin de un elemento.
Plugins
Por ltimo en el artculo de hoy, vamos a hacer una pequea incursin en los plugins jQuery que
Bootstrap pone a nuestra disposicin.
Ventana modal
Es bastante habitual ver como ciertos componentes hacen uso del clsico efecto lightbox para
bloquear la pantalla de forma modal. En esta ocasin, Bootstrap acompaa a este efecto de una
animacin bastante vistosa que no puedes perderte.
Si queremos visualizar esta ventana que acabamos de definir, slo tenemos que aadir la accin
necesaria en algn botn del interfaz:
<a class="btn" data-toggle="modal" href="#myModal" >Run!!!</a>
Popover
Con el plugin de Tooltip como prerequisito, este plugin nos permite sacar ayudas contextuales
cuando pasamos por encima de ciertos elementos.
En esta ocasin, el plugin se apoya en los atributos data-* definidos en HTML5 para extender el
marcado:
<a href="#" class="btn btn-danger" rel="popover"