SlideShare una empresa de Scribd logo
Introducción a los

           FRAMEWORKS CSS
                        Luis Miguel Martín



I Betabeers Badajoz
PCTEX - 20 Abril 2012
Introducción a los

FRAMEWORKS CSS
  Luis Miguel Martín
¿quién soy?
¿Quién soy?
• Consultor, diseñador y
  desarrollador front-end
  especializado en crear sitios
  web centrados en el usuario
• Más de 11 años experiencia
  en diversos aspectos del
  desarrollo web
• Fundamentalista de los
  estándares web
INTRODUCCIÓN
Introducción
•   Problemática del desarrollo con CSS
•   ¿Qué es un Framework CSS?
•   Ventajas e Inconvenientes
•   Panorámica de Frameworks CSS
•   Comparativa
•   Entonces, ¿cuál elijo?
Problemática del desarrollo css
Problemática del desarrollo CSS
• Es lento:
  – Diseño distinto en cada proyecto
  – Preparación y optimización de gráficos
  – Carácter artesano
• Reutilización de código anterior
• Se dedica mucho tiempo a tareas
  infructuosas (depurar para IE,
  extensiones propietarias,....)
Problemática del desarrollo CSS
• No existen normas a la hora de
  programar en CSS (nomenclaturas,
  identación,...)
• Dificultad con código de terceros
  (incluso, dentro de un mismo equipo)
• El programador “puro” no sabe CSS:
  – NO es un lenguaje de programación
• …
¿qué es un framework css?
¿Qué es un Framework CSS?
“Un conjunto de herramientas, librerías,
convenciones y buenas prácticas que
abstraen tareas repetitivas y
rutinarias en elementos genéricos
que pueden reutilizarse.”
JEFF CROFT
http://www.alistapart.com/articles/frameworksfordesigners/
¿Y CUÁL ES SU OBJETIVO?
“Que el desarrollador o diseñador se
enfoque en las tareas que son
exclusivas de un determinado
proyecto, en lugar de reinventar la
rueda una y otra vez.”
JEFF CROFT
http://www.alistapart.com/articles/frameworksfordesigners/
Ventajas e inconvenientes
Ventajas
•   Aumentan la productividad
•   Código más consistente y estructurado
•   Testeo y depuración minimizada
•   Facilidad de mantenimiento
•   Facilita el trabajo en equipo
•   Agilizan la repetición de procesos
•   Otras: preprocesado en servidor
    (LESS/SASS), integración en CMS,...
Inconvenientes
•   Curva de aprendizaje
•   Exceso de código HTML y CSS
•   Código y clases no semánticas
•   Código “ajeno”
•   ¿Más lento que partir de cero?
•   ¿Restricciones de diseño?
Inconvenientes
•   Curva de aprendizaje
•   Exceso de código HTML y CSS
•   Código y clases no semánticas
•   Código “ajeno”
•   ¿Más lento que partir de cero?
•   ¿Restricciones de diseño?
Inconvenientes
•   Curva de aprendizaje
•   Exceso de código HTML y CSS
•   Código y clases no semánticas
•   Código “ajeno”
CURVA DE APRENDIZAJE
• La mayoría de los frameworks tienen una
  curva sencilla.
• Al aportar una base común documentada
  facilita la incorporación de nuevos
  miembros al equipo.
• Incluirlo en la metodología de trabajo
  mejora el proceso de desarrollo y
  disminuye el tiempo de aprendizaje.
Inconvenientes
•   Curva de aprendizaje
•   Exceso de código HTML y CSS
•   Código y clases no semánticas
•   Código “ajeno”
EXCESO DE CÓDIGO HTML Y CSS
• ¿Es crítico para tu proyecto?
• Emplea sólo lo que necesites
• Comprime. Minimiza. Une.
  – Compresión HTTP
  – Minimiza JS y CSS: Eliminar espacios en
    blanco, saltos de carro, identaciones,…
  – Combina archivos CSS y JS
  – Otros: caché, CDN,…
Inconvenientes
•   Curva de aprendizaje
•   Exceso de código HTML y CSS
•   Código y clases no semánticas
•   Código “ajeno”
CÓDIGO NO SEMÁNTICO
• DIV y SPAN no tienen significado
  semántico (son neutrales)




     The global structure of an HTML document
     http://www.w3.org/TR/html401/struct/global.html#h-7.5.4
CÓDIGO NO SEMÁNTICO
DIV + ID/CLASS = valor semántico nulo   Etiq. HTML5 = valor semántico alto
    <div id="header">                       <header>
    ...                                     ...
    </div>                                  </header>
    <div id="nav">                          <nav>
    ...                                     ...
    </div>                                  </nav>
    <div class="article">                   <article>
    ...                                     ...
    </div>                                  </article>
    <div id="footer">                       <footer>
    ...                                     ...
    </div>                                  </footer>
CÓDIGO NO SEMÁNTICO

                LA SEMÁNTICA ESTÁ AQUÍ

<etiqueta class="tomate queso">Merendola</etiqueta>



                       No aquí
    La semántica web no incluye CSS
Inconvenientes
•   Curva de aprendizaje
•   Exceso de código HTML y CSS
•   Código y clases no semánticas
•   Código “ajeno”
CÓDIGO “AJENO”
• Podemos vivir con ello ;-)
• Un framework es una herramienta. Hay
  que estudiarla y comprenderla para
  obtener resultados.
Inconvenientes
•   Curva de aprendizaje
•   Exceso de código HTML y CSS
•   Código y clases no semánticas
•   Código “ajeno”
Panorámica de frameworks css
Panorámica de frameworks css
• ¡¡Existe una enorme variedad!!
• Hablaremos de 1 Kb CSS Grid, 960.gs,
  Blueprint, Foundation (Zurb) y
  Bootstrap (Twitter)
• Algunos admiten plugins y extensiones
  para hacerlos más versátiles (responsive
  design, por ejemplo) o incorporar
  funcionalidades
¿qué nos permiten hacer?
• Resetear estilos para normalizar las
  propiedades básicas de los elementos a
  fin de eliminar diferencias de
  visualización entre navegadores.
  – reset.css
• Realizar una gestión global de las
  tipografías que se usarán en la página.
  – text.css
¿qué nos permiten hacer?
• Maquetar un diseño de forma óptima
  y compatible con todos los
  navegadores.
  – layout.css, grid.css,…
• Estilos específicos para impresión
  – print.css
• Personalizaciones y código específco
  – style.css, custom.css,…
1Kb css grid

                               ¡NO FUNCIONA!




http://1kbgrid.com/
1Kb css grid
• Enfocado únicamente a disposición de
  elementos en retícula.
• Retícula de 12 columnas, 60px ancho
  con espaciado de 20px (personalizable)
• Ancho total: 960px
1Kb css grid
<div class="row">                                    .grid_1 { width:60px; }
     <div class="column   grid_4"> </div>            .grid_2 { width:140px; }
     <div class="column   grid_4"> </div>            .grid_3 { width:220px; }
     <div class="column   grid_4"> </div>            .grid_4 { width:300px; }
                                                     .grid_5 { width:380px; }
</div>
                                                     .grid_6 { width:460px; }
<div class="row“>
                                                     .grid_7 { width:540px; }
     <div class="column   grid_8"> </div>
                                                     .grid_8 { width:620px; }
     <div class="column   grid_4"> </div>            .grid_9 { width:700px; }
</div>                                               .grid_10 { width:780px; }
<div class="row">                                    .grid_11 { width:860px; }
     <div class="column   grid_2">   </div>          .grid_12 { width:940px; }
     <div class="column   grid_4">   </div>          .column {
     <div class="column   grid_3">   </div>          margin: 0 10px;
     <div class="column   grid_3">   </div>          overflow: hidden;
</div>                                               float: left;
                                                     display: inline;
                                                     }
                                                     .row {
                                                     width: 960px;
                                                     margin: 0 auto;
                                                     overflow: hidden;
                                                     }
                                                     .row .row {
                                                     margin: 0 -10px;
                                                     width: auto;
                                                     display: inline-block;
                                              html   }
                                                                                 css completo
960 grid system




http://960.gs/
960 grid system
• Proporciona sistema de retículas mucho
  más completo.
• Retículas base:
  – 12 columnas (60px ancho/20px espaciado)
  – 16 columnas (40px ancho/20px espaciado)
  – 24 columnas (30px ancho/10px espaciado)
• Ancho fijo total: 960px (obviamente)
960 grid system
           <div class="grid_12">
                <p>940</p>
           </div>
           <!-- end .grid_12 -->
           <div class="clear"></div>
           <div class="grid_1“>
                <p>60</p>
           </div>
           <!-- end .grid_1 -->
           <div class="grid_11">
                <p>860</p>
           </div>
           <!-- end .grid_11 -->
           <div class="clear"></div>
           <div class="grid_2">
                <p>140</p>
           </div>
           <!-- end .grid_2 -->
           <div class="grid_10">
                <p>780</p>
           </div>
           <!-- end .grid_10 -->
                                       html
960 grid system
• Incorpora: reset CSS, estilos
  tipográficos y soporte para idiomas RTL
• Incluye plantillas de diseño
• Extras:
  – Personalizable: http://grids.heroku.com/
  – Retícula fluida:
    http://www.designinfluences.com/fluid960gs/
  – Diseño adaptativa: http://adapt.960.gs/
960 grid system




          EJEMPLO
          Diseño realizado sobre
          una plantilla para
          Fireworks de retícula de
          960.gs (12 columnas)
960 grid system




          960 grider bookmark
          http://peol.github.com/960gridder/
blueprint




http://blueprintcss.org/
blueprint
• Sistema de retícula completo y versátil.
• Retícula base de 24 columnas (30px
  ancho/10px espaciado)
• Ancho fijo total: 950px
• Incorpora: reset CSS, estilos para
  tipografías, formularios e impresión
• También, soporte para idiomas RTL
blueprint
blueprint
• Gran cantidad de plugins y extensiones
  (botones, tabs, retícula fluida,…)
• Plantillas gráficas para diseñar sobre la
  retícula
• Gemas para Rails
• Más información y recursos:
  – https://github.com/joshuaclayton/blueprint-
    css/wiki
foundation




http://foundation.zurb.com/
foundation
• Sistema de retícula completo,
  adaptativo, móvil y muy flexible
• Retícula base de 12 columnas (fluidas,
  fijas, combinables,…)
• Ancho máximo y mínimo configurable
• Nomenclatura muy sencilla y natural
• Incluye: formularios, botones, elementos
  de interfaz, sliders, modales,…
foundation




Retícula adaptativa
       Anchos de
   1024px y 600px
foundation
foundation
   Retícula adaptativa
      Sólida retícula base,
        adaptativa y móvil

Elementos de interfaz
Botones, formularios, tabs,
sliders, tooltips, modales…
         DOCUMENTACIÓN
       Sencilla y completa

                    EXTRA
             Gemas para
    Conpass/SASS y Rails
foundation
   Retícula adaptativa
      Sólida retícula base,
        adaptativa y móvil

Elementos de interfaz
Botones, formularios, tabs,
sliders, tooltips, modales…
         DOCUMENTACIÓN
       Sencilla y completa

                    EXTRA
             Gemas para
    Conpass/SASS y Rails
foundation
   Retícula adaptativa
      Sólida retícula base,
         adaptativay móvil

Elementos de interfaz
Botones, formularios, tabs,
sliders, tooltips, modales…
         DOCUMENTACIÓN
       Sencilla y completa

                    EXTRA
             Gemas para
    Conpass/SASS y Rails
bootstrap




http://twitter.github.com/bootstrap/
bootstrap
• Sistema de retícula completo,
  adaptativo, móvil y muy flexible
• Retícula base de 12 columnas (60px
  ancho/20px espaciado)
• Ancho fijo total: 940px
• Construido y personalizable con LESS
  (variables, mixins, etc.)
bootstrap
• Incluye: tipografías, retículas adaptativas y
  móviles, formularios, botones, elementos
  de interfaz,… EL MÁS COMPLETO!
• Multitud de plugins jQuery: sliders,
  modales, tooltips, tabs,…
• Extra:
  – Skins para Bootstrap: http://bootswatch.com/
  – Themes ($): http://wrapbootstrap.com/
bootstrap
bootstrap
bootstrap
bootstrap
bootstrap
bootstrap




                  BOOTStrap fireworks
 http://www.extendingfireworks.com/?p=133
             http://bootstrapfireworks.com/
comparativa
comparativa
                                      PLANTILLAS   Estilos    Estilos
             retícula   TIPOGRAFIAs                                      PLUGINS   gemas
                                        diseño     FORMS     IMPRESIÓN

BOOTSTRAP                                                                    
F0UNDATION                                                                    
BLUEPRINT                                                                    
  960 GS                                                                       
 1KB GRID     
Entonces, ¿cuál elijo?
Entonces, ¿cuál elijo?
• No hay frameworks mejores ni peores;
  sino el que mejor se adapta a tu proyecto:
  – ¿Qué tamaño va a tener el proyecto?
  – ¿Necesitas integrarlo en Rails o SASS?
  – ¿Quieres componentes ya listos para usar o
    únicamente una retícula?
• Personalmente, eligiría 960.gs,
  Foundation o Bootstrap (personalizado)
¿preguntas?
Muchas gracias




Luis Miguel Martín
    @lmmartin

Más contenido relacionado

PDF
Introducción a los Frameworks CSS
PDF
Sass: CSS con Superpoderes
PDF
Introducción CSS
PDF
Semana 3 Introduccion CSS
PDF
Web2 Quiensomos
PDF
Cap06
PPTX
Pre-procesadores CSS. SASS
PDF
Html+css 2013
Introducción a los Frameworks CSS
Sass: CSS con Superpoderes
Introducción CSS
Semana 3 Introduccion CSS
Web2 Quiensomos
Cap06
Pre-procesadores CSS. SASS
Html+css 2013

La actualidad más candente (13)

PDF
Desarrollo Web: HTML + Bootstrap
PDF
Taller maquetacion web
PDF
Bootstrap, un framework CSS
PDF
Intro a Sass
PDF
Bootstrap menues, contenedores y formularios
PDF
Ria 03-html5-css3
PPT
Elementos de html5 y css3
PPT
Introducción a HTML5 y CSS3 - ArtMedia 2011
PPT
crossmedia 03: css
PDF
Seminario html5
PPTX
HTML5, CSS3, Jquery y Boostrap
PDF
Tarea presentaciones en linea
Desarrollo Web: HTML + Bootstrap
Taller maquetacion web
Bootstrap, un framework CSS
Intro a Sass
Bootstrap menues, contenedores y formularios
Ria 03-html5-css3
Elementos de html5 y css3
Introducción a HTML5 y CSS3 - ArtMedia 2011
crossmedia 03: css
Seminario html5
HTML5, CSS3, Jquery y Boostrap
Tarea presentaciones en linea
Publicidad

Destacado (20)

PPT
Edcamp Chile 2013: People & Places
DOC
Proyecto de innovacion jose luis gonzalez herrera
PPS
Cortando jamon1
PDF
Cloud marketing ¿Que pueden hacer las tecnologías cloud por el Marketing?
PPTX
PPTX
Corriente alterna Mario Ponce
PPTX
Powerpoint 1er informe sociales.
PPTX
Practica 12 paso_a_paso aylin ortiz
PPTX
04 movil julioizique_8sep_11-12
DOCX
Exposicion mañana
PPTX
Aspectos para ensamblar una pc
ODP
Verbo 1ª conjugación: cantar (regular)
PDF
Agatha christie diez negritos
PPTX
Minimplantes para cierre de espacios paper
PPTX
Diapositiva recomendaciones para administrar e imbertir en internet
PPT
Gabriela moros ambiental
PPTX
0. presentacion del modulo
PPT
Diapositivas genetutor 2013
DOCX
Microsoft access 2010
PPTX
Clásicos del cine
Edcamp Chile 2013: People & Places
Proyecto de innovacion jose luis gonzalez herrera
Cortando jamon1
Cloud marketing ¿Que pueden hacer las tecnologías cloud por el Marketing?
Corriente alterna Mario Ponce
Powerpoint 1er informe sociales.
Practica 12 paso_a_paso aylin ortiz
04 movil julioizique_8sep_11-12
Exposicion mañana
Aspectos para ensamblar una pc
Verbo 1ª conjugación: cantar (regular)
Agatha christie diez negritos
Minimplantes para cierre de espacios paper
Diapositiva recomendaciones para administrar e imbertir en internet
Gabriela moros ambiental
0. presentacion del modulo
Diapositivas genetutor 2013
Microsoft access 2010
Clásicos del cine
Publicidad

Similar a Frameworks CSS (20)

PDF
CSS - Arquitectura Escalable y Modular
PPTX
PPT
Accesibilidad práctica con HTML5, CSS3 y WAI-ARIA
PDF
Bootstrap 3.
PDF
Programacion web
PPTX
Introducción a Foundation 5
PPTX
Introducción a Foundation 5
PPTX
Desarrollo de aplicaciones con HTML5
PDF
Estándares Web con Chico UI
PDF
Estilos en React con styled-components
PPT
Sesion01
PDF
Semana 3 Maquetación CSS
PPTX
LayeRs Dyv
PPTX
HTML5, CSS3, Responsive Design
PPTX
Hojas de estilo en cascada
PDF
Hojas de Estilo en Cascada - CSS
PDF
Html5 y otras yerbas
PPTX
Html5 y otras yerbas
PPTX
HTML5 y CSS3 ¿Imprescindibles?
CSS - Arquitectura Escalable y Modular
Accesibilidad práctica con HTML5, CSS3 y WAI-ARIA
Bootstrap 3.
Programacion web
Introducción a Foundation 5
Introducción a Foundation 5
Desarrollo de aplicaciones con HTML5
Estándares Web con Chico UI
Estilos en React con styled-components
Sesion01
Semana 3 Maquetación CSS
LayeRs Dyv
HTML5, CSS3, Responsive Design
Hojas de estilo en cascada
Hojas de Estilo en Cascada - CSS
Html5 y otras yerbas
Html5 y otras yerbas
HTML5 y CSS3 ¿Imprescindibles?

Más de betabeers (20)

PPSX
IONIC, el framework para crear aplicaciones híbridas multiplataforma
PDF
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
PPTX
Blockchain: la revolución industrial de internet - Oscar Lage
PDF
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
PDF
Desarrollo web en Nodejs con Pillars por Chelo Quilón
PDF
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
PDF
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
PDF
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
PPTX
Introducción a scrum - Rodrigo Corral (Plain Concepts)
PPTX
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
PPTX
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
PDF
Elemental, querido Watson - Caso de Uso
PDF
Seguridad en tu startup
PPTX
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
PDF
Buenas prácticas para la optimización web
PDF
La magia de Scrum
PDF
Programador++ por @wottam
PPTX
RaspberryPi: Tu dispositivo para IoT
PDF
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
PDF
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015
IONIC, el framework para crear aplicaciones híbridas multiplataforma
Servicios de Gestión de Datos en la Nube - Jaime Balañá (NetApp)
Blockchain: la revolución industrial de internet - Oscar Lage
Cloud Learning: la formación del siglo XXI - Mónica Mediavilla
Desarrollo web en Nodejs con Pillars por Chelo Quilón
La línea recta hacia el éxito - Jon Torrado - Betabeers Bilbao
6 errores a evitar si eres una startup móvil y quieres evolucionar tu app
Dev ops.continuous delivery - Ibon Landa (Plain Concepts)
Introducción a scrum - Rodrigo Corral (Plain Concepts)
Gestión de proyectos y consorcios internacionales - Iñigo Cañadas (GFI)
Software de gestión Open Source - Odoo - Bakartxo Aristegi (Aizean)
Elemental, querido Watson - Caso de Uso
Seguridad en tu startup
Spark Java: Aplicaciones web ligeras y rápidas con Java, por Fran Paredes.
Buenas prácticas para la optimización web
La magia de Scrum
Programador++ por @wottam
RaspberryPi: Tu dispositivo para IoT
Introducción al Big Data - Xabier Tranche - VIII Betabeers Bilbao 27/02/2015
PAYTPV Plataforma Integral de Cobros - VIII Betabeers Bilbao 27/02/2015

Frameworks CSS

  • 1. Introducción a los FRAMEWORKS CSS Luis Miguel Martín I Betabeers Badajoz PCTEX - 20 Abril 2012
  • 2. Introducción a los FRAMEWORKS CSS Luis Miguel Martín
  • 4. ¿Quién soy? • Consultor, diseñador y desarrollador front-end especializado en crear sitios web centrados en el usuario • Más de 11 años experiencia en diversos aspectos del desarrollo web • Fundamentalista de los estándares web
  • 6. Introducción • Problemática del desarrollo con CSS • ¿Qué es un Framework CSS? • Ventajas e Inconvenientes • Panorámica de Frameworks CSS • Comparativa • Entonces, ¿cuál elijo?
  • 8. Problemática del desarrollo CSS • Es lento: – Diseño distinto en cada proyecto – Preparación y optimización de gráficos – Carácter artesano • Reutilización de código anterior • Se dedica mucho tiempo a tareas infructuosas (depurar para IE, extensiones propietarias,....)
  • 9. Problemática del desarrollo CSS • No existen normas a la hora de programar en CSS (nomenclaturas, identación,...) • Dificultad con código de terceros (incluso, dentro de un mismo equipo) • El programador “puro” no sabe CSS: – NO es un lenguaje de programación • …
  • 10. ¿qué es un framework css?
  • 11. ¿Qué es un Framework CSS? “Un conjunto de herramientas, librerías, convenciones y buenas prácticas que abstraen tareas repetitivas y rutinarias en elementos genéricos que pueden reutilizarse.” JEFF CROFT http://www.alistapart.com/articles/frameworksfordesigners/
  • 12. ¿Y CUÁL ES SU OBJETIVO? “Que el desarrollador o diseñador se enfoque en las tareas que son exclusivas de un determinado proyecto, en lugar de reinventar la rueda una y otra vez.” JEFF CROFT http://www.alistapart.com/articles/frameworksfordesigners/
  • 14. Ventajas • Aumentan la productividad • Código más consistente y estructurado • Testeo y depuración minimizada • Facilidad de mantenimiento • Facilita el trabajo en equipo • Agilizan la repetición de procesos • Otras: preprocesado en servidor (LESS/SASS), integración en CMS,...
  • 15. Inconvenientes • Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno” • ¿Más lento que partir de cero? • ¿Restricciones de diseño?
  • 16. Inconvenientes • Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno” • ¿Más lento que partir de cero? • ¿Restricciones de diseño?
  • 17. Inconvenientes • Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
  • 18. CURVA DE APRENDIZAJE • La mayoría de los frameworks tienen una curva sencilla. • Al aportar una base común documentada facilita la incorporación de nuevos miembros al equipo. • Incluirlo en la metodología de trabajo mejora el proceso de desarrollo y disminuye el tiempo de aprendizaje.
  • 19. Inconvenientes • Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
  • 20. EXCESO DE CÓDIGO HTML Y CSS • ¿Es crítico para tu proyecto? • Emplea sólo lo que necesites • Comprime. Minimiza. Une. – Compresión HTTP – Minimiza JS y CSS: Eliminar espacios en blanco, saltos de carro, identaciones,… – Combina archivos CSS y JS – Otros: caché, CDN,…
  • 21. Inconvenientes • Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
  • 22. CÓDIGO NO SEMÁNTICO • DIV y SPAN no tienen significado semántico (son neutrales) The global structure of an HTML document http://www.w3.org/TR/html401/struct/global.html#h-7.5.4
  • 23. CÓDIGO NO SEMÁNTICO DIV + ID/CLASS = valor semántico nulo Etiq. HTML5 = valor semántico alto <div id="header"> <header> ... ... </div> </header> <div id="nav"> <nav> ... ... </div> </nav> <div class="article"> <article> ... ... </div> </article> <div id="footer"> <footer> ... ... </div> </footer>
  • 24. CÓDIGO NO SEMÁNTICO LA SEMÁNTICA ESTÁ AQUÍ <etiqueta class="tomate queso">Merendola</etiqueta> No aquí La semántica web no incluye CSS
  • 25. Inconvenientes • Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
  • 26. CÓDIGO “AJENO” • Podemos vivir con ello ;-) • Un framework es una herramienta. Hay que estudiarla y comprenderla para obtener resultados.
  • 27. Inconvenientes • Curva de aprendizaje • Exceso de código HTML y CSS • Código y clases no semánticas • Código “ajeno”
  • 29. Panorámica de frameworks css • ¡¡Existe una enorme variedad!! • Hablaremos de 1 Kb CSS Grid, 960.gs, Blueprint, Foundation (Zurb) y Bootstrap (Twitter) • Algunos admiten plugins y extensiones para hacerlos más versátiles (responsive design, por ejemplo) o incorporar funcionalidades
  • 30. ¿qué nos permiten hacer? • Resetear estilos para normalizar las propiedades básicas de los elementos a fin de eliminar diferencias de visualización entre navegadores. – reset.css • Realizar una gestión global de las tipografías que se usarán en la página. – text.css
  • 31. ¿qué nos permiten hacer? • Maquetar un diseño de forma óptima y compatible con todos los navegadores. – layout.css, grid.css,… • Estilos específicos para impresión – print.css • Personalizaciones y código específco – style.css, custom.css,…
  • 32. 1Kb css grid ¡NO FUNCIONA! http://1kbgrid.com/
  • 33. 1Kb css grid • Enfocado únicamente a disposición de elementos en retícula. • Retícula de 12 columnas, 60px ancho con espaciado de 20px (personalizable) • Ancho total: 960px
  • 34. 1Kb css grid <div class="row"> .grid_1 { width:60px; } <div class="column grid_4"> </div> .grid_2 { width:140px; } <div class="column grid_4"> </div> .grid_3 { width:220px; } <div class="column grid_4"> </div> .grid_4 { width:300px; } .grid_5 { width:380px; } </div> .grid_6 { width:460px; } <div class="row“> .grid_7 { width:540px; } <div class="column grid_8"> </div> .grid_8 { width:620px; } <div class="column grid_4"> </div> .grid_9 { width:700px; } </div> .grid_10 { width:780px; } <div class="row"> .grid_11 { width:860px; } <div class="column grid_2"> </div> .grid_12 { width:940px; } <div class="column grid_4"> </div> .column { <div class="column grid_3"> </div> margin: 0 10px; <div class="column grid_3"> </div> overflow: hidden; </div> float: left; display: inline; } .row { width: 960px; margin: 0 auto; overflow: hidden; } .row .row { margin: 0 -10px; width: auto; display: inline-block; html } css completo
  • 36. 960 grid system • Proporciona sistema de retículas mucho más completo. • Retículas base: – 12 columnas (60px ancho/20px espaciado) – 16 columnas (40px ancho/20px espaciado) – 24 columnas (30px ancho/10px espaciado) • Ancho fijo total: 960px (obviamente)
  • 37. 960 grid system <div class="grid_12"> <p>940</p> </div> <!-- end .grid_12 --> <div class="clear"></div> <div class="grid_1“> <p>60</p> </div> <!-- end .grid_1 --> <div class="grid_11"> <p>860</p> </div> <!-- end .grid_11 --> <div class="clear"></div> <div class="grid_2"> <p>140</p> </div> <!-- end .grid_2 --> <div class="grid_10"> <p>780</p> </div> <!-- end .grid_10 --> html
  • 38. 960 grid system • Incorpora: reset CSS, estilos tipográficos y soporte para idiomas RTL • Incluye plantillas de diseño • Extras: – Personalizable: http://grids.heroku.com/ – Retícula fluida: http://www.designinfluences.com/fluid960gs/ – Diseño adaptativa: http://adapt.960.gs/
  • 39. 960 grid system EJEMPLO Diseño realizado sobre una plantilla para Fireworks de retícula de 960.gs (12 columnas)
  • 40. 960 grid system 960 grider bookmark http://peol.github.com/960gridder/
  • 42. blueprint • Sistema de retícula completo y versátil. • Retícula base de 24 columnas (30px ancho/10px espaciado) • Ancho fijo total: 950px • Incorpora: reset CSS, estilos para tipografías, formularios e impresión • También, soporte para idiomas RTL
  • 44. blueprint • Gran cantidad de plugins y extensiones (botones, tabs, retícula fluida,…) • Plantillas gráficas para diseñar sobre la retícula • Gemas para Rails • Más información y recursos: – https://github.com/joshuaclayton/blueprint- css/wiki
  • 46. foundation • Sistema de retícula completo, adaptativo, móvil y muy flexible • Retícula base de 12 columnas (fluidas, fijas, combinables,…) • Ancho máximo y mínimo configurable • Nomenclatura muy sencilla y natural • Incluye: formularios, botones, elementos de interfaz, sliders, modales,…
  • 47. foundation Retícula adaptativa Anchos de 1024px y 600px
  • 49. foundation Retícula adaptativa Sólida retícula base, adaptativa y móvil Elementos de interfaz Botones, formularios, tabs, sliders, tooltips, modales… DOCUMENTACIÓN Sencilla y completa EXTRA Gemas para Conpass/SASS y Rails
  • 50. foundation Retícula adaptativa Sólida retícula base, adaptativa y móvil Elementos de interfaz Botones, formularios, tabs, sliders, tooltips, modales… DOCUMENTACIÓN Sencilla y completa EXTRA Gemas para Conpass/SASS y Rails
  • 51. foundation Retícula adaptativa Sólida retícula base, adaptativay móvil Elementos de interfaz Botones, formularios, tabs, sliders, tooltips, modales… DOCUMENTACIÓN Sencilla y completa EXTRA Gemas para Conpass/SASS y Rails
  • 53. bootstrap • Sistema de retícula completo, adaptativo, móvil y muy flexible • Retícula base de 12 columnas (60px ancho/20px espaciado) • Ancho fijo total: 940px • Construido y personalizable con LESS (variables, mixins, etc.)
  • 54. bootstrap • Incluye: tipografías, retículas adaptativas y móviles, formularios, botones, elementos de interfaz,… EL MÁS COMPLETO! • Multitud de plugins jQuery: sliders, modales, tooltips, tabs,… • Extra: – Skins para Bootstrap: http://bootswatch.com/ – Themes ($): http://wrapbootstrap.com/
  • 60. bootstrap BOOTStrap fireworks http://www.extendingfireworks.com/?p=133 http://bootstrapfireworks.com/
  • 62. comparativa PLANTILLAS Estilos Estilos retícula TIPOGRAFIAs PLUGINS gemas diseño FORMS IMPRESIÓN BOOTSTRAP        F0UNDATION       BLUEPRINT        960 GS      1KB GRID 
  • 64. Entonces, ¿cuál elijo? • No hay frameworks mejores ni peores; sino el que mejor se adapta a tu proyecto: – ¿Qué tamaño va a tener el proyecto? – ¿Necesitas integrarlo en Rails o SASS? – ¿Quieres componentes ya listos para usar o únicamente una retícula? • Personalmente, eligiría 960.gs, Foundation o Bootstrap (personalizado)
  • 66. Muchas gracias Luis Miguel Martín @lmmartin