Polyfills para CSS3 y HTML5

Antes de nada debemos preguntarnos, ¿qué es un polyfill? Un polyfill es un trozo de código (un plugin) que proporciona la tecnología que el desarrollador espera obtener del navegador de forma nativa. En definitiva se trata de hacer que aquellos navegadores que no son compatibles con una característica nueva, la incorporen a través de fallbacks, es decir de código, en su mayor medida javascript, que se encargue de realizar dicha funcionalidad.

Por ejemplo si queremos utilizar las nuevas etiquetas semánticas de HTML 5, debemos utilizar un polyfill que se encargue de hacer dichas etiquetas compatibles con versiones antiguas de Internet Explorer. El más utilizado es html5shiv.

O si por ejemplo queremos hacer que todos los navegadores hagan uso del nuevo atributo placeholder, que permite mostrar texto cuando dichos campos están vacíos. Entonces tan solo debemos buscar uno de los muchos polyfills que existen. O incluso crearlo nosotros mismos. Si optas por crearlo tu mismo, lo primero es ver si merece la pena comparando las versiones actuales para saber que podemos aportar. Y utilizar siempre detección de características. Es decir con HTML 5 ya nos nos basamos en detección de versiones de navegadores sino en características, es decir, si el navegador en concreto, sea la versión que sea, es capaz de realizar lo que se le pide. Para en caso correcto hacerlo de forma nativa.

Una de las ventajas de utilizar polyfills como desarrolladores es que nos olvidamos de los problemas y carencias de navegadores antiguos, y así podemos desarrollar páginas web centrándonos en los nuevos estándares y sacando el máximo provecho.

Si queremos utilizar propiedades de CSS3 como border-radius, box-shadow, border-image, rgba, gradientes, … Para así olvidarnos de tener que colocar imágenes en Internet Explorer, en el caso de bordes redondeados. Entonces es de recomendado uso utilizar CSS3 PIE. Obteniendo soporte para Internet Explorer 6, 7 y 8.

Volviendo al tema de entrada. El poly de polyfill, viene porque en algunas ocasiones para hacer funcional una característica se requiere de una solución cuando esta disponible cierta tecnología externa como podría ser flash o silverlight, y de otra solución cuando esta tecnología no esta.

En la mayoría de casos debemos utilizar polyfills porque Internet Explorer no se actualiza para corregir sus carencias. Concretamente se cierra en versiones, las cuales mantiene hasta que sale una nueva versión, abandonando así la anterior y no permitiendo la actualización a la nueva versión, a no ser que cumplamos los requisitos necesarios (como el sistema operativo necesario). Si dicho navegador se actualizara como Firefox o Chrome estoy seguro de que nos ahorraría mucho tiempo.

Para finalizar, un enlace con una recopilación de polyfills para hacer más fácil el tránsito hacia los nuevos estándares.
https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills

Comentarios

Comentario de pyUNFGyqbhN - 26 de Marzo de 2012 - 14:35
Yo uso Firefox el 90% de las veces y si no Safari, y creo que me costare1 cbamiar a otro. Ademe1s de ser el navegador que me1s me gusta, el hecho de que tenga tantos complementos disponibles es un punto muy a su favor. Quize1s la alternativa me1s similar a Firefox sea Google Chrome, pero todaveda no me ha convencido.
Comentario de Alvaro - 21 de Mayo de 2012 - 08:58
pyUNFGyqbhN, ¿Qué tienen que ver churras con meninas? Todos sabemos que Chrome y sobretodo Firefox son mucho mejores navegadores que explorer, pero de lo que aquí se trata es de dar una herramienta al desarrollador para hacer su WebSite o aplicación web compatible con todos los navegadores. Una empresa no es un particular, y los grandes proyectos se desarrollan para grandes empresas. Las empresas tienen equipos y sistemas operativos que en muchos casos están obsoletos por cuestiones que no vienen al caso. Además, existen directrices que imponen que tecnologías están permitidas instalar en los equipos corporativos, bien por acuerdos entre empresas, temas políticos o vete tu a saber... Por lo tanto, y mientras siga habiendo clientes que soliciten que la aplicación debe ser compatible con Internet Explorer 6.0, nosotros los desarrolladores, no nos quedará más remedio que cumplir con sus expectativas usando este tipo de soluciones. Un cordial saludo.
Comentario de Alvaro - 21 de Mayo de 2012 - 08:59
Internet Explorer 6.0, nosotros los desarrolladores, no nos quedará más remedio que cumplir con sus expectativas usando este tipo de soluciones. Un cordial saludo.
Comentario de oscar agustin flores arana - 27 de Mayo de 2012 - 18:20
Sé que lo que voy a decir suena anacrónico. Pero esta es la realidad. Tengo una Pentium 2, más específicamente una placa PCCHIP con procesador AMD K62, que sigue funcionando con Linux porque con Windows se congela, es obvio que tengo problemas pero es una PC que por el momento me sigue haciendo funcionar un escáner que no tiene soluciones para los sistemas actuales. Y bueno. Resulta interesante esta aclaración respecto a que se puede seguir preparando páginas que puedan correr en navegadores antiguos. Eso es muy buena onda. Estoy incursionando en programación web y esto me cae de perilla Gracias.
Ha habido un error en el envío
Comentario enviado. Será revisado por la moderación antes de ser publicado.

Deja tu comentario

Tu nombre:
Tu email:
Tu comentario: