Bajo el epígrafe de diseño visual se incluyen propiedades referidas a la forma en que podemos controlar como se muestra un elemento, como aparecerá una imagen en relación a otro elemento, el posicionamiento de un elemento respecto a su posición habitual o con una posición fija dentro de la página, la determinación de la visibilidad de un elemento y el orden en el que se mostrarán las capas si estas se superponen, la creación de recortes para mostrar la información y cómo mostrarla cuando supera el espacio asignado.

Cómo se muestran los elementos

Ya hemos visto que hay elementos en bloque y en línea y que su forma de construir el cuadro contenedor difiere bastante. Mediante el uso de CSS podemos indicarle al navegador que debe mostrar un elemento creando un tipo de cuadro distinto al que le correspondería por su naturaleza.

Propiedad: display

Valores: aunque podríamos considerar otros recogidos en la especificación vamos a tener en cuenta sólo inline y block para intercambiar la forma de presentación de las dos principales disposiciones.

Ejemplo 1

Si utilizo el selector span para marcar una palabra de una frase y aplicarle un estilo lo normal es que ese estilo genere un cuadro de elemento en línea ya que esa es la presentación predeterminada para los fragmentos de texto. A continuación se repite este mismo texto aplicándole la propiedad display:block a la palabra presentación.

Resultado

Si utilizo el selector span para marcar una palabra de una frase y aplicarle un estilo lo normal es que ese estilo genere un cuadro de elemento en línea ya que esa es la presentación predeterminada para los fragmentos de texto. A continuación se repite este mismo texto aplicándole la propiedad display:block a la palabra presentación.

Ejemplo 2

En el segundo ejemplo marcaremos los párrafos con display:inline

Este es el segundo párrafo. Ahora repetimos los dos párrafos correspondientes a este ejemplo y aparecerán uno a continuación de otro como si no hubiese salto de párrafo.

Resultado

En el segundo ejemplo marcaremos el segundo párrafo con display:inline

Este es el segundo párrafo. Ahora repetimos los dos párrafos correspondientes a este ejemplo y aparecerán uno a continuación de otro como si no hubiese salto de párrafo.

 

Posición flotante

Se trata de una propiedad que encuentra su principal aplicación en las imágenes, aunque también nos permitirá situar elementos textuales y conseguir interesantes efectos de inclusión, especialmente si utilizamos como complemento los fondos.

Propiedad: float

Valores: left hará flotar el elemento afectado en la zona izquierda, right en la derecha y none impedirá la flotación haciendo que el elemento se muestre en la posición que le corresponde en el flujo de texto.

Ejemplos: En el ejemplo que se muestra se han creado dos identificadores a los que se les ha aplicado la propidedad float y algunas más de fondos, márgenes y rellenos para que su presentación visual tenga "aire" entre las diferentes zonas. Ver ejemplo

Zonas de flotación prohibidas

Si no nos interesa que a un determinado elemento se le añadan zonas flotantes podemos indicarlo mediante una propiedad específica

Propiedad: clear

Valores: left impedirá la flotación de un elemento a la izquierda del que lleva la propiedad, right hará lo propio a la derecha y both afectará a ambos lados.

Ejemplos: Se repite el ejemplo anterior pero se ha evitado la flotación de la zona a la que habíamos llamado mancheta. Ver ejemplo

Antes de continuar recordemos cual es el proceso habitual de generación de páginas en una ventana de ordenador. Es lo que se denomina flujo normal:

Vamos a comprobar con un ejercicio práctico lo que acabamos de comentar.

 

Para poder modificar la apariencia visual disponemos en CSS2 de la posibilidad de alterar el flujo normal especificando la posición de los elementos. Se trata de una propiedad muy potente y, aunque podemos aplicarla directamente sobre cualquier elemento, la recomendación sería que lo hicieras creando contenedores de bloque con la etiqueta <div> y especificando en ellos la posición.

Así pues, antes de ver los valores y los efectos de los mismos comentemos que Mozilla dispone de un icono que nos permite generar una capa, que no es más que un contenedor en bloque, con una simple pulsación sobre el icono que creará una capa vacía que se irá rellenando con el contenido que vayamos tecleando.

Si lo que pretendemos es crear una capa a partir de contenidos que ya estaban incluidos en la página basta con que los señalemos arrastrando y pulsemos el mismo icono para que se genere el contenedor para englobarlos a todos.

Cuando nos situemos sobre una capa el programa lo indicará haciendo aparecer sus límites y modificando el icono de las capas que aparecerá como . Podremos moverla de un sitio a otro si pulsamos sobre y arrastramos hasta la nueva posición o bien modificar su tamaño utilizanod los tiradores de los vértices y el centro de los lados.

Para modificar los estilos que afectan a la capa bastará con hacer doble clic sobre su interior y modificar o añadir las propiedades que necesitemos.

Posición de un elemento

Habrás comprobado que al crear las capas Mozilla ha introducido unos códigos de estilo. Como las hemos movido hasta situarlas en un punto concreto de la página ha utilizado el valor absolute que es uno de los posibles.

Propiedad: position

Valores: Esta propiedad indicará la forma de calcular la posición del elemento utilizando los valores absolute, relative y fixed, pero para completar el cálculo será necesario añadir luego las propiedades left, top, bottom o right indicando las distancias en cualquiera de las unidades admitidas.

Ejemplos:

Absolute. Ver ejemplo

Relative. La posición relativa se calcula a partir de la posición que ocuparía un elemento si siguiera el flujo normal. El resto de los elementos no se ajustan a la posición modificada por lo que puede ocurrir que el elemento se superponga sobre otros. Ver ejemplo

Fixed. Se trata de una variante de la posición absoluta cuyo efecto es similar al de las imágenes de fondo que se mantienen en una posición fija independientemente del desplazamiento de la página. Cuando se aplican a un medio impreso, formando algo similar a una cabecera, se repiten en todas las páginas. Ver ejemplo

Visibilidad

Como el nombre de la propiedad sugiere se refiere a la posibilidad de hacer que un elemento resulte visible o invisible. Su utilidad reside en la combinación con scripts que permitan mostrar u ocultar capas al realizar determinadas acciones con el ratón, pero este tema excede los contenidos de este curso, aunque puedes realizar alguna búsqueda sobre "javascript para mostrar y ocultar capas" para encontrar referencias.

Propiedad: visibility

Valores: Visible que es el valor por defecto o hidden para ocultarla

Ejemplos: Ver el código del ejemplo

Recortes

Tenemos la posibilidad de "encerrar" un elemento dentro de un recuadro con unas dimensiones determinadas. El resto del contenido quedará recortado y no se mostrará.

Propiedad: clip

Valores: Para definir la zona de recorte estableceremos las coordenadas de un rectángulo que hará de ventana visible del documento. Los valores que se aplican indican la posición de los bordes superior, derecho, inferior e izquierdo respecto al contenedor en el que se encuentra la imagen, y se anotan en la forma rect (valor, valor, valor, valor) Ver ejemplo

 

Desbordamiento

¿Qué ocurre cuando definimos unas dimensiones exactas para un elemento y el contenido del mismo desborda los límites establecidos? Dependerá de los valores que adopte la propiedad que controla el desbordamiento.

Propiedad: overflow

Valores: Si no se especifica valor de overflow los navegadores utilizarán visible como valor por defecto. Los valores posibles son:

Ver ejemplo

Alineamiento vertical

Es una propiedad que tiene su principal aplicación para las imágenes, cosa que ya se podía hacer con HTML, pero puede aplicarse a cualquier elemento en línea.

Propiedad: vertical-align

Valores y ejemplos:

Se utiliza la imagen para mostrar el efecto de cada valor

Apariencia del cursor

El navegador modifica de forma automática el ratón en función de la posición sobre los elementos de la página, pero también podemos especificarlo mediante estilos-

Propiedad: cursor

Valores y ejemplos: Pasando el ratón sobre cada uno de los valores verás cambiar el cursor de acuerdo a cada uno de ellos: crosshair, default, pointer, move, e-resize, ne-resize, nw-resize, n-resize, se-resize, sw-resize, s-resize, w-resize, text, wait, help.

Apilar capas

Además de poder colocar las capas en la posición que se desee, también se puede decidir el orden en el que se irán apilando, de forma que unas zonas se superpongan a otras. Esta propiedad sólo puede aplicarse a capas que tengan establecido el atributo position.

Propiedad: z-index

Valor: Se aplican valores numéricos, de forma que un valor más alto indica que el elemento está por encima de los demás que tengan valor más bajo o que no tengan establecida propiedad de profundidad

Ejemplo:

<div id="azul" style="position:relative; background-color:#0066CC; border: thin solid #003366; width:220px; height:200px; z-index:1">

<div id="naranja" style="position:absolute; margin-left:40px; margin-top: 40px; background-color:#FFdd77; border: thin solid #ffaa66; width:340px; height:170px; z-index:2"></div>
</div>