Asier Marqués

Hablando sobre tecnologías web y otras cosas que me interesan
Archivado como CSS, Desarrollo Web

El dibujo inferior esta realizado integramente con código css sin usar imágenes, y es compatible con Firefox 2, IE7, IE6 y Opera 9. Aunque el autor dice que no lo ha hecho porque estaba aburrido y no tiene utilidad, yo lo he posteado porque creo que es uno de los ejercicios más complicados que he visto con éste lenguaje y he publicado también el código fuente en la parte extendida de éste post.

dibujo css


El código css

/* - - - - - - - - - - -*/
/* Cuadro */
/* - - - - - - - - - - -*/
div#cuadro {
 margin: auto;
 margin-top: 30px;
 border-top: 25px solid #f8e297;
 border-right: 25px solid #d1a662;
 border-left: 25px solid #f2d494;
 border-bottom: 25px solid #CEAA7A;
 background-color: #60dbfe;
 height: 400px;
 width: 800px;
 overflow: hidden;
 position: relative
}
/* - - - - - - - - - - -*/
/* Empezando Cielo */
/* - - - - - - - - - - -*/
div#cielo {
 position: absolute;
 z-index: 0;
 width: 800px;
 height: 215px
}
div#ct {background-color: #36d1fe; height: 125px}
div#cb {background-color: #52d8fe; height: 90px}
/* Arcoiris */
 div#arcoiris {
  width: 350px;
  position: relative;
  left: 161px;
  margin: 0;
  padding: 0;
  top: -22px
 }
div#arcoiris span {margin: 0; padding: 0; position: absolute}span#arco-rojo {font-size: 165em; color: #e9232a; top: -1906px; left: -237px}
 span#arco-naranja {font-size: 142em; color: #f57d2d; top: -1615px; left: -180px}
 span#arco-amarillo {font-size: 119em; color: #f3df37; top: -1322px; left: -125px}
 span#arco-verde {font-size: 96em; color: #4fa437; top: -1032px; left: -68px}
 span#arco-azul {font-size: 73em; color: #0568ad; top: -743px; left: -12px}
 span#arco-morado {font-size: 50em; color: #861e84; top: -455px; left: 45px}
 span#arco-cielo {font-size: 27em; color: #60dbfe; top: -170px; left: 102px}
/* Sol */
 div#sol {
  position: absolute;
  top: 0;
  left: 0;
 }
div#sol span {position: absolute}span#sol1 {font-size: 59em; color: #f5c520; top: -624px; left: 69px}
 span#sol2 {font-size: 47em; color: #f8d356; top: -473px; left: 99px}
 span#sol3 {font-size: 34em; color: #FADD7C; top: -308px; left: 132px}
/* Nubes */
  /* Nube 1 */
  div#nube1 {
  position: absolute;
  width: 100px;
  height: 120px;
  top: 0;
  left: 0
  }
div#nube1 span {position: absolute; color: #fff}span#nub1-1 {font-size: 39em; top: -460px; left: -70px}
  span#nub1-2 {font-size: 38em; top: -425px; left: -45px}
  span#nub1-3 {font-size: 30em; top: -300px; left: -60px}
  span#nub1-4 {font-size: 20em; top: -250px; left: 10px}
/* Nube 2 */
  div#nube2 {
  position: absolute;
  width: 172px;
  height: 123px;
  top: 26px;
  left: 590px
  }

div#nube2 span {position: absolute; color: #fff}

span#nub2-1 {font-size: 40em; top: -460px; left: -70px}
  span#nub2-2 {font-size: 28em; top: -345px; left: -55px}
  span#nub2-3 {font-size: 26em; top: -320px; left: 0px}
  span#nub2-4 {font-size: 32em; top: -365px; left: -115px}
  span#nub2-5 {font-size: 29em; top: -315px; left: 20px}
  span#nub2-6 {font-size: 25em; top: -245px; left: 10px}

/* Nube 3 */
  div#nube3 {
  position: absolute;
  width: 52px;
  z-index: 2;
  height: 33px;
  top: 249px;
  left: 172px
  }

div#nube3 span {position: absolute; color: #fff}

span#nub3-1 {font-size: 14em; top: -180px; left: 5px}
  span#nub3-2 {font-size: 10em; top: -130px; left: 30px}
  span#nub3-3 {font-size: 7em; top: -78px; left: 33px}
  span#nub3-4 {font-size: 9em; top: -100px; left: 17px}
  span#nub3-5 {font-size: 13em; top: -163px; left: -7px}
  span#nub3-6 {font-size: 8em; top: -95px; left: -8px}

/* - - - - - - - - - - -*/
/* Empezando Montaña */
/* - - - - - - - - - - -*/
div#montana {
 width: 478px;
 height: 213px;
 position: relative;
 z-index: 1;
 top: 168px;
 left: 325px
}

div#mcima {
 position: relative;
 top: 0px;
 width: 10px;
 left: 159px;
 border-left: 70px solid transparent;
 border-right: 110px solid transparent;
 border-bottom: 88px solid #4e505d
}

div#mfalda {
 position: relative;
 bottom: 0;
 border-top: 0px;
 border-left: 160px solid transparent;
 border-right: 130px solid transparent;
 border-bottom: 112px solid #4e505d
}

/* Nieve */
 span#n1 {
  position: absolute;
  top: -9px;
  z-index: 1;
  left: 190px;
  border-top: 0px;
  border-left: 40px solid transparent;
  border-right: 70px solid transparent;
  border-bottom: 58px solid #fff
 }

span#n2 {
  position: absolute;
  top: 48px;
  z-index: 1;
  left: 220px;
  border-top: 58px solid #fff;
  border-left: 5px solid transparent;
  border-right: 30px solid transparent;
  border-bottom: 58px solid transparent
 }

span#n3 {
  position: absolute;
  top: 43px;
  z-index: 1;
  left: 149px;
  border-top: 0;
  border-left: 45px solid transparent;
  border-right: 0;
  border-bottom: 58px solid #fff
 }

span#n4 {
  position: absolute;
  top: 53px;
  z-index: 1;
  left: 145px;
  border-top: 0;
  border-left: 75px solid transparent;
  border-right: 0;
  border-bottom: 50px solid #4e505d
 }

span#n5 {
  position: absolute;
  top: 49px;
  z-index: 1;
  left: 190px;
  border-top: 0;
  border-left: 40px solid #fff;
  border-right: 0;
  border-bottom: 24px solid transparent
 }

span#n6 {
  position: absolute;
  top: 40px;
  z-index: 1;
  left: 288px;
  border-top: 0;
  border-right: 46px solid transparent;
  border-left: 0;
  border-bottom: 34px solid #fff
 }

span#n7 {
  position: absolute;
  top: 50px;
  z-index: 1;
  left: 258px;
  border-top: 0;
  border-right: 76px solid transparent;
  border-left: 0;
  border-bottom: 24px solid #4e505d
 }

span#n8 {
  position: absolute;
  top: 48px;
  z-index: 1;
  left: 255px;
  border-top: 40px solid #fff;
  border-right: 0;
  border-left: 40px solid transparent;
  border-bottom: 0
 }

/* Arreglando bug en IE7 */
 span#n9 {
  position: absolute;
  top: 48px;
  z-index: 1;
  left: 277px;
  border-top: 40px solid #60dbfe;
  border-right: 0;
  border-left: 50px solid transparent;
  border-bottom: 0
 }

span#n10 {
  position: absolute;
  top: 48px;
  z-index: 1;
  left: 174px;
  border-top: 40px solid #60dbfe;
  border-left: 0;
  border-right: 28px solid transparent;
  border-bottom: 0
 }

/* - - - - - - - - - - -*/
/* Empezando suelo */
/* - - - - - - - - - - -*/
div#suelo {
 position: absolute;
 z-index: 2;
 background-color: #acdf32;
 height: 34px;
 width: 800px;
 bottom: 0
}

div#st {background-color: #8bba1d; height: 11px}
div#sb {background-color: #a2d922; height: 14px}

/* - - - - - - - - - - -*/
/* Empezando árbol */
/* - - - - - - - - - - -*/
div#arbol {
 width: 140px;
 height: 253px;
 position: absolute;
 z-index: 3;
 top: 160px;
 left: 50px
}

div#arbol span {position: absolute}

/* Tronco*/
 div#tronco1 {
  width: 20px;
  position: absolute;
  bottom: 0;
  left: 0;
  border-top: 0;
  border-left: 20px solid transparent;
  border-right: 0;
  border-bottom: 150px solid #733804
 }

div#tronco2 {
  width: 15px;
  position: absolute;
  bottom: 0;
  left: 30px;
  border-top: 0;
  border-right: 10px solid transparent;
  border-left: 0;
  border-bottom: 150px solid #883c02
 }

/* Hojas */
 span#hojas1 {font-size: 75em; top: -870px; left: -155px; color: #4aa237}
 span#hojas2 {font-size: 65em; top: -750px; left: -122px; color: #85bf0d}

/* - - - - - - - - - - -*/
/* Empezando mensaje */
/* - - - - - - - - - - -*/
div#mensaje {
 position: absolute;
 z-index: 5;
 opacity: .85;
 width: 240px;
 border: 3px solid #01c1fa;
 background-color: #fff;
 top: 5px;
 font-size: 9pt;
 padding: 2px 5px 2px 5px;
 left: 280px
}
div#mensaje h3 {
 margin: 0;
 padding: 0 0 3px 0;
 border-bottom: 2px solid #01c1fa
}
div#mensaje p {
 margin: 0;
 padding: 0
}

El código Html

<div id="cuadro"><div id="cielo">

<div id="ct"> </div>

<div id="cb"> </div>
<div id="nube1"><span id="nub1-1">.</span>

<span id="nub1-2">.</span>

<span id="nub1-3">.</span>

<span id="nub1-4">.</span>

</div>
<div id="nube2"><span id="nub2-1">.</span>

<span id="nub2-2">.</span>

<span id="nub2-3">.</span>

<span id="nub2-4">.</span>

<span id="nub2-5">.</span>

<span id="nub2-6">.</span>

</div>
<div id="nube3"><span id="nub3-1">.</span>

<span id="nub3-2">.</span>

<span id="nub3-3">.</span>

<span id="nub3-4">.</span>

<span id="nub3-5">.</span>

<span id="nub3-6">.</span>

</div>
<div id="arcoiris"><span id="arco-rojo">.</span>

<span id="arco-naranja">.</span>

<span id="arco-amarillo">.</span>

<span id="arco-verde">.</span>

<span id="arco-azul">.</span>

<span id="arco-morado">.</span>

<span id="arco-cielo">.</span>

</div>
<div id="sol"><span id="sol1">.</span>

<span id="sol2">.</span>

<span id="sol3">.</span>

</div>

</div>
<div id="montana"><span id="n1"> </span>

<span id="n2"> </span>

<span id="n3"> </span>

<span id="n4"> </span>

<span id="n5"> </span>

<span id="n6"> </span>

<span id="n7"> </span>

<span id="n8"> </span>

<!--[if IE 7]>

<span id="n9"> </span>

<span id="n10"> </span>

<![endif]-->
<div id="mcima"> </div><div id="mfalda"> </div>

</div>
<div id="suelo"><div id="st"> </div>

<div id="sb"> </div>

</div>
<div id="arbol"><div id="tronco1"> </div>

<div id="tronco2"> </div>
<span id="hojas1">.</span><span id="hojas2">.</span>

</div>
<div id="mensaje"><h3>¡Mira Mamá! ¡Sin imagenes!</h3>

<p>Pintar en CSS es complicado, fastidioso, confuso, toma mucho tiempo y ni siquiera se ve bien. Entonces ¿Por qué lo hice? ¡Porque se puede! Además, creo que no me quedó tan feo... ¿O si?</p>

</div>
</div>
Publicado por Asier Marqués el Martes, 29 de Mayo del 2007


Puedes seguir los comentarios de ésta entrada via "RSS 2.0" y dejar un trackback desde tu sitio.

2 Respuestas to “Dibujo realizado con css y sin imágenes”

Añade un comentario