Devitácora

Un blog informático

Anular los estilos de los «widgets» de Blogger

Algo que me resultó muy molesto de Blogger fue la imposición de su propia hoja de estilos en mi plantilla, sin la posibilidad de retirarla; sin embargo, podemos valernos de un sencillo y conocido truco para impedir que se aplique:

El servicio destina la etiqueta b:skin (obligatoria) para que declaremos los estilos de nuestra plantilla:

<b:skin>
REGLAS DE CSS
</b:skin>

Lo primero que debemos hacer es sacar nuestro CSS de ahí:

<b:skin></b:skin>
<style type='text/css'>
REGLAS DE CSS
</style>

La etiqueta de apertura <b:skin> corresponde en nuestro código fuente a lo siguiente:

<style id='page-skin-1' type='text/css'><!--

Y la etiqueta de cierre </b:skin> corresponde a esto:

--></style>

Blogger toma como referencia la etiqueta de apertura para agregar el CSS de sus widgets:

<link type='text/css' rel='stylesheet' href='css_bundle_v2.css' />
<link type='text/css' rel='stylesheet' href='authorization.css' />
<style id='page-skin-1' type='text/css'><!--
--></style>

Pero si agregamos en nuestra plantilla lo siguiente:

&lt;style type='text/css'&gt;&lt;!-- /*<b:skin>*/</b:skin>

Como resultado obtenemos esto:

<style type='text/css'><!-- /*
<link type='text/css' rel='stylesheet' href='css_bundle_v2.css' />
<link type='text/css' rel='stylesheet' href='authorization.css' />
<style id='page-skin-1' type='text/css'><!--
*/
--></style>

Los estilos de Blogger quedaron entre comentarios, perdiendo todo su efecto en nuestro blog. Cabe anotar que authorization.css es el responsable de mantener visible el icono de edición de los widgets solo a los administradores, así que tocaría llevarnos esa línea si en tal caso deseemos conservar ese comportamiento; y en css_bundle_v2.css hay algunas instrucciones requeridas para el buen funcionamiento de algunos elementos.

Actualización (13/04/17): gracias a las nuevas etiquetas de Blogger, ahora podemos ahorrarnos todo lo anterior y sin tener que privarnos de la hoja de estilos authorization.css. Basta con solo copiar lo siguiente:

b:css='false'

Y pegarlo en la etiqueta de apertura HTML:

<html b:css='false' ...

search-icon home-icon blog-icon about-icon envelop-icon calendar-icon tag-icon comment-icon share-icon gmail-icon blogger-icon twitter-icon facebook-icon printer-icon link-icon list-icon rss-icon logo-icon