Plaza Botero

Medellín, Colombia

Estatua de Botero

Batalla de Flores del Carnaval

Barranquilla, Colombia

Carnaval de Barranquilla

Parque Nacional de Killarney

Killarney, Irlanda

Parque Nacional de Killarney

Bogotá de noche

Bogotá, Colombia

Bogotá de noche

Cliffs of Moher

The Burren, Irlanda

Cliffs of Moher

Ajís

El Quindío, Colombia

Ajís

En la cima

Anillo de Kerry, Irlanda

En la cima

Puesta de Sol en Puerto Sherry

El Puerto de Santa María, Cádiz, España

Puesta de Sol en Puerto Sherry

La Candelaria

Bogotá, Colombia

La Candelaria

Poulnabrone Dolmen

The Burren, Irlanda

Poulnabrone Dolmen

Monasterio de Monserrate

Bogotá, Colombia

Monasterio de Monserrate

Duomo

Milán, Italia

Duomo

Acechando...

Sibiu, Rumanía

Acechando...

Gap of Dunloe

Killarney, Irlanda

Gap of Dunloe

El río Támesis y el Big Ben

Londres, Reino Unido

El río Támesis y el Big Ben

Río Liffey

Dublín, Irlanda

Río Liffey
  • Una semana sin escribir en Twitter... cosas de la acumulación de trabajo... 10 hrs ago
  • Esperando a las 1:30am para una reunión virtual con España... desventajas de la diferencia horaria... 1 week ago
  • Anda, si ya tengo 100 followers en Twitter :-) 1 week ago
  • Empezando una mañana de domingo de trabajo en casa... pero antes, a desayunar algo... 1 week ago
  • Mañana de sabado trabajando... y luego a comer a Andres Carne de Res con algunos amigos.... 1 week ago

[+] Ver más

“Zebreado” con CSS

Martes, 20 de Septiembre de 2005
Esta entrada pertenecía a mi antiguo blog AC Log, que desde el 16 de abril de 2008 ha sido fusionado con Tempus Fugit.

Había visto antes varias soluciones para mostrar código fuente “zebreado” (alternando el color de fondo en cada linea) en las webs, pero ninguna me convencía del todo, más que nada porque se hacía uso de demasiado codigo HTML, usando, por ejemplo, diferentes clases CSS en cada linea de una tabla o en los elementos de una lista.
Así que se me ocurrió intentar conseguir lo mismo utlizando solo CSS, y aquí teneis el resultado.

Para utilizar este método, teneis que seguir los siguientes pasos:

  1. Crear una imagen de 1px de ancho y 32px (el doble de la altura de linea). Los 16px superiores los rellenareis de un color y los 16px inferiores de otro. (La que yo uso es esta: bg-code.png)
  2. (Re)Establecer los atributos CSS de la etiqueta <code> de la siguiente manera:
    code {
      display: block;
      white-space: pre;
      font-family: "Courier New", Courier, mono;
      font-size: 11px;
      line-height: 16px;
      background-image: url(bg-code.png);
      padding-left: 4px;
      overflow: auto;
    }
  3. Cada vez que vayais a poner algún codigo fuente en vuestra web, solo tendreis que englobarlo entre las etiquetas <code> y </code>

Si bien esa es la solución más semánticamente correcta ya que utiliza la etiqueta <code>, en muchos CMS (p.ej. WordPress) tendremos problemas con la misma, debido a que cuando escribimos algo los saltos de linea de texto (\n) son automáticamente transformados en saltos de linea HTML (<br />)..
La solución (en WordPress) pasa por utilizar la etiqueta <pre> en vez de <code>, y crear una clase CSS asociada, que usaremos para presentar código fuente por pantalla, de forma que quedaría así:

pre.code {
  display: block;
  white-space: pre;
  font-family: "Courier New", Courier, mono;
  font-size: 11px;
  line-height: 16px;
  background-image: url(bg-code.png);
  padding-left: 4px;
  overflow: auto;
}

Comentar aparte, que si quereis cambiar la altura de linea (line-height), lógicamente tendreis que modificar también la imagen de fondo estableciendo el alto al doble del la altura de linea. Por ejemplo, para un line-height: 14px;, creareis una imagen de 28px de alto.

.

7 comentarios


  1. Fernando comentó:

    Que buen tip! Combinándolo con un “colorizador” de código ha de quedar estupendo!


  2. Juglar :: Trucos breves con CSS :: July :: 2005 comentó:

    […] Imágenes: LITERARYMOOSE.INFO: AntiDeveloper Gallery (with shadows) LITERARYMOOSE.INFO: Image Preload via Head Objects LITERARYMOOSE.INFO: Technicolor Darkroom Preloaded CSS Rollovers - redmelon.net AC Log: Zebreado con CSS […]


  3. McLarenX comentó:

    Hola, copiado tu forma de modificar la etiqueta <code> pero no me funciona (en Wordpress). Lo he intentado con pre.code pero sigue saliendo igual, vamos, como si no leyera el nuevo estilo CSS que creo. Alguna idea más?


  4. IoZ comentó:

    McLarenX,
    ¿Que versión de Wordpress utilizas?
    ¿Usas el editor de texto enriquecido?
    ¿Has probado a borrar la cache del navegador para forzar la recarga de la CSS?


  5. McLarenX comentó:

    Hola IoZ, gracias por contestar tan rápido.
    Utilizo la versión 2.1.3 de Wordpress
    Utilizo el editor de texto enriquecido, pero he puesto las etiquetas y desde la pestaña “Codigo” (como es lógico).
    He probado a borrar la cache, incluso lo he mirado desde otro navegador y otro ordenador y nada… me sale igual que si pongo <code>


  6. IoZ comentó:

    McLarenX,
    Pues así en frío no se cual podrá ser el problema.
    Esta noche si tengo un hueco hago unas pruebas en una versión de Wordpress igual que la tuya y te digo algo.

    Salu2


  7. McLarenX comentó:

    Muchísimas gracias IoZ :D

Deje un comentario