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.
TecnoBITA
15 años ago
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 🙂
ejosvp
15 años ago
sencillo, y funcional, los de opera que pena =P, los de IE me caen mal xD
Pablo
15 años ago
@Tecnobita: Erick, yo lo descubri hace un tiempo y queda genial! 😀
@Ejosvp: Si la verdad que los usuarios de IE se lo pierden 😛
Analton
15 años ago
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
Pablo
15 años ago
@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!
Praboy
15 años ago
uy uy uyy, justo estaba pensando el diseño para un nuevo proyecto…
Esas esquinas combinadas me abrieron la mente 😛
Pablo
15 años ago
@Praboy: jejejej, genial, me alegro mucho que te sirvan!!! 😀
Neri
15 años ago
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 😀
Praboy
15 años ago
mm hay un problema !!
Miren como se ve en chrome:
http://img33.imageshack.us/img33/5548/chvsff.jpg
Como hacer un globo de historieta solo con CSS | Kabytes
15 años ago
[…] del div que es el globo propiamente, el mismo se hace usando como base la propiedades CSS para crear bordes redondeados, que ya vimos en otro tutorial. Por lo que el código seria el siguiente: PLAIN TEXT […]
Javier
15 años ago
Lo estuve probando con Firefox y con Midori quedan perfecto, con Konqueror quedan cuadrados, que lástima que no es estandar.
fotos locas
15 años ago
gracias funciona perfecto en firefox
ximena
15 años ago
no me sirve para IE, lo necesito, porfavor si me pueden dar respuesta.
Grcias:)
Herramienta para crear bordes redondeados CSS | Kabytes
15 años ago
[…] de las cosas que mas me gusta de CSS 3 es la facilidad con las que uno puede crear bordes redondeados sin utilizar imágenes, algo que se viene pidiendo desde hace mucho tiempo y que desde hace poco tiempo es […]
Utilizar unicode en CSS | Kabytes
15 años ago
[…] de agradecer que con CSS3 se pueden hacer cajas con bordes redondeados sin tanto embrollo, la propuesta de la misma estructura pero mostrando las clases con unicode seria […]
Consulta las características HTML5, CSS3 y SVG compatibles por navegador | Kabytes
15 años ago
[…] ejemplo si yo quiero conocer si los bordes redondeados son aceptados por los navegadores más populares, simplemente lo busco en la lista y obtengo lo […]
Consulta las características HTML5, CSS3 y SVG compatibles por navegador
15 años ago
[…] ejemplo si yo quiero conocer si los bordes redondeados son aceptados por los navegadores más populares, simplemente lo busco en la lista y obtengo lo […]
CSS3 en Internet Explorer | Kabytes
14 años ago
[…] de compatibilidad CSS3 con los distintos navegadores, para encontrar que IE no soporta Gradientes, bordes redondeados ni sombras, propiedades que son súper útiles y que ahorran muchísimo […]
J.v.C
14 años ago
Gracias por la info =), saludos!
pepito
14 años ago
Esto realmente que me sirvio gracias por la informacion, y como funcionaria en otros exploradores?
Ricardo
14 años ago
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.
Carlos
13 años ago
Muy buen aporte gracias. Internet Explorer apesta ojala desaparezca!!!
Pancho Opcionweb
13 años ago
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.
Profesor Yeow
13 años ago
Gracias por la info. Se agradece
Carlos | tienda airsoft
13 años ago
Que grande eres, es un gran aporte para la gente que estamos empezando en el mundo web, mil gracias.
Angie
13 años ago
Muy bueno!!, Era lo que buscaba, graciass! 😀
Javier
13 años ago
Buenas, ante todo gracias por la info, no esta de mas saber. Pero yo a esto le veo un inconveniente, internet es accesible por casi todo el mundo. Y no todo el mundo trabaja con los mismos programas. Con esto estas obligando al programador a decidir a programar especificamente para un navegador… Imaginamos una tienda online que la mayoria de sus clientes utilizan chrome, y el programador lo programa para firefox. Los clientes no apreciaran estos detalles. Sin quitar que, la mayoria de los usuarios de internet, utilizan como navegador IE que es el que viene con el ordenador, y les quitas de eso y se pierden…
cristian
13 años ago
bueno les tengo una buena noticia,
los bordes redondeados ya van en internet explorer:
para que vayan solo es necesario añadir además de los comandos para chrome y firefox el siguiente:
border-radius:»n»px
bueno por lo menos a mi si que me funciona, espero que les haya servido de ayuda
Un saludo!!
Gabriel
13 años ago
@cristian solo es posible en IE9, pero no en versiones anteriores. Pero para lograrlo, podemos usar la propiedad behavior y el correspondiente htc. Acá lo podés ver más claramente.
nestor
12 años ago
ps bueno, funciona en chrome mas no en firefox haciendo el codigo css combinado
Daniel
12 años ago
Hola Nestor, si tenés una versión nueva de Firefox podés probar borrarle el «moz-» ya que la propiedad en sí es «border-radius:» es decir que para Firefox funciona por ejemplo con: «border-bottom-left-radius: 10px;»
De todas formas, yo recomiendo que dejes las dos propiedades, de modo que si alguien visita tu sitio con algún firefox viejo puede ser que sólo reconozca la propiedad antecedida por -moz
Christian
12 años ago
Gracias me ha sido de mucha ayuda
Vadino
12 años ago
Muchas gracias estimado! Me ha servido mucho!
Un abrazo grande!
David Perez
12 años ago
Gracias estoy intentando darle otro aire a mi web y este detalle me ayudara.
Saludos
Abel
12 años ago
Gracias amigo muy bueno 😀
guia de empresas
12 años ago
Muy buen blog, me ha hecho gracia eso de cafeinomano yo también necesito dejar.
http://es.geojoo.com
Aquí te dejo mi web para que la visitéis .
Gracias un saludo.
Grupo Actemp
11 años ago
Gracias por tu aporte, me sirvió de mucha ayuda.