Cargando la página...

Esquinas redondeadas (Round Corners) en todos los navegadores

Publicado por Administrador el 27/04/2009 en CSS - Nivel Intermedio

Tabla de contenidos

Avatar de

La tabla de contenidos pertenece al artículo completo y no al contenido parcial de cada página del mismo si fuese el caso.

Leer los comentarios.

Resúmen

Las esquinas redondeadas dan un mejor aspecto (según el caso) a un sitio web. Lograrlo utilizando solo CSS suele ser una tarea bastante ardua, sobre todo por las pobres, sino nulas, implementaciones de los diferentes navegadores actuales.
En este artículo se mostrarán las alternativas que estos navegadores hoy nos ofrecen a fin de lograr esquinas redondeadas (rounded corners).

Sobre el autor

Avatar de CID

Administrador tiene 28 años, vive en Argentina / Santa Fe / Santa Fe y su ocupación es Desarrollador de aplicaciones web.

Forma parte del club desde el 29/07/2007 habiendo estado en linea ayer a las 22:54 por última vez.

Ha publicado 32 artículos en clubdesarrolladores con un promedio de valoración de 7.87 puntos. Puedes visitar su sitio web en http://www.clubdesarrolladores.com

Estadísticas

  • Leido 5151 veces
  • Valorado 8.00 puntos
Los diferentes navegadores nos ofrecen implementaciones propias, fuera de cualquier estandar, con la promesa de, en poco tiempo, implementar el standart que recomienda el w3c.

Propiedad CSS3 Estandar



Esta es la propiedad que todos los navegadores deberian implementar, sin embargo eso no sucede. Es bueno colocarla desde ya.

.rounded-corners
{
border-radius: 10px;
}


Esta propiedad puede descomponerse de la siguiente manera:

.rounded-corners
{
border-top-right-radius = 10px;
border-bottom-right-radius = 10px;
border-bottom-left-radius = 10px;
border-top-left-radius = 10px;
}


Las siguientes propiedades solo serán interpretadas por los navegadores correspondientes.

Firefox



Firefox desde hace ya un tiempo (desde la versión 1.5 en adelante) dispone de esta propiedad para esquinas redondeadas. Las propiedades que solo funcionan en Firefox comienzan con -moz.

.rounded-corners
{
-moz-border-radius: 10px;
}


Y descompuesta:

.rounded-corners
{
-moz-border-radius-topright = 10px;
-moz-border-radius-bottomright = 10px;
-moz-border-radius-bottomleft = 10px;
-moz-border-radius-topleft = 10px;
}


Internet Explorer



Solo Internet Explorer 8 (modo IE=8) podrá reconocer esta sintaxis.

.rounded-corners
{
-ms-border-radius: 10px;
}


y sus componentes:

.rounded-corners
{
-ms-border-radius-topleft: 10px;
-ms-border-radius-topright: 10px;
-ms-border-radius-bottomleft: 10px;
-ms-border-radius-bottomright: 10px;
}


Más información sobre IE y CSS.

WebKit y Safari



Estos son navegadores novedosos, y esta es su propuesta:

.rounded-corners
{
-webkit-border-radius: 10px;
}


En partes:

.rounded-corners
{
-webkit-border-top-right-radius: 10px;
-webkit-border-bottom-right-radius: 10px;
-webkit-border-bottom-left-radius: 10px;
-webkit-border-top-left-radius: 10px;
}


Konqueror



Hasta konqueror nos ofrece soluciones:

.rounded-corners
{
-khtml-border-radius: 10px;
}


y...

.rounded-corners
{
-khtml-border-radius-topleft:10px;
-khtml-border-radius-topright:10px;
-khtml-border-radius-bottomleft:10px;
-khtml-border-radius-bottomright:10px;
}


Opera



Opera ha sido una desilusión, no presenta nada similar a los demás navegadores. Pero al tener soporte de SVG podemos hacer algo asi (esta solución funciona con Safari y Firefox también):

.rounded-corners
{
background: silver url("images/roundedcorners.svg");
}


Y el SVG:

  <rect fill="white"  x="0" y="0" width="100%" height="100%" />
<rect fill="silver" x="0" y="0" width="100%" height="100%" rx="10px"/>


Los navegadores que no soporten SVG, ignorarán la declaración anterior.

Clase CSS para esquinas redondeadas



Hoy día, necesitamos colocar todas, aunque esto haga que el validador de CSS falle.

.rounded-corners
{
border-radius: 10px;
-ms-border-radius: 10px;
-moz-border-radius: 10px;
-webkit-border-radius: 10px;
-khtml-border-radius: 10px;
}


Actualmente demasiado código para algo que una sola propiedad (la primera) deberia definir.
Y recuerden que podemos hacer cosas asi:

.rounded-corners
{
border-radius: 10px 0 2em 4pt;
-ms-border-radius: 10px 0 2em 4pt;
-moz-border-radius: 10px 0 2em 4pt;
-webkit-border-radius: 10px 0 2em 4pt;
-khtml-border-radius: 10px 0 2em 4pt;
}


Por lo que nuestro CSS engordará bastante y quedará muy poco legible... es lo que hay hoy día.

Existen otras soluciones utilizando imágenes extra, marcado (x)html adicional, javascript... la idea de este artículo es la de utilizar solo CSS, para que cuando tengamos que sonreir recordando el pasado (los navegadores implementaron border-radius...) solo debamos modificar el archivo CSS y nada más.

Les agrego una aplicación online que genera el código necesario para crear cajas con bordes redondeados.

Si tiene alguna pregunta sobre éste artículo por favor deje un comentario y será respondido.

Descargas

No existen descargas asociadas

Comentarios

Sus comentarios son importantes.

Listado de comentarios

1
17
enero
2010
avatar
Damaso Perez aportó:
mmm, ami no me funciono este codigo, talves estoy haciendo algo mal, pero pues no se que es lo unico que hago es agregarle la regla css creada a un div, pero no me hace nada. ojala me puedas ayudar a entender bien como hacerlo. hasta luego.
2
24
enero
2010
avatar
Damaso Perez aportó:
Ya me salio!!!!!!!!!!!! yuuujuuu, pero ahora no se como se crea, se enlazan los archivos SVG para que tambien funcione en opera. si pudieras postear algo te lo agradeceria . hasta luego
3
24
enero
2010
avatar
Administrador [Autor] aportó:
El archivo SVG es un simple XML con extensión SVG, contiene el código que indica el artículo. Luego lo especificas en el css como haces con cualquier imágen de fondo.
4
14
febrero
2010
avatar
Valerio Vergini aportó:
Buenas noche empece hace un mes a programar, hice mucho trabajo solo, ahora tengo problemas con nifty round corne.
1- quando pongo una imagen de fondo en el desktop, el triangolo que queda fuera da la curva queda balnco, quando no hay imagen de fondo al rededor de la curva se ve el color de fondo configurado y funciona bien en mozzilla y IE 6.0.
2- Supongamos que no tengo imagen de fondo (problema que me gustaria solucionar) pongo mi web on line y las curvas desaparecen.
3- si tengo un sitio de 20 pagina y tengo por ejemplo en todas 20 la misma seccion que quiero cambiar, hay una manera para referirme a un modulo y cambiarlo en las 20 a lavez ? podeis indicarme el camino ?
Gracias por el momento ...
un saludo
5
23
febrero
2010
avatar
mariano aportó:
Hola, estoy intentando aplicar el codigo a un div pero no puedo, se me hace que algo mal estoy haciendo..

Damaso, vos que pudiste..podrías decirme cómo?
6
05
marzo
2010
avatar
Administrador [Autor] aportó:
Mariano no te olvides de darle un color de fondo o un borde al menos a la div.
Por otro lado en internet explorer parece no funcionar.

Agregar un comentario

Debe estar identificado para agregar un comentario