) será posicionado debajo del anterior. (Gauchat, 2012)
Ilustración 1 Representación visual de una página web mostrada con estilos por defecto. (Gauchat, 2012)
Las hojas de estilo son un mecanismo para separar el formato de representación y presentación del contenido. Eso se consigue asociando atributos de presentación a cada una de las etiquetas de HTML o a subclases de éstas. Por ejemplo, si deseamos que todos los párrafos de nuestro documento (definidos por
) tengan el fondo rojo y el texto en amarillo usaremos la siguiente definición: <STYLE TYPE=“text/css”> P {color: red; background:yellow;}
Para indicar qué estilos debemos usar en una página, disponemos de la etiqueta STYLE, que nos permite especificarlos in situ, y de otra etiqueta LINK, que nos permite indicar un fichero externo que contendrá nuestros estilos. La etiqueta STYLE tiene que estar en la cabecera de la página. Dispondremos de un parámetro TYPE que nos permite indicar qué sintaxis usaremos para definir los estilos, que en nuestro caso será text/css. La etiqueta LINK, para poder definir una hoja de estilos externa, tiene la siguiente apariencia:
De hecho, es muy recomendable el uso de la etiqueta LINK para la definición de las hojas de estilo asociadas a una página, ya que de ese modo facilitaremos el mantenimiento, al concentrarse en un único fichero todos los estilos de un sitio web en lugar de estar replicados en cada una de las páginas. (Mateu, 2004)
Como aclaramos anteriormente, la nueva especificación de HTML (HTML5) no describe solo los nuevos elementos HTML o el lenguaje mismo. La web demanda diseño y funcionalidad, no solo organización estructural o definición de secciones. En este nuevo paradigma, HTML se presenta junto con CSS y Javascript como un único instrumento integrado.
Las hojas de estilo son un mecanismo para separar el formato de representación y presentación del contenido.
La función de cada tecnología ya ha sido explicada en capítulos previos, así como los nuevos elementos HTML responsables de la estructura del documento. Ahora es momento de analizar CSS, su relevancia dentro de esta unión estratégica y su influencia sobre la presentación de documentos HTML.
Para indicar qué estilos debemos usar en una página, disponemos de la etiqueta STYLE, que nos permite especificarlos in situ, y de otra etiqueta LINK, que nos permite indicar un fichero externo que contendrá nuestros estilos. La etiqueta STYLE tiene que estar en la cabecera de la página. Dispondremos de un parámetro TYPE que nos permite indicar qué sintaxis usaremos para definir los estilos, que en nuestro caso será text/css.
Selectores, atributos y valores Selectores CSS3 también incorpora nuevos selectores que ayudan a llegar a elementos difíciles de referenciar utilizando otras técnicas. Selector > Este selector referencia al elemento de la derecha cuando tiene el elemento de la izquierda como padre. Por ejemplo, div > p referenciará cada elemento
. Selector + Este selector referencia elementos que son hermanos. La referencia apuntará al elemento de la derecha cuando es inmediatamente precedido por el de la izquierda. Por ejemplo, span + p afectará a los elementos
que son hermanos y están ubicados luego de un elemento <span>. Selector ~ Este selector es similar al anterior, pero en este caso el elemento de la derecha no tiene que estar ubicado inmediatamente después del de la izquierda.
Atributos El atributo id es como un nombre que identifica al elemento. Esto significa que el valor de este atributo no puede ser duplicado. Este nombre debe ser único en todo el documento. Para referenciar un elemento en particular usando el atributo id desde nuestro archivo CSS la regla debe ser declarada con el símbolo # al frente del valor que usamos para identificar el elemento: #texto1 { font-size: 20px }
Este texto es el título del documento Mi texto
10
La mayoría del tiempo, en lugar de utilizar el atributo id para propósitos de estilos es mejor utilizar class. Este atributo es más flexible y puede ser asignado a cada elemento HTML en el documento que comparte un diseño similar: .texto1 { font-size: 20px }
Para trabajar con el atributo class, debemos declarar la regla CSS con un punto antes del nombre. La ventaja de este método es que insertar el atributo class con el valor texto1 será suficiente para asignar estos estilos a cualquier elemento que queramos: (Gauchat, 2012)
Este texto es el título del documento Mi texto
Mi texto
Mi texto
11
+ >
~
Selectores Ilustración 3 Selectores Mapa
12
13
Uso de selectores básicos (color de fondo, tipo de letra, tamaños, bordes, etc.)
Background-color Define el color de fondo de un determinado selector. Los valores que puede tener son:
Color: Definir un color de relleno. Transparent: Define el color de transparencia y es el valor inicial que Ɵ ene la propiedad Background-Color.
Inherit: Fuerza la herencia automática.
Ejemplo: BODY { BACKGROUND-COLOR: RGB(255, 255, 0); } También podríamos definirlo por códigos combinados en hexadecimal: BODY { BACKGROUND-COLOR: #FFFF00; }
14
Font-Family Es la propiedad CSS que específica el topo, o los tipos, de fuente que se le asignarán a un objeto, línea o bloque. Debido a que no todos los sistemas operativos cuentan con una gran variedad fuentes instaladas, esta propiedad ofrece muchas alternativas. Su formato es: FONT-FAMILY: TIPOLETRA1, TIPOLETRA2, TIPOLETRA3; Como se puede observar, es posible especificar uno o más tipos de letra mediante la separación por comas. Asimismo, hay que tener en cuenta que, si la fuente especificada tiene un conjunto de palabras, se tendrá que encerrar entre comillas simples o dobles, por ejemplo: FONT-FAMILY: "TIPO DE LETRA1", TIPOLETRA2, TIPOLETRA3 A continuación, tenemos las familias a las que pertenecen los tipos de letras que son adaptadas en la mayoría de los sistemas operativos:
FONT-FAMILY: ARIAL, HELVETICA, SANS-SERIF; FONT-FAMILY: ‘ARIAL BLACK’, GADGET, SANS-SERIF; FONT-FAMILY: ‘BOOKMAN OLD STYLE’, SERIF; FONT-FAMILY: ‘COMIC SANS MS’, CURSIVE; FONT-FAMILY: COURIER, MONOSPACE; FONT-FAMILY: ‘COURIER NEW’, COURIER, MONOSPACE; FONT-FAMILY: GARAMOND, SERIF; FONT-FAMILY: GEORGIA, SERIF; FONT-FAMILY: IMPACT, CHARCOAL, SANS-SERIF; FONT-FAMILY: ‘LUCIDA CONSOLE’, MONACO, MONOSPACE; FONT-FAMILY: ‘LUCIDA SANS UNICODE’, ‘LUCIDA GRANDE’, SANSSERIF; FONT-FAMILY: ‘MS SANS SERIF’, GENEVA, SANS-SERIF; FONT-FAMILY: ‘MS SERIF’, ‘NEW YORK’, SANS-SERIF; FONT-FAMILY: ‘PALATINO LINOTYPE’, ‘BOOK ANTIQUA’, PALATINO, SERIF; FONT-FAMILY: SYMBOL, SANS-SERIF; FONT-FAMILY: TAHOMA, GENEVA, SANS-SERIF; FONT-FAMILY: ‘TIMES NEW ROMAN’, TIMES, SERIF; FONT-FAMILY: ‘TREBUCHET MS’, HELVETICA, SANS-SERIF; FONT-FAMILY: VERDANA, GENEVA, SANS-SERIF; FONT-FAMILY: WEBDINGS, SANS-SERIF; FONT-FAMILY: WINGDINGS, ‘ZAPF DINGBATS’, SANS-SERIF;
15
Font-Size Es la propiedad CSS que específica el tamaño de letra de cualquier tipo textual que esté dentro del documento web. Su formato es: FONT-SIZE: TAMAÑO PORCENTAJE;
ABSOLUTO,
TAMAÑO
RELATIVO,
MEDIDA,
Donde:
Font-Size: Es el nombre de la propiedad que permite asignar un tamaño a un determinado selector, el cual normalmente es textual.
TAMAÑOABSOLUTO: Aquí se especifica el tamaño de letra, en forma absoluta, con las siguientes palabras claves: xx-small, x-small, small, medium, large, x-large, xx-large.
TAMAÑORELATIVO: Aquí se especifica el tamaño de letra, en forma relativa, con las siguientes palabras claves: larger, smaller, las cuales siempre tomarán un tamaño en referencia al elemento padre.
Medida: Aquí se especifica una medida exacta para el texto.
Porcentaje: Es el más recomendado para asignar los tamaños a los textos, ya que se adapta a las diferentes dimensiones que puede tener un documento web. (Remón, 2014)
16
Background-color
Font-Family
Selectores básicos
Font-size Ilustración 4 Selectores Básicos Mapa
17
18
19
(Remón, 2014)
20
21
Uso de selectores por clase y por identificador (class e id) (Contreras Martines Jonathan)
22
23
Referenciando con el atributo id El atributo id es como un nombre que identifica al elemento. Esto significa que el valor de este atributo no puede ser duplicado. Este nombre debe ser único en todo el documento. Para referenciar un elemento en particular usando el atributo id desde nuestro archivo CSS la regla debe ser declarada con el símbolo # al frente del valor que usamos para identificar el elemento: #texto1 { font-size: 20px }
24
La regla en el Listado 2-6 será aplicada al elemento HTML identificado con el atributo id=”texto1”. Ahora nuestro código HTML lucirá de esta manera:
Este texto es el título del documento Mi texto
El resultado de este procedimiento es que cada vez que hacemos una referencia usando el identificador texto1 en nuestro archivo CSS, el elemento con ese valor de id será modificado, pero el resto de los elementos
, o cualquier otro elemento en el mismo documento, no serán afectados. Esta es una forma extremadamente específica de referenciar un elemento y es normalmente utilizada para elementos más generales, como etiquetas estructurales. El atributo id y su especificidad es de hecho más apropiado para referencias en JavaScript, como veremos en próximos capítulos.
25
Referenciando con el atributo class La mayoría del tiempo, en lugar de utilizar el atributo id para propósitos de estilos es mejor utilizar class. Este atributo es más flexible y puede ser asignado a cada elemento HTML en el documento que comparte un diseño similar: .texto1 { font-size: 20px } Para trabajar con el atributo class, debemos declarar la regla CSS con un punto antes del nombre. La ventaja de este método es que insertar el atributo class con el valor texto1 será suficiente para asignar estos estilos a cualquier elemento que queramos:
Este texto es el título del documento
26
Mi texto
Mi texto
Mi texto
Los elementos
en las primeras dos líneas dentro del cuerpo del código en el tienen el atributo class con el valor texto1. Como dijimos previamente, la misma regla puede ser aplicada a diferentes elementos en el mismo documento. Por lo tanto, estos dos primeros elementos comparten la misma regla y ambos serán afectados por el estilo del Listado 2-8. El último elemento
conserva los estilos por defecto otorgados por el navegador.
La razón por la que debemos utilizar un punto delante del nombre de la regla es que es posible construir referencias más complejas. Por ejemplo, se puede utilizar el mismo valor para el atributo class en diferentes elementos, pero asignar diferentes estilos para cada tipo:
27
p.texto1 { font-size: 20px } En el Listado 2-10 creamos una regla que referencia la clase llamada texto1 pero solo para los elementos de tipo
. Si cualquier otro elemento tiene el mismo valor en su atributo class no será modificado por esta regla en particular.
Gauchat, J. (2012). El gran libro de HTML5, CSS3 y JavaScript (1st ed., pp. 3839). Barcelona: Juan Diego Gauchat.
28
Diseño responsivo
Introducción En las últimas décadas, el crecimiento y expansión de sistemas móviles y tabletas ha impactado en diversas áreas. Tal es el caso de la producción de sitios en Internet que busca métodos de innovación con soluciones efectivas para presentar los contenidos en dispositivos portátiles, considerando su diversificación y sus distintas formas de interacción. Siendo la web un proveedor de información compleja y extensa, la idea de innovar para lo nuevo se ha orientado a la creación del Diseño Web Adaptativo como una solución a la presentación del sitio en cualquier medio portátil. Las posibilidades y beneficios de este método han sido aceptadas y adoptadas por una gran mayoría de desarrolladores de páginas. Trabajar con proporciones
29
en lugar de pixeles, en el posicionamiento de los componentes del sitio, marca un cambio sustantivo para su despliegue en áreas cambiantes o pantallas diversas.
Antecedentes Como un antecedente del Design Web Responsive, se encuentra la filosofía de Mejora progresiva, establecida por Steven Champeon en 2003. Este planteamiento, promueve la continua supervisión tecnológica de los sitios siguiendo la dinámica de crecimiento de los navegadores. Es decir, se promueve hacer mejoras técnicas cada vez que se presenten actualizaciones en los navegadores, garantizando que el sitio se mantenga técnicamente a la vanguardia. Con esta vigilancia continua, se aprovechan las posibilidades de las hojas de estilo, o Cascading Style Sheets (CSS), y el sitio se mantiene preparado para la implementación de nuevos estándares. En 2009, Ethan Marcone propone Fluid Grids. La propuesta complementa la producción de páginas con sistemas de estructuración para el diseño de sitios mediante la aplicación de una serie
30
de estilos en el archivo CSS, los cuales organizan los contenidos de una página. De esta manera, los estilos establecen un contenedor dividido mediante guías verticales y horizontales en los que se incorporan los elementos de diseño de la página, ofreciendo la posibilidad de que los elementos puedan salir del marco que los contiene, para originar otro tipo de sensaciones en la percepción del usuario. Luke Wroblewski, en 2009, propone Mobile First, concepto basado en el crecimiento exponencial de los sistemas portátiles frente a las computadoras. Recomienda que el diseño se oriente para ser desplegado en esos dispositivos, con el propósito de estar preparados al inminente cambio de equipos grandes a equipos portátiles para la consulta de sitios. Esta serie de reflexiones y propuestas son las que enmarcan el surgimiento, en 2010, del Responsive Web Design de Ethan Marcotte. Quién, basándose a su vez en los principios de Arquitecture Responsive, encuentra en el concepto: intercambio de información continuo y constructivo, la noción de que los espacios
31
y quienes los habitan deben influenciarse mutuamente. Traducido al ámbito de la tecnología; se trata de que el diseño de los contenidos y su espacio de presentación se encuentren intrínsicamente vinculados.
Descripción del Diseño Web Adaptativo Se describe como una técnica de diseño y desarrollo web que, mediante el uso de estructuras e imágenes fluidas, así como de media-queries en la hoja de estilo CSS, consigue adaptar el sitio web al entorno del usuario. Toma las mejores prácticas para aplicarlas en la construcción de sitios, logrando buena calidad en las aplicaciones. La idea es que un solo sitio sea no solo adaptable a las características del recurso, sino que llegue a ser adaptativo. El diseño de la información es variable y relativo, denominado fluido. La composición se presenta en forma dinámica, puesto que cada elemento se ajusta a las condiciones técnicas de despliegue. Para hacer un diseño web adaptativo se debe cumplir con los siguientes aspectos: 1) Diseño fluido con cuadrículas flexibles o fluid grids. 2) Media Queries. 3) Imágenes, objetos, videos o medios similares flexibles. 4) Fuentes tipográficas con valores relativos.
32
Características La técnica del diseño web adaptativo permite ajustar el contenido de los sitios web al ancho del área de despliegue de cada dispositivo a través de las siguientes soluciones: 1. El uso de un diseño fluido mediante cuadriculas flexibles o fluid grid, el cual se basa en proporciones y no en píxeles. Esto hace posible que el sitio web se visualice en distintas modalidades, según el dispositivo del que se trate. Por ejemplo, una etiqueta DIV podría asignar un ancho fijo de 1024 pixeles, mientras que en proporciones se definiría un ancho del 90 por ciento:
33
2. La utilización de Media Queries dependiendo de las características del dispositivo donde se consulte el sitio. Por ejemplo, una consulta que responde con un ancho máximo de 450 píxeles estaría dirigida a los navegadores móviles solamente, por lo que el CSS haría referencia a la siguiente condición: Las características que pueden ser consultadas por los Media Queries son: width, height, device-width, device-height, orientation, aspect-ratio, device-aspect-ratio, color, color-index, monochrome, resolution, scan, grid. Es importante tomar en cuenta que en general todos los navegadores modernos soportan el uso de Media Queries. Sin embargo, Internet Explorer 6, 7 y 8 no lo soportan. En esos casos se pueden utilizar soluciones basadas en librerías de JavaScript, como respond.js o modernizr. 3. Por ello, es aconsejable que se guarden en el tamaño más grande en que se mostrarán y su ancho máximo equivaldrá al 100 por ciento de su dimensión, considerando que el tiempo de carga de las mismas puede ser lento en dispositivos móviles.
34
img{ max-width: 100%; } object { max-width: 85%; } video { max-width: 50%; } 4. El tamaño de las fuentes tipográficas se establece en em2 en vez de píxeles; por lo tanto, su valor no es absoluto sino relativo y depende
35
directamente del elemento padre que lo contiene. Si éste último cambia, la fuente con tamaño en em también lo hará. h1 { font-size: 1.5em; text-align: left; color: #000099; }
Beneficios del Diseño Web Adaptativo La utilización de un diseño web adaptativo trae consigo varios beneficios, tanto para los usuarios como para los desarrolladores, entre los que destacan: Reducción de costos: Se logra gracias a que el código es menor y no se requieren versiones distintas para su despliegue en cada uno de los dispositivos conocidos. Eficiencia en la actualización: Se utiliza una sola plantilla para la producción de la página, por lo que resulta eficiente la modificación. Mejora en la usabilidad: La legibilidad y características de uso del sitio se ajustan automáticamente en cada dispositivo. Capacidad de adaptación de la interfaz: Al ser un sitio con fluidez, la información es jerarquizada para presentar lo esencial de los contenidos para la consulta del usuario.
36
Utilización de imágenes, videos y otros medios: Los recursos se redimensionan proporcionalmente, conservando una calidad óptima en pantalla. Tamaño relativo: Al estar basado en proporciones, es compatible con diferentes resoluciones y distintos dispositivos. Única dirección del sitio web (URL): La optimización de motores de búsqueda mejora, al aparecer en los resultados de búsqueda una sola URL.
37
Martínez, E., & Ceballos, C. (2013). DISEÑO WEB ADAPTATIVO O RESPONSIVO. Revista Digital Universitaria, 14(1), 3-7. Frameworks responsive
Como se suele decir, en vez de reinventar la rueda y programar nosotros todo el diseño responsive, podemos aprovechar algunos de los frameworks que existen en el mercado para este propósito. Nos ahorrarán muchísimo tiempo, partiremos de código ampliamente probado, y de unos diseños base de todos los elementos web bastante más bonitos que la que tendrían de forma nativa. Actualmente existen en el mercado una amplia variedad de este tipo frameworks responsive, algunos de los más utilizados son:
Bootstrap (http://getbootstrap.com/): Este framework es uno de los más populares del mercado, habiendo sido desarrollado por el equipo de Twitter. Bootstrap ha sido creado pensando en ofrecer la mejor experiencia de usuario tanto a usuarios de PC (¡IE7 incluido!), como a smartphones y tabletas. Utiliza un grid responsive de 12 columnas y trae integrado decenas de complementos, plugins de JavaScript, tipografía, controladores de formularios y mucho más. Además, utiliza el preprocesador de CSS LESS.
Foundation (http://foundation.zurb.com/): Junto con Bootstrap es uno de los frameworks más avanzados que existen en la actualidad. Ha sido desarrollado con SASS, un potente preprocesador de CSS que hace de Foundation un framework fácilmente personalizable. Además, saca partido de las nuevas tecnologías y funciona con IE8+.
Skeleton (http://getskeleton.com/): Skeleton es un boilerplate que ofrece un grid responsive basado en una resolución de 960px que se ajusta al tamaño de los dispositivos móviles. Tiene poco peso e incluye una colección de archivos CSS y JS para facilitarnos el diseño de nuestra web.
38
HTML5 Boilerplate (http://html5boilerplate.com/): Al igual que los demás nos ofrece un set de utilidades para construir nuestra web responsive de forma rápida y sencilla, con la ventaja de ser uno de los que menos ocupan.
39
Bootstrap Bootstrap es uno de los frameworks más populares y utilizados del mercado para la creación de páginas responsive, habiendo sido desarrollado por el equipo de Twitter. Entre los navegadores soportados se encuentran Chrome, Firefox, Opera, Safari e Internet Explorer a partir de la versión 8 (aunque en la versión 7 también funciona correctamente). Está preparado para funcionar tanto en navegadores de Pc y portátiles con cualquier tamaño de pantalla, así como para tablets y smartphones de tamaños mucho más reducidos. Para conseguir que una misma web se pueda visualizar correctamente en todos esos tamaños de pantalla ha diseñado un avanzado sistema de rejilla dividido en columnas para el posicionamiento de los elementos de nuestra web. Además, incorpora otras muchas utilidades y complementos (formularios, botones, barras de navegación, etc.) para simplificar el desarrollo de una web responsive.
40
Empleo del sistema de cuadriculas de Bootstrap Sistema de rejilla El sistema de rejilla de Bootstrap se basa en la creación o disposición del contenido de nuestra web dentro de rejillas flexibles, las cuales se escalarán al tamaño y posición adecuada de forma automática dependiendo del tamaño de la pantalla en la que se rendericen.
Elemento contenedor El sistema de rejilla tiene que ser utilizado dentro de uno de los dos elementos contenedores que provee Bootstrap: container ó container-fluid . Es importante tener en cuenta que estos elementos se utilizan como raíz de la rejilla y no se podrán anidar unos dentro de otros. Si lo que queremos es que el contenido de nuestra web aparezca centrado y con un ancho fijo entonces podemos utilizar la etiqueta .container , de la forma:
...
Por el contrario, si queremos que el contenido de nuestra web pueda ocupar todo el ancho disponible (hay que tener en mente todos los tamaños de pantalla, incluso las muy grandes), podemos usar la etiqueta .container-fluid :
...
En las siguientes imágenes se ejemplifica el resultado obtenido para un mismo ancho al aplicar los dos tipos de contenedores, container en el primer caso y container-fluid en el segundo. El comportamiento de estos elementos ante distintos tamaños de pantalla es el siguiente: el elemento "container-fluid" siempre se adapta al 100% del tamaño de la pantalla, mientras que el tipo "container" tiene un tamaño máximo, por lo que si el ancho de la pantalla es superior a este ancho el contenido aparecerá centrado, dejando un margen a cada lado, y si el ancho de la pantalla es igual o inferior al tamaño máximo del contenedor, entonces se adaptará al ancho disponible.
41
42
Funcionamiento del sistema de rejilla El sistema de rejilla está pensado para ayudarnos en la disposición de los contenidos de nuestra web y su adaptación a los diferentes tamaños de pantalla de forma automática. Para ello tenemos que poner el contenido dentro de celdas o columnas que irán dentro de filas. Cada fila se puede dividir hasta en 12 columnas, pero seremos nosotros los que definiremos el número de columnas deseado para cada tamaño de pantalla. A continuación, se detalla el funcionamiento de este sistema:
Las columnas irán agrupadas dentro de filas ( .row ). Las filas ( .row ) se deben colocar dentro de una etiqueta contenedora: .container (para ancho fijo) o .container-fluid (para poder ocupar todo el ancho), esto permitirá alinear las celdas y asignarles el espaciado correcto. El contenido se debe disponer dentro de columnas o celdas, las cuales deben de ser el único hijo posible de las filas ( .row ), las cuales, a su vez, serán el único hijo posible del contenedor ( .container o .container-fluid ). Al seguir este orden el sistema de rejilla funcionará correctamente, creando el espaciado interior y los márgenes apropiados dependiendo de las dimensiones de la pantalla. Cada fila se puede dividir hasta un máximo de 12 columnas, pero somos nosotros los que tendremos que definir el número de columnas en el que queremos dividir cada fila y su ancho para cada tamaño de pantalla. Por ejemplo: 3 columnas de igual ancho. Si el tamaño total de las columnas de una fila excede de 12 el tamaño sobrante se colocará en la siguiente fila. El tamaño de las columnas se especificará con clases css que Bootstrap define para cada tamaño de pantalla, por ejemplo .col-md-XX , donde XX es el tamaño de la columna, que podrá tomar valores entre 1 y 12.
43
En la siguiente tabla se muestra un resumen del sistema de rejilla de Bootstrap, su comportamiento según el tamaño del dispositivo y las clases CSS que nos permiten controlarlo: Pantalla
Dimensiones < 576 px
Prefijo de la clase .col-
Ancho del contenedor Ninguno (automático)
Tamaño extra pequeño Tamaño pequeño Tamaño medio Tamaño grande
≥ 576 px
.col-sm-
540px
≥ 768 px ≥ 992 px
.col-md.col-lg-
720px 960px
44
Tamaño grande
extra ≥ 1200 px
.col-xl-
1140px
Tabla 2 Resumen de sistema de rejilla
Es importante destacar que al definir estas clases no solo se aplican para ese tamaño de pantalla sino para los superiores también. Por ejemplo, al indicar el tamaño de las columnas con las clases para tablets (.col-sm-), también se aplicará para los tamaños de pantalla medianos y grandes (si no hubieran otras clases para estos tamaños que los sobreescribieran). Es decir, nos tenemos que fijar que en la tabla anterior el tamaño se indica con el símbolo de mayor o igual (≥) (o de menor para el caso de xs) a un tamaño dado, y por lo tanto se aplicará esa disposición a partir de ese tamaño, a no ser que se indique otra cosa. Bootstrap está diseñado pensando en los dispositivos móviles primero (o como ellos indican: siguiendo la estrategia mobile first). Por lo tanto, todos los tamaños y dimensiones están pensadas para los dispositivos móviles, y para tamaños más grandes lo que hacen es adaptar o escalar estos tamaños. Si nos fijamos en la tabla anterior podremos ver que para el tamaño extra pequeño el prefijo de la clase que se define es ".col-" (a diferencia de los demás que añaden un sufijo para el tamaño de pantalla). Cuando indiquemos el tamaño de las columnas usando esta clase se aplicará para todos los tamaños, a no ser, como ya hemos dicho, que se indique otra clase para otro tamaño mayor que defina otra disposición. A continuación, veremos diferentes formas de indicar el número de columnas que conforman cada fila, usando el sistema automático, especificando el ancho o bien usando un sistema mixto.
45
Columnas de ancho específico A continuación, se incluyen algunos ejemplos de uso del sistema de rejilla que nos ayudarán a comprender mejor su funcionamiento. Selección de tamaño de las columnas solo para pantallas medianas En el siguiente ejemplo se han creado 3 filas, la primera dividida en 2 columnas de tamaño desigual, la segunda en 3 columnas de igual tamaño y la tercera en 2 columnas también de igual tamaño.
.col-md-4
46
.col-md-4
.col-md-4
En la siguiente imagen se puede ver el resultado para pantallas de tamaño mediano (tamaños de md en adelante): .col-md-8
.col-md-4
.col-md-6
.col-md-4
.col-md-4
.col-md-4
.col-md-6
Para poder visualizar las columnas se ha añadido una clase CSS que establece color para el borde y el fondo de las cajas. Por defecto, ni la etiqueta DIV ni las etiquetas. col-* establecen apariencia (ni color de borde ni de fondo), solamente establecen la anchura, y por lo tanto al renderizar el código anterior tal cual las cajas se verán transparentes.
47
Dado que las columnas se han especificado únicamente mediante las clases .col-md-* esto creará estas divisiones solo para las pantallas medianas y grandes, pero no para los tamaños de pantalla más pequeños. En este último caso las columnas se ampliarán para ocupar todo el ancho y por lo tanto se mostrarán apiladas de la forma: .col-md-8 .col-md-4
.col-md-4
48
.col-md-4 .col-md-4
.col-md-6 .col-md-6
Selección de dos tamaños de columna: pequeño y mediano Si no queremos que las columnas se muestren apiladas para tamaños de pantalla pequeños podemos indicar también la disposición para esos casos mediante las clases .col-* además de las que ya teníamos con .col-md-* . Por ejemplo:
.col-12 .col-md-8
.col-6 .col-md-4
.col-6 .col-md-4
.col-6 .col-md-4
.col-6 .col-md-4
49
En la siguiente imagen se puede ver cómo quedaría el código de ejemplo para pantallas medianas y grandes (tamaños de md en adelante): .col-12.col-md-8
.col-6.col-md-4
.col-6
.col-6.col-md-4
.col-6.col-md-4
.col-6.col-md-4
.col-6
50
En el caso de pantallas pequeñas las columnas se verían de la forma: .col-12.col-md-8 .col-6.col-md-4 .col-6.col-md-4
.col-6.col-md-4
.col-6.col-md-4
.col-6
.col-6
Selección de tres tamaños: extra pequeño, pequeño y mediano. Si queremos tener un mayor control podemos especificar también el tamaño de las columnas para las pantallas tipo small con las clases .col-sm-* . Por ejemplo:
.col-12 .col-sm-6 .col-md-8
.col-6 .col-md-4
.col-6 .col-sm-4
.col-6 .col-sm-4
.col-6 .col-sm-4
A continuación, se incluye una previsualización de este código de ejemplo para pantallas medianas y grandes (tamaños md, lg y xl): .col-12.col-sm-6.col-md-8
.col-6.col-sm-4
.col-6.col-md-4
.col-6.col-sm-4
.col-6.col-sm-4
El mismo código, pero en pantallas tipo small (tamaño sm) se mostraría como:
51
.col-12.col-sm-6.col-md8 .col-6.col-sm-4
.col-6.col-md-4 .col-6.col-sm-4
.col-6.col-sm-4
Y en el caso de pantallas pequeñas se vería de la forma: .col-12.col-sm-6.col-md-8 .col-6.col-md-4
Además de los tres tamaños indicados en este último ejemplo para la primera columna (.col-12 .col-sm-6 .col-md-8 ) podríamos añadir también, si lo
52
necesitamos, el tamaño para pantallas grandes y extra grandes con col-lg y colxl-. Por ejemplo, podríamos haber definido la siguiente columna:
...
En resumen, podemos indicar para cada columna todos los tamaños que queramos de entre los disponibles (con .col-, .col-sm-, .col-md-, .col-lg- y .col-xl). Sin embargo, esto solo lo tendremos que hacer cuando necesitemos establecer un ancho de columna distinto para cada tamaño de pantalla. Si para todos los tamaños de pantalla necesitamos el mismo ancho entonces utilizaremos solamente la clase .col-. Es decir, no tendría sentido escribir algo como "col-6 col-sm-6 col-md-6 col-lg-6 col-xl-6", ya que se conseguiría el mismo efecto que si hubieramos puesto solamente "col-6". Por lo tanto, solo añadiremos más de una clase cuando necesitemos establecer anchos distintos entre esos tamaños, y además si solo vamos a diferenciar entre 2 tamaños solo será necesario usar 2 etiquetas. Por ejemplo, si queremos diferenciar solamente entre móvil y escritorio solamente tendríamos que añadir la clase .col- y la clase .col-md-.
53
Columnas de ancho automático A partir de la versión 4 de Bootstrap podemos utilizar las columnas de ancho automático, es decir, indicar únicamente el número de columnas que queremos y el sistema calculará automáticamente su anchura. Para esto podremos usar la clase " .col ", sin número de columnas ni tamaño de pantalla, por ejemplo:
Con este código obtendríamos un resultado similar al de la siguiente figura, donde en primer lugar se crea una fila con dos columnas de igual ancho, y a continuación se añade una segunda fila con tres columnas de igual ancho. 1 of 2 1 of 3
2 of 2 2 of 3
3 of 3
El número de columnas del ejemplo anterior se mantendrá para todos los tamaños de pantalla, adaptando el ancho de las columnas para cada uno de ellos. A esta clase podemos añadir el sufijo para establecer el tamaño de pantalla, por lo que disponemos de las clases .col, .col-sm, .col-md, .col-lg, .col-xl . En todos los casos estaremos indicando que queremos una columna de ancho automático desde el tamaño de pantalla indicado en adelante. Debemos de tener en cuenta que si indicamos algo como
el resultado que obtendríamos sería el mismo en todos los tamaños, una columna de ancho automático, equivalente a haber indicado únicamente
. Por lo tanto, el uso de estos sufijos solo se justicará cuando queramos una columna de ancho automático solamente de un tamaño en adelante, y que por lo tanto, para los tamaños inferiores se cree una columna que ocupe todo el ancho. Por ejemplo, veamos el siguiente código:
54
Estamos indicando que queremos una fila con tres columnas de ancho automático para los tamaños desde sm en adelante, y por lo tanto, para el tamaño extra pequeño estas tres columnas pasarán a ocupar todo el ancho, transformándose en tres filas completas.
55
Modo mixto Estas columnas de ancho automático se pueden mezclar en una misma fila con las columnas de ancho específico que hemos visto antes. La forma de calcular el ancho de cada columna será el siguiente: En primer lugar se calculará el tamaño de las columnas de ancho específico y a continuación se rellenará el espacio restante usando las columnas de ancho automático. Por ejemplo, a continuación vamos a definir dos filas mezclando ambos tipos de columnas:
1 of 3
2 of 3 (wider)
3 of 3
1 of 3 (wider)
2 of 3
3 of 3
Con lo que obtendríamos un resultado similar al de la siguiente figura: .1 of 3 1 of 3
2 of 3 (wider)
3 of 3 2 of 3
3 of 3
Como podemos ver en este ejemplo, los sistemas para de definir las columnas se pueden mezclar como queramos, por ejemplo, usando el de ancho fijo entre dos columnas de ancho automático, o estableciendo una columna de ancho específico al principio y después dos de ancho automático.
56
Ancho de columna variable Con Bootstrap 4 también se introdujeron las columnas de ancho variable, las cuales ocuparán el ancho justo que se necesite según el contenido de la columna. Para utilizarlas disponemos de las clases " .col-*-auto ", donde * puede ser culquiera de los sufijos de tamaño de pantalla que hemos visto antes sm, md, lg, xl, o ningún sufijo ( .col-auto ) para indicar todos los tamaños. Estas etiquetas, igual que las de ancho automático, se pueden mezclar con las de ancho específico, por ejemplo:
1 of 3
57
Variable width content
3 of 3
1 of 3
Variable width content
3 of 3
Con lo que obtendríamos un resultado similar al de la siguiente figura: 1 of 3 1 of 3
Variable width content
3 of 3 Variable width content
3 of 3
En el código anterior se ha usado la clase " .justify-content-md-center " para alinear el contenido dentro de una fila, estas etiquetas las veremos en la sección "Alineación". A continuación, vamos a ver otras utilidades del sistema de rejilla, como el anidamiento de columnas, o cómo forzar el cambio de fila.
58
Forzar el cambio de fila Mediante la clase .w-100 podemos forzar el cambio de fila cuando nosotros queramos:
.col-6 .col-sm-3
.col-6 .col-sm-3
.col-6 .col-sm-3
.col-6 .col-sm-3
59
Con lo que obtendríamos dos filas con dos columnas cada una: .col-6.col-sm-3
.col-6.col-sm-3
.col-6.col-sm-3
.col-6.col-sm-3
Esta clase también nos puede ser útil para forzar el cambio de fila solo para determinados tamaños de pantalla. Para esto tenemos que combinarla con otras clases de Bootstrap que nos permiten mostrar u ocultar elementos según el tamaño de pantalla. A continuación, se incluye un ejemplo:
.col-6 .col-sm-3
.col-6 .col-sm-3
.col-6 .col-sm-3
.col-6 .col-sm-3
Donde la clase " .d-none " significa que no se muestre ese elemento (para ningún tamaño), y la clase " .d-md-block " indica que se muestre a partir del tamaño de pantalla "md" en adelante. Por lo tanto, el campo div marcado con "w-100" permanecerá oculto para los tamaños extra pequeño y pequeño, y por lo tanto no se activará el cambio de fila para esos dos tamaños, pero sí para los tamaños desde "md" en adelante.
60
Anidamiento de columnas Una característica muy potente del sistema de rejilla es que se pueden anidar columnas dentro de otras columnas. Para esto solamente tenemos que crear una nueva fila dentro de una columna, y dentro de esta nueva fila podremos subdividirla usando también hasta 12 columnas. Por ejemplo, en el siguiente código se crea una primera fila con una columna de tamaño 9, dentro de la cual se añade una segunda fila con dos columnas:
Level 1: .col-sm-9
61
Level 2: .col-8 .col-sm-6
Level 2: .col-4 .col-sm-6
Al visualizar este código obtendríamos: Level 1: .col-sm-9 Level 2:.col-8.col-sm-6
Level 2:.col-4.col-sm-6
62
Espaciado entre columnas Es posible crear un espaciado entre las columnas o dicho de otra forma, mover o desplazar una columna hacia la derecha, añadiendo un offset inicial mediante las clases: .offset-* . Por ejemplo .offset-4 creará un espacio a la izquierda de la columna de tamaño 4 (como si se creara una columna oculta de tipo .col-4 ). En el siguiente código podemos ver un ejemplo más completo:
.col-md-4
.col-md-4 .offset-md-4
.col-md-3 .offset-md-3
.col-md-3 .offset-md-3
El cual se renderizaría de la forma: .col-md-4
.col-md-4.offset-md-4 .col-md-3.offset-md-3
.col-md-3.offset-md-3
.col-md-6.offset-md-3
Como se puede ver en el ejemplo anterior, también podemos especificar el offset según el tamaño de pantalla. Si usamos, por ejemplo, la clase " offset-4 " estaremos indicando que se cree un espacio de 4 para todos los tamaños de pantalla; mientras que con " offset-md- 4 " se creará este espacio a partir del tamaño de pantalla "md" en adelante. Si en algún caso necesitamos eliminar el offset podemos utilizar el tamaño cero (0). Por ejemplo, si especificamos un offset de 2 para tamaños pequeños y no queremos que dicho offset se aplique para pantallas medianas ni grandes tendríamos que hacer:
...
63
Márgenes Además de la clase offset también disponemos de las clases para crear márgenes de espacio variable tanto al lado izquierdo (con " .ml-auto ") como al lado derecho (con .mrauto ) de una columna. A continuación, se incluye un ejemplo:
.col-md-4
.col-md-4 .ml-auto
.col-md-3 .ml-md-auto
.col-md-3 .ml-md-auto
64
.col-auto .mr-auto
.col-auto
Con lo que obtendríamos el siguiente resultado: .col-md-4
.col-md-4-ml-auto .col-md-3.ml-md-auto
.col-auto-6.mr-auto
.col-md-3.ml-md-auto
.col-auto
65
Gallego, A. (2018). Manual de Bootstrap [Ebook] (1st ed., pp. 16-30). Antonio Javier Gallego. Retrieved from http://www.pdf-manual.es/programacionweb/css/177-bootstrap-4.html
66
CONCLUSIONES: CONTRERAS MARTÍNEZ JONATHAN En los últimos años la utilización de dispositivos móviles con navegadores incorporados ha tenido un gran auge, y con ello, se han incrementado también el número de internautas. Para este creciente sector, el diseño web adaptativo no solo ofrece soluciones, sino que abre un panorama de investigación tecnológica de gran relevancia para los desarrolladores y para los sistemas portátiles. Por ello, es que se necesitan de frameworks que permitan a las aplicaciones sean responsivas dependiendo del tipo de dispositivo.
Rivera Lauyola Victor Humberto Cada año se actualiza la forma de crear una página web, pero siempre la estructura seguirá siendo la misma. Las etiquetas atributos estilos pueden cambiar para mejorar la agilización de un HTML.
67
Conclusión General Se llega a la conclusión de la importancia de saber las estructura básica de un html además de las hojas de estilo para dar un estilo diferente a cada pagina y la forma en que se configura y como se utilizan las herramientas básicas.
Bibliografía Gauchat, J. D. (2012). El Gran libro de HTML5, CSS3 y Javascript. España: MARCOMBO. Mateu, C. (2004). Desarrollo de Aplicaciones Web. Barcelona: Fundació per a la Universitat Oberta de Catalunya. Remón, M. Á. (2014). Diseño web con HTML5 y CSS3. Perú: MACRO.
Glosario Entorno de trabajo o marco de trabajo es un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo de problemática particular que sirve como referencia, para enfrentar y resolver nuevos problemas de índole similar · 67
A Atributo Cualidad o característica propia de una persona o una cosa, especialmente algo que es parte esencial de su naturaleza. · 67
J E etiquetas son la base de este lenguaje de programación ya casi “ancestral”, pero que sigue siendo el trasfondo de muchos otros más avanzados. · 68
JavaScript Es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. Se define como orientado a objetos, basado en prototipos, imperativo, débilmente tipado y dinámico. · 25, 28, 34, 38, 67
F Framework
68
Related Documents
More Documents from "patriciaortiz"