Desarrollo de Aplicaciones Web

Práctica 4: CSS (1)

1. Objetivos

2. Recursos

¿Cómo se escribe una regla en CSS? ¿Qué propiedades y valores existen en CSS? ¿Cómo se selecciona un elemento de una página web para aplicarle una regla de CSS?

¿Cómo puedo saber que el código CSS que he escrito es correcto?

¿Cómo se representan los colores en CSS? Para trabajar con los colores necesitas conocer la codificación RGB (red, green, blue):

¿Qué combinaciones de colores son correctas? Los colores armónicos son aquellos que funcionan bien juntos, es decir, que producen un esquema de color atractivo a la vista. Algunas páginas donde puedes encontrar combinaciones de colores armónicos:

¿Existen plantillas de CSS que pueda emplear en mi sitio web? Existen multitud de sitios web donde se pueden encontrar plantillas gratuitas y de pago. Algunos sitios que ofrecen plantillas gratuitas son:

¿Existe alguna herramienta que me pueda ayudar a escribir el código CSS?

¿Cómo se maqueta con CSS?

¿Cómo se maqueta un formulario con CSS?

¿Cómo se maqueta una tabla con CSS?

¿Existe alguna herramienta que me pueda ayudar a escribir el código CSS necesario para maquetar una página web?

3. ¿Qué tengo que hacer?

En esta práctica tienes que crear el estilo visual de las páginas web de la práctica anterior y del resto de páginas que harás en las próximas prácticas. Como mínimo, tienes que emplear las siguientes propiedades de CSS:

Además, define al menos un par clases para definir el estilo particular de algunos elementos, como por ejemplo, .anuncio para aplicarlo a un párrafo que define un anuncio o .conBorde para aplicarlo a aquellos elementos que tienen que aparecer con un borde.

En esta práctica debes realizar la maquetación (layout) de la página. Según el Diccionario de la Lengua Española31 de la Real Academia Española, maquetar es “Hacer la maqueta de una publicación que se va a imprimir”. Si buscamos maqueta, obtenemos varias acepciones y una de ellas dice “Boceto previo de la composición de un texto que se va a publicar, usado para determinar sus características definitivas”.

En el desarrollo de las páginas web, se entiende por maquetación a la acción de distribuir o posicionar los distintos elementos que queremos que aparezcan en una página web. En especial, haz una correcta maquetación de los controles de los formularios para que aparezcan alineados.

Intenta que el diseño sea fluido (evita trabajar con tamaños fijos) para que se adapte correctamente a distintas resoluciones de pantalla. Sin embargo, en esta práctica no debes realizar un diseño adaptativo (responsive design) de la página, eso lo harás en la siguiente práctica. No debes utilizar las media queries (el atributo media de HTML y la regla @media de CSS).

4. ¿Cómo lo hago?

Para definir el estilo visual tienes que emplear el lenguaje de estilos CSS. No tienes que crear un fichero distinto para cada página, sino que el mismo fichero lo utilizarás en todas las páginas, a no ser que existan algunas páginas con estilos visuales muy diferentes (por ejemplo, la página de inicio, la página principal y el resto de páginas).

Tienes varias formas de crear una hoja de estilo CSS:

  1. Crear una hoja CSS desde cero: esto lo podrás hacer cuando ya tengas un conocimiento amplio del lenguaje CSS.
  2. Tomar un CSS como “inspiración” para crear un CSS propio. En este caso, es una buena práctica citar al autor de la o de las hojas CSS en que te has basado, pero si existen grandes diferencias no es del todo necesario. La cita la puedes indicar mediante un comentario en la misma hoja CSS.
  3. Adaptar una hoja CSS a la estructura de tu página o, al revés, adaptar la estructura de tu página a una hoja CSS. Cuando usas directamente el CSS de otra persona, primero tienes que consultar si es posible hacerlo, es decir, si el autor de la hoja CSS te da permiso. Lo normal es que te pida (y si no lo hace, hazlo) que cites claramente al autor del CSS en la página web, pero a veces con un simple comentario en la misma hoja CSS puede ser suficiente.

Si quieres escribir directamente el código CSS, cualquier editor de texto sencillo como el Bloc de notas es suficiente. Sin embargo, puedes emplear un programa como Notepad++32, que posee algunas características que ayudan a escribir el código, como la sintaxis coloreada o la función de autocompletado (pulsa Ctrl+Espacio).

Si prefieres emplear una herramienta que te permita crear un CSS de forma visual, emplea EclipseStyle33, que evita tener que conocer las propiedades y valores de CSS.

También existen herramientas online, como CSS Generator34 y CSS Style Editor35 que permiten escribir un CSS sin conocer el nombre de las propiedades y valores.

Para indicar que se está usando un fichero CSS en una página web se emplea la etiqueta <link />. Es una misma página web se pueden indicar varios ficheros CSS que se combinan todos ellos o también se puede indicar de forma que definan estilos alternativos. Por ejemplo, en el siguiente código se define un estilo CSS que se debe emplear cuando se imprima una página web (print) y un estilo que se debe emplear en el resto de casos:

<link rel="stylesheet" type="text/css" href="home.css" /> 
<link rel="stylesheet" type="text/css" href="print.css" media="print" />

Para maquetar con CSS un formulario existen varias técnicas. Una sencilla consiste en definir un tamaño fijo para las etiquetas de los controles. Por ejemplo:

<!DOCTYPE html> 
<html lang="es"> 
<head> 
<meta charset="utf-8" /> 
<title>Formulario alineado</title> 
<style> 
fieldset {width: 300px; padding: 10px;} 
legend {font-weight: bold;} 
label {float: left; display: block; width: 100px;} 
input {float: none; display: inline;} 
.centrado {margin: 10px 100px;} 
</style> 
</head> 
<body> 
<form id="form1" action="" method="get"> 
<fieldset> 
<legend>Datos personales</legend> 
<label for="nombre">Nombre:</label> 
<input type="text" id="nombre" /> 
<br /> 
<label for="apellidos">Apellidos:</label> 
<input type="text" id="apellidos" /> 
<input type="submit" value="Enviar" class="centrado" /> 
</fieldset> 
</form> 
</body> 
</html>

Aunque en el ejemplo anterior se han escrito las reglas de CSS directamente en la página web con la etiqueta <style>, recuerda que lo correcto es escribirlas en un fichero separado y enlazarlo con la etiqueta <link />.

En la Figura 1 podemos observar como se visualiza esta página en Microsoft Internet Explorer 7:


PIC


Figura 1: Formulario de ejemplo


Sin embargo, un tamaño fijo no es la mejor opción. En How to structure an HTML form36 y Styling HTML forms37 se explican algunas técnicas básicas de maquetación de formularios.

5. Recomendaciones

El estilo que definas no debe ser muy simple (no vale con cambiar el color de fondo de la página y definir un estilo para el texto), pero tampoco es necesario que sea muy complejo. Con unas pocas reglas de CSS bien elegidas se puede lograr un estilo visual impactante.

En general, se recomienda que como mínimo se utilicen tres colores diferentes (y suele ser lo suficiente en la mayoría de los casos) y no más de seis.

En general, se recomienda que se utilicen dos tipos de letra (un tipo de letra para los títulos y otro para el contenido principal) y como máximo tres (un tipo de letra para contenido adicional, como puede ser una barra lateral).

Una mala práctica es definir múltiples clases (class) e identificadores (id). Siempre que sea posible, emplea selectores simples que hagan referencia a elementos de HTML.

Recuerda que hay propiedades que se heredan, por lo que no es necesario definirlas para todos los elementos, sino que si se define en un elemento padre, todos sus hijos la tomarán. Por ejemplo, para aplicar un mismo estilo de texto en toda una página web, lo más sencillo es definirlo en el elemento html o body.

Un fichero CSS puede llegar a tener cientos o incluso miles de líneas, por lo que pueden aparecer problemas importantes:

Para evitar estos problemas, es necesario organizar un fichero CSS de alguna forma. Cada uno tiene que desarrollar su estilo propio, con el que se sienta más a gusto. Algunas posibilidades son:

También existen algunas herramientas que te pueden ayudar a organizar un fichero CSS. Format CSS Code38 es una herramienta online que formatea el aspecto de un CSS: introduce saltos de línea, espacios en blanco, etc. CSS Optimizer39 es otra herramienta online que ayuda a reducir el tamaño de un fichero CSS al aplicar algunas transformaciones, como por ejemplo, cambiar el nombre de algunas propiedades y valores.

Utiliza los comentarios de CSS /**/ para separar las diferentes partes de un CSS y para desactivar ciertas propiedades cuando quieras realizar pruebas.

Y recuerda: evita la divitis y la spanmania.

1http://www.w3schools.com

2http://www.w3.org

3http://www.digilife.be/quickreferences/QRC/Cascading%20Style%20Sheets%201.0.pdf

4http://www.addedbytes.com/cheat-sheets/css-cheat-sheet/

5http://www.webtutoriales.com/tutoriales/html-css/hoja-referencia-css.26.html

6http://www.smashingmagazine.com/2010/05/13/css-2-1-and-css-3-help-cheat-sheets-pdf/

7http://jigsaw.w3.org/css-validator/

8http://es.wikipedia.org/wiki/Colores_HTML

9http://es.wikipedia.org/wiki/Anexo:Colores_HTML

10http://www.webusable.com/coloursMix.htm

11http://www.colorcombos.com/

12http://www.freecsstemplates.org/

13http://www.free-css-templates.com/

14http://notepad-plus.sourceforge.net/es/site.htm

15http://www.sublimetext.com/

16http://www.greeneclipse.com/eclipsestyle.html

17http://cssmate.com/csseditor.htm

18http://www.effectivetranslations.com/stupidtables/everything_es.html

19http://www.456bereastreet.com/lab/developing_with_web_standards/csslayout/2-col/

20http://css-discuss.incutio.com/?page=CssLayouts

21http://www.glish.com/css/

22http://www.maxdesign.com.au/presentation/page_layouts/

23http://www.websiteoptimization.com/speed/tweak/forms/

24http://www.informit.com/articles/article.aspx?p=456144

25http://www.alistapart.com/stories/practicalcss/

26http://jeffhowden.com/code/css/forms/

27http://icant.co.uk/csstablegallery/

28http://csslayoutgenerator.com/

29http://csscreator.com/version2/pagelayout.php

30http://www.cssportal.com/layout-generator/

31http://www.rae.es/

32http://notepad-plus.sourceforge.net/es/site.htm

33http://www.greeneclipse.com/eclipsestyle.html

34http://csscreator.com/tools/cssgenerate

35http://www.cssportal.com/css-style-editor/

36https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/How_to_structure_an_HTML_form

37https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Forms/Styling_HTML_forms

38http://www.cssportal.com/format-css/

39http://www.cssportal.com/css-optimize/