Como crear bordes redondeados utilizando solo CSS y sin imágenes
Si hay una propiedad que amo y que todavía no esta del todo implementada por todos los navegadores es border-radius una propiedad que trajo CSS3 y que nos permite en resumidas cuentas transformar bordes rectangulares en bordes redondeados, sin utilizar absolutamente ninguna imagen.
¿Qué tal es la compatibilidad con los distintos navegadores?
Esta propiedad de CSS3 todavía no esta soportada en su totalidad por todos los navegadores, así que se imaginaran que con la border-radius pasa exactamente lo mismo y no se equivocan. La propiedad esta soportada por Firefox 3.0 o superiores, Chrome desde la primera versión y Safari desde la versión 3.1. Y todavía no es compatible con Internet Explorer ni Opera, aunque probablemente en Opera sea compatible a partir de la nueva versión.
Como todavía CSS3 no esta implementado completamente el nombre de la propiedad puede variar un poco, por ejemplo para Chrome o Safari utilizaremos -webkit-border-radius mientras que para Firefox -moz-border-radius.
En lo particular que la propiedad no este soportada por IE/Opera me sigue molestando bastante, no obstante, yo la utilizo igual, llegado el caso las personas que usen Internet Explorer/Opera no verán bordes redondeados, ellos verán esquinas cuadradas y listo. No es algo grave ni nada, y sinceramente no creo que amerite la colocación de un script ni de un hack. Haciendo esto ultimo solo cambiaríamos un problema por otro, ya que en lugar de utilizar imágenes estaríamos recargando todo con js o distintas técnicas molestas.
Empecemos. El espacio de trabajo
Para hacer todas estas pruebas lo primero que voy a crear es una simple DIV con un tamaño predeterminado y con un color de fondo. El resultado seria una caja común y corriente con las esquinas cuadradas.
Primero el HTML
[HTML]
[/HTML]
Ahora el CSS
[CSS].demo {background: #009933; width:585 px; height: 110 px;}[/CSS]
El resultado:

Primeros pasos para aplicar bordes redondeados CSS
Comencemos con la declaración básica. Apliquemos un ángulo de 15px en todos los bordes, agregando el siguiente código para que Firefox lo interprete.
[CSS].demo {-moz-border-radius:15 px;}[/CSS]
Una vez aplicada la propiedad el resultado será el siguiente:

Ahora vamos a detenerlos a explicar un poco como funciona esto, cuando solo colocamos un valor, el mismo se aplicara en todas las esquinas, no obstante podemos declarar cada valor de forma independiente y esto lo hacemos de la siguiente manera:
- -moz-border-radius-topleft: Esquina superior izquierda.
- -moz-border-radius-topright: Esquina superior derecha.
- -moz-border-radius-bottomleft: Esquina inferior superior izquierda.
- -moz-border-radius-bottomright: Esquina inferior superior derecha.
Así que en pocas palabras la versión resumida seria idéntica a:

Perfecto, pero ¿se pueden combinar las distintas esquinas?
La respuesta es…Si!!! Y es de lo más divertido combinar distintos tamaño o bien dejar alguna esquina cuadra mientras que las otras son redondeadas. Además que quedan perfectas el efecto visual es muy bueno. Vamos con ejemplos.
[CSS].demo {-moz-border-radius:15px 55px;}[/CSS]
Al declarar solo dos dimensiones las mismas se aplicaran de la siguiente manera:
- -moz-border-radius:15px 55px => 15px Esquina Sup IZQ y Esquina Inf DER
- -moz-border-radius:15px 55px=> 55px Esquina Sup. DER y Esquina Inf. IZQ
Y el resultado es:

También se pueden declarar solo tres valores. Pero no tiene sentido explicarlo, la mitología es la misma y escribiendo un línea de CSS pueden probarla ustedes mismos
¿Y que pasa con los otros navegadores?
Hasta hora probamos todo solamente utilizando Firefox, la razón es simple, es mas didáctico hacerlo así, ahora para Safari y Chrome la forma de lograr los mismos resultados es exactamente idéntico, con la única diferencia que utilizaremos -webkit-border-radius en lugar de -moz-border-radius.
- -webkit-border-top-left-radius: Esquina superior izquierda.
- -webkit-border-top-right-radius: Esquina superior derecha.
- -webkit-border-bottom-left-radius: Esquina inferior superior izquierda.
- -webkit-border-bottom-right-radius: Esquina inferior superior derecha.
Exactamente funciona igual que en los ejemplos que vimos anteriormente.
Combinando todo para lograr bordes redondeados
Ahora solo resta combinar estas propiedades para lograr la mayor compatibilidad entre los navegadores, quedando de la siguiente manera un borde redondeado compatible con Firefox, Chrome, Safari:
[CSS]
.demo {
-moz-border-radius:15px 55px 5px;
-webkit-border-radius: 15px 55px 5px;
}
[/CSS]
Esto es todo, ya con esto deberíamos lograr nuestros preciados bordes redondeados, livianos, sin recargar con imágenes a nuestros visitantes. Ojala algún día el resto de los navegadores recuerden que existen estándares y los apliquen.

Es muy agradable el acabado visual que dan los bordes redondeados en los sitios web, sin duda alguna que estas técnicas son muy útiles.
Curioso que no conocía lo de combinar las esquinas, muy bueno
sencillo, y funcional, los de opera que pena =P, los de IE me caen mal xD
@Tecnobita: Erick, yo lo descubri hace un tiempo y queda genial!
@Ejosvp: Si la verdad que los usuarios de IE se lo pierden
Muy bueno el post Pablo.
Una sola cosa para resaltar CSS3 todavía no es estándar. Esta en desarrollo, lo cual quiere decir que quizás mañana la propiedad border-radius no exista.
Y por eso tambien la implementacion de Gekko y de Webkit (los motores de Firefox, Chrome y Safari) es distinta.
En la pagina del W3c encontre algunos ejemplos de cosas bastante copadas que se pueden hacer con esta propiedad (esto no significa que los navegadores ya lo implementen de esa forma)
Les dejo el enlace:
http://www.w3.org/TR/css3-background/#the-border-radius
@Analton: Buen apunte, sabes que tenes razón, no se porque carajo estaba seguro de que ya estaba estandarizado, debe ser por la cantidad de tiempo que hace que lo estan laburando. Gracias por la data!
uy uy uyy, justo estaba pensando el diseño para un nuevo proyecto…
Esas esquinas combinadas me abrieron la mente
@Praboy: jejejej, genial, me alegro mucho que te sirvan!!!
El otro día lo leí y lo dejé marcado, ahora ando con un menú en un header y me acordé del efecto y lo puse a práctica, se ve muy bueno, asi que gracias
mm hay un problema !!
Miren como se ve en chrome:
http://img33.imageshack.us/img33/5548/chvsff.jpg
Lo estuve probando con Firefox y con Midori quedan perfecto, con Konqueror quedan cuadrados, que lástima que no es estandar.
gracias funciona perfecto en firefox
no me sirve para IE, lo necesito, porfavor si me pueden dar respuesta.
Grcias:)
Gracias por la info =), saludos!
Esto realmente que me sirvio gracias por la informacion, y como funcionaria en otros exploradores?
Muy buena herramienta, el problema es que css3 se podrá utilizar con confianza yo creo que en varios años despues, si aun hay gente usando navegadores antiguos, increible pero cierto. La gente que no sabe del tema se queda con el que viene por defecto en windows xp…lástima que sea el so mas usado.
Muy buen aporte gracias. Internet Explorer apesta ojala desaparezca!!!
Te dejo una recopilación con 16 creadores online de bordes redondeados y demás propiedades css. Espero que te parezca interesante.
http://www.opcionweb.com/index.php/2012/01/12/creadores-de-bordes-redondeados-css-online/
Un saludo.
Gracias por la info. Se agradece
Que grande eres, es un gran aporte para la gente que estamos empezando en el mundo web, mil gracias.