2009-10-09 21 views
9

Digamos que tengo un widget que usa CSS complicado y debe estar incrustado en varios sitios web que tienen sus CSS.Restablecimiento de CSS que se aplica solo a #widget

Si prefijo todas las reglas de CSS de widgets con "#widget", no se aplicarán a nada en el exterior, por lo que se solucionó un problema. Lamentablemente, las reglas de CSS del sitio aún pueden alterar el widget.

Si reinicio todo el CSS dentro de #widget con las reglas de reinicio adecuadas, entonces con suerte anularán todas las reglas externas, ¿no? (porque mis reglas usan #id y las reglas externas no conocen ningún ID dentro de mi widget, no pueden anularlos, ¿no es así?) importante

¿Cuál es la mejor manera de restablecer todo el CSS al estado conocido? La mayoría de los restablecimientos de CSS comienzan desde los valores predeterminados del navegador, no restablecen CSSes arbitrarios. ¿Hay algún reinicio de CSS que funcione sin importar qué?

Respuesta

1

Sí, el CSS debe anular nada declarada fuera del widget, pero el reajuste debe ser bastante amplia. Sugiero usar una versión modificada de http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/, pero tendrá que modificar todos los selectores usted mismo.

estaría tentado a fortalecer los selectores también, por lo que en lugar de

#widget tagname{} 

Uso

html body #widget tagname{} 

Sus selectores ahora tendrán un peso mucho mayor.

+1

creo que el widget se puede colocar en cualquier página de modo que el CSS que es necesario restablecer es desconocida. Él tiene que prefijar las reglas de un reinicio global (como Eric Meyer's) con el #widget para estar totalmente seguro. – easement

+0

Estoy totalmente de acuerdo (me vinculé también) – Rowan

+1

Los reinicios de Eric solo parecen restablecer los valores predeterminados del navegador, no todo lo que podría ser CSS, por lo que probablemente no sean suficientes. – taw

12

me encontré con cleanslate.css al tratar de resolver el mismo problema:

https://github.com/premasagar/cleanslate

no he utilice en la producción todavía, pero aparentemente salió del desarrollo del Servicio Mundial de la BBC widget.

+5

Nota: el proyecto CleanSlate se ha movido de Google Code a GitHub: https://github.com/premasagar/cleanslate (Creé el proyecto, y sí, resuelve ese problema;) – Premasagar

1

uso de espacio de nombres & restablecer & MENOS

#my-ns { 
    @import ".../reset.less"; 

    ... your other styles ... 
} 
Cuestiones relacionadas