Modernizando los drop caps

Para quien no los conoce, los drop caps son recursos gráficos utilizados desde hace siglos, a modo de adornos de letras iniciales de los bloques de texto. Esta letra inicial es la primera de un trabajo, capítulo o parágrafo, la que tiene la característica de ser mayor que las otras. Suele ocupar varias de las líneas de texto de ese parágrafo, y antiguamente era muy ornamentada, destacándose por sobre el contenido del texto.

SafariFirefoxInternet Explorer 7Internet Explorer 6Opera

Ejemplo de Drop Cap

Bueno, este recurso gráfico puede ser logrado a través de CSS sin trucos, ya que existe una pseudo-class :first-letter que, milagrosamente, es reconocida por todos los browsers importantes, por lo que podemos colgarnos de él para lograr este efecto. Algunos recordarán que utilizamos esta misma pseudo-class para lograr bloques de texto con estilo. Bueno, esa vez fue una técnica; ahora la utilizaremos para el propósito con que fue creada.

El HTML que utilizaremos no será más que un bloque de texto con Lorem Ipsum.

<p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo….</p>

Con CSS haremos que la primera letra crezca y que ocupe su lugar al rincón izquierdo superior, incluyendo las líneas de texto necesarias para ello a través de float:

p:first-letter {
     font-size:100px;
     margin: -10px 5px -15px 0;
     float:left;
}

Tuve que implementar margin negativo para que pudiera ubicarse bien dentro del espacio que le corresponde, lo que no fue muy bien aceptado por IE6. Pero bueno, hay que encontrar un concenso en este aspecto entre browsers.

Ver ejemplo 1

Ahora, esto no quita que podamos hacerlo más bonito, reemplazando la letra en sí por una imagen que crearemos y aplicando la técnica de image replacement que más les acomode. Eso sí, en este caso no podemos utilizar :first-letter ya que no soporta text-indent para hacer la primera letra desaparecer, y menos definir un width y height (aunque sólo Safari lo soportó en mis tests). Para esto, tendremos que crear una class y aplicárselo a un <span> que rodee la primera letra.

<p><span class="dropcap">L</span>orem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo….</p>

.dropcap {
     background: url(l_cap.gif) no-repeat;
     width: 106px;
     height: 100px;
     margin: 5px 5px 0 0;
     float:left;
     display: block;
     text-indent: -9999px;
     overflow: hidden;
}

Ver ejemplo 2

Sobre el Autor: Jorge Epuñan

Soy quien escribe en este sitio: diseñador gráfico de profesión, desarrollador web por preferencia y amante de la interacción humano-computador. Cuando no pienso en web, salgo a trotar por mis barrios en Santiago, Chile o me junto con amigos a un bar a conversar sobre nuevas tendencias y tecnologías. Twitter profesional y personal, además del Contacto.

  1. tony

    Aunque supongo que utilizar imagenes por letras va un poco contra la accesibilidad ¿no?

  2. CSSLab Admin

    no tony, si estas escribiendo el texto y al mismo tiempo escondiendolo para poner una imagen encima, el txt aun esta ahi pero oculto. los lectores de pantallas y los buscadores aun la leeran, pero no la mostraran.

  3. fearlex

    Muy buen tip, gracias :D

  4. tony

    sorry admin, tienes razón. gracias

  5. pablo vivanco

    una pregunta para el administrador , ¿ qué sitema ocupas para los rollovers de el sitio ? , había ocupado uno basado en JS pero en IE no es muy funcional, el tuyo si

  6. CSSLab Admin

    pablo, nose a q te refieres con rollovers, supongo q son los tooltips. si es asi uso qTip.js. los otros rollovers son puro css.

  7. pablo vivanco

    admin, se agradece la respuesta, vere si doy con ello.

  8. Ruben

    Drop Caps = Letra Capital, de toda la vida.

1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35|36|37|38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69|70|71|72|73|74|75|76|77|78|79|80|81|82|83|84|85|86|87|88|89|90|91|92|93|94|95|96|97|98|99|100|101|102|103|104|105|106|107|108|109|110|111|112|113|114|115|116|117|118|119|120|121|122|123|124|125|126|127|128|129|130|131|132|133|134|135|136|137|138|139|140|141|142|143|144|145|146|147|148|149|150|151|152|153|154|155|156|157|158|159|160|161|162|163|164|165|166|167|168|169|170|171|172|173|174|175|176|177|178|179|180|181|182|183|184|185|186|187|188|189|190|191|192|193|194|195|196|197|198|199|200|201|202|203|204|205|206|207|208|209|210|211|212|213|214|215|216|217|218|219|220|221| generic levitra 20 mg original viagra viagra ersatz kaufen viagra aus pre mature finasteride 1 mg 360 generic sildenafil sale order viagra online order female cialis online ist viagra auf rezept billig paiement cod viagra viagra no presprition gibt es in thailand viagra foreign viagra pillsAccutane Online Doxycycline online Buy Cheap Lexapro Online No Prescription Prednisone Online Buy Accutane No Prescription