Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

CSS basico

CSS (Hojas de Estilo en Cascada) es el código que usas para dar estilo a tu página web. CSS Básico te lleva a través de lo que tú necesitas para empezar. Contestaremos preguntas tal: ¿Como hago mi texto rojo o negro?, ¿Como hago que mi contenido se muestre en tal y tal lugar de la pantalla? Como decoro mi página web con imágenes de fondo y colores?

Entonces que es CSS, realmente?

Como HTML, CSS no es realmente un lenguaje de programación. Es un lenguaje de hojas de estilo, es decir, te permite aplicar estilos de manera selectiva a elementos en documentos HTML. Por ejemplo, para seleccionar todos los elementos de párrafo en una página HTML y volver el texto dentro de ellos de color rojo, has de escribir este CSS:

p {
  color: red;
}

Vamos a probarlo: pega estas tres líneas de CSS en un nuevo archivo en tu editor de texto, y guarda este archivo como style.css en tu directorio estilos.

Pero aun debemos aplicar el CSS a tu documento HTML, de otra manera el estilo CSS no cambiará cómo tu navegador muestra el documento HTML. (Si no has seguido nuestro proyecto, lee Trabajando con los archivos y HTML básico para averiguar qué necesitas hacer primero.)

  1. Abre tu archivo index.html y pegue la siguiente línea en algún lugar dentro del head, es decir, entre las etiquetas <head> y </head>:
    <link href="styles/style.css" rel="stylesheet" type="text/css">
  2. Guarda el archivo index.html y cárgalo en tu navegador. Debes ver algo como esto:

A mozilla logo and some paragraphs. The paragraph text has been styled red by our css.Si tu texto del parrafo ahora es rojo, ¡Felicitaciones, ya has escrito tu primer CSS de forma exitosa!

Anatomía de una regla CSS

Observemos al CSS de arriba, un poco más a detalle:

partes de una declaracion de css

La estructura completa es llamada regla predeterminada (pero a menudo "regla" para abreviar). Nota también los nombres de las partes individuales:

Selector
El elemento HTML en el que comienza la regla. esta selecciona el(los) elemento(s) a dar estilo (en este caso, los elementos p ). Para dar estilo a un elemento diferente, solo cambia el selector.
Declaración
Una sola regla como color: red; especifica a cuál de las propiedades del elemento quieres dar estilo.
Propiedades
Maneras en las cuales puedes dar estilo a un elemento HTML. (En este caso, color es una propiedad del elemento p.) En CSS, seleccionas que propiedad quieres afectar en tu regla.
Valor de la propiedad
A la derecha de la propiedad, después de los dos puntos (:), tenemos el valor de la propiedad, para elegir una de las muchas posibles apariencias para una propiedad determinada (hay muchos valores para color además de red).

Nota las otras partes importantes de la sintaxis:

  • Cada una de las reglas (aparte del selector) deben estar encapsulada entre corchetes ({}).
  • Dentro de cada declaración, debes usar los dos puntos (:) para separar la propiedad de su valor.
  • Dentro de cada regla, debes usar el punto y coma (;) para separar una declaración de la siguiente.

Asi que para modificar varios valores de propiedad a la vez, solo necesitas escribirlos separados por punto y coma (;), así:

p {
  color: red;
  width: 500px;
  border: 1px solid black;
}

Seleccionando varios elementos

También puedes seleccionar varios elementos y aplicar una sola regla a todos ellos. Incluye varios selectores separados por comas(,). Por ejemplo:

p,li,h1 {
  color: red;
}

Diferentes tipos de selector

Existen muchos tipos diferentes de selectores. Antes, solo vimos los selectores de elementos, los cuales seleccionan todos los elementos de un tipo dado en los documentos HTML. Sin embargo podemos hacer selecciones más específicas que esas. Enseguida están algunos de los tipos de selectores más comunes:

Nombre del selector Que selecciona? Ejemplo
Selector de elemento (llamado algunas veces selector de etiqueta o tipo) Todos los elementos HTML del tipo especificado. p
Selecciona <p>
Selector de identificación (ID) El elemento en la página con el ID especificado  (en una página HTML dada, solo se permite un unico elemento por ID). #my-id
Selecciona <p id="my-id"> y <a id="my-id">
Selector de Clase Los elementos en la página con la clase especificada (una clase puede aparecer varias veces en una página). .my-class
Selecciona <p class="my-class"> y <a class="my-class">
Selector de atributo Los elementos en una página con el atributo especificado. img[src]
Selecciona <img src="myimage.png"> pero no <img>
Selector de Pseudo-clase Los elementos especificados, pero solo cuando esté en el estado especificado, por ejemplo cuando el puntero esté sobre él. a:hover
Selecciona <a>, pero solo cuando el puntero esté sobre el enlace.

Existen muchos más selectores para explorar, y podrás encontrar una lista más detallada en nuestra guia de Selectores.

Fuentes y texto

Ahora que hemos explorado lo básico de CSS, empecemos por añadir información y algunas reglas más a nuestro archivo style.css para que nuestro ejemplo se vea bonito. Primero, haremos que nuestras fuentes y texto luzcan un poco mejor.

  1. Antes que nada, regresa y busca las fuentes de Google Fonts que guardaste en un lugar seguro. Agrega el elemento <link ... > en algún lugar del head de tu archivo index.html  (de nuevo, en cualquier lugar entre las etiquetas  <head> y </head>). Se debe verse algo así:
    <link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>
  2. Luego, borra la regla existente en tu archivo style.css. Fue una buena prueba, pero el texto en rojo en realidad no se ve muy bien.
  3. Agrega en su lugar las siguientes líneas, reemplazando la línea placeholder con la actual línea font-family que obtuvo  de Google Fonts (solamente quiere decir que font-family es la fuente que deseas usar en tu texto.) Esta regla selecciona primero una fuente base global para usar en toda la página (ya que <html> es el elemento primario de toda la página, y todos los elemento adentro heredan el  font-sizefont-family):
    1. html {
        font-size: 10px; /* px quiere decir 'pixels': la base del tamaño de fuente es ahora de 1o pixeles*/
        font-family: placeholder: Este debe ser el resto del resultado que obtuviste de Google fonts
      }

      Nota: He añadido un comentario para explicar que  significa "px". Todo lo que está en un documento de CSS entre  /* y */ es un comentario en CSS, el cual el navegador descarta cuando carga el código. Este es un espacio donde  puedes escribir notas utiles sobre lo que estas haciendo.

  4. Ahora escojamos el tamaño de fuente para los elementos que contienen texto dentro del cuerpo del HTML (<h1>, <li>, y <p>). También centramos el texto de nuestro título, escogemos un ancho de línea y espaciado entre letras en el contenido del texto para hacerlo un poco mas legible:
    h1 {
      font-size: 60px;
      text-align: center;
    }
    
    p, li {
      font-size: 16px;    
      line-height: 2;
      letter-spacing: 1px;
    }

Puedes ajustar estos valores en px para lograr que tu diseño luzca como desees, pero por lo general tu diseño debe verse así:

a mozilla logo and some paragraphs. a sans-serif font has been set, the font sizes, line height and letter spacing are adjusted, and the main page heading has been centered

Cajas, cajas, todo se trata de cajas

Una cosa que notarás sobre la escritura de CSS es que trata mucho sobre cajas — ajustando su tamaño, color, posición, etc. Puedes pensar en la mayoría de los elementos HTML de tu página como cajas apiladas una sobre la otra.

a big stack of boxes or crates sat on top of one another

No es de extrañar que, el diseño de CSS este basado principalmente en el modelo de caja. Cada uno de los bloques que instala espacio en tu página tiene propiedades como estas:

  • relleno(padding), el espacio alrededor del contenido (ej: alrededor del texto de un párrafo)
  • marco(border), la línea que se encuentra fuera del relleno
  • margen(margin), el espacio fuera del elemento que lo separa de los demás.

three boxes sat inside one another. From outside to in they are labelled margin, border and padding

En esta sección también usamos:

  • width (ancho del elemento)
  • background-color, el color de fondo del contenido y del relleno
  • color, el color del contenido del elemento (generalmente texto)
  • text-shadow: coloca una sombra difuminada en el texto dentro del elemento
  • display: selecciona el modo de visualización para el elemento (no te preocupes de esto por ahora)

Bien, ¡iniciemos y agregamos más CSS a nuestra página! Sigue añadiendo estas reglas nuevas al final de la página, y no temas experimentar cambiando los valores para ver como resulta.

Cambiando el color de la página

html {
  background-color: #00539F;
}

Esta regla asigna un color de fondo a la página entera. Puedes cambiar el código de color por cualquiera como el que elegiste usar en tu proyecto.

Ordenando el Cuerpo

body {
  width: 600px;
  margin: 0 auto;
  background-color: #FF9500;
  padding: 0 20px 20px 20px;
  border: 5px solid black;
}

Ahora el elemento body. Éste tiene varias declaraciones, así que revisemos una por una:

  • width: 600px; — esto hará que el cuerpo siempre tenga 600 pixeles de ancho.
  • margin: 0 auto; — Cuando seleccionas dos valores dentro de propiedades como margin o padding, el primer valor afectara los lados superior (top) e inferior (bottom) (en este caso haciéndolo en 0), y el segundo valor los lados izquierda (left) y derecha (right) (aquí, auto es un valor especial que divide el espacio disponible entre derecha e izquierda). Puedes esar esta propiedad con uno, dos, tres o cuatro valores como se explica  aqui.
  • background-color: #FF9500; — como antes, éste selecciona el color de fondo de un elemento. He usado un naranja rojizo para el  body en contraste con el azul oscuro de el elemento html. Sigue y experimenta. Siéntete libre de usar white o cualquiera que sea de tu agrado.
  • padding: 0 20px 20px 20px; — tenemos 4 valores puestos en el relleno, para dar un poco de espacio alrededor del contenido. Esta vez no pondremos relleno en la parte de arriba del body, 20 pixeles a la izquierda, abajo y derecha. Los valores se ponen: arribar, derecha, abajo e izquierda, en ese orden.
  • border: 5px solid black; — éste simplemente coloca un borde de 5 pixeles de ancho, continuo y de color negro alrededor del body.

Posicionando y dando estilo a nuestro título de página principal

h1 {
  margin: 0;
  padding: 20px 0;    
  color: #00539F;
  text-shadow: 3px 3px 1px black;
}

Puedes haber notado que hay un hueco horrible en la parte superior del body. Esto sucede porque los navegadores vienen con estilos por defecto, ¡incluso cuando aún no se ha aplicado ningún archivo CSS! Esto podría parecer una mala idea, pero queremos que aun una página sin estilizar sea legible. Para deshacernos de este espacio eliminamos el estilo por defecto,  agregando margin: 0;.

Enseguida, hemos puesto un relleno arriba y abajo del título de 20 pixeles,  e hicimos que el color del texto sea el mismo que el color de fondo del html.

Una propiedad muy interesante que hemos usado aquí es text-shadow, Que aplica una sombra al texto del elemento. Sus cuatro valores son como sigue:

  • El primer valor en pixeles asigna el desplazamiento horizontal de la sombra desde el texto— que tan lejos la mueve a la derecha: un valor negativo la moverá a la izquierda.
  • El segundo valor en pixeles asigna el desplazamiento vertical de la sombra desde el texto — que tan lejos la mueve hacia abajo, en este ejemplo, un valor negativo la desplazaría hacia arriba.
  • El tercer valor en pixeles asigna radio de desenfoque de la sombra — un valor grande es igual a una sombra borrosa.
  • El cuarto valor asigna el color base de la sombra.

Una vez mas, trata de experimentar con diferentes valores para ver como resulta.

Centrando la imagen

img {
  display: block;
  margin: 0 auto;
}

Finalmente, centraremos la imagen para hacer que luzca mejor. Podemos usar nuevamente el truco del margin: 0 auto que usamos antes para el body, pero tenemos que hacer algo más. El elemento body es un elemento en nivel de bloque(block-level), lo que significa que tomara espacio en la pagina y que puede tener otros valores de espacio aplicables como margen. Las imágenes, por otra parte, son elementos inline, lo que quiere decir que no puedes aplicarles margenes, debemos dar a la imagen un comportamiento de block-level usando display: block;.

Nota: No te preocupes si aun no entiendes display: block; y la diferencia entre block-level e inline. Lo entenderás en tanto estudies CSS a profundidad. Puedes encontrar mas en cuanto a los diferentes valores disponibles para display en display reference page.

Conclusión

Si has seguido las instrucciones de esta publicacion, deberías terminar con una página que luce algo así (también puedes ver nuestra versión aquí):

a mozilla logo, centered, and a header and paragraphs. It now looks nicely styled, with a blue background for the whole page and orange background for the centered main content strip.

Si te atoraste, puedes comparar tu trabajo con nuestro código del ejemplo finalizado en Github.

Aquí, solo hemos arañado la superficie de CSS. si quieres encontrar más, puedes ir a nuestra página de aprendizaje de CSS.

Etiquetas y colaboradores del documento

 Colaboradores en esta página: montygabe, mamptecnocrata, juanqui, whitman
 Última actualización por: montygabe,