2009-10-09 9 views
9

Załóżmy, że mam widget, który używa skomplikowanego CSS i musi być osadzony w wielu witrynach, które mają swoje własne CSS.Resetowanie CSS, które ma zastosowanie tylko do #widgeta

Jeśli przedrostkiem wszystkich reguł CSS widżetu będzie "#widget", nie będą one dotyczyły niczego na zewnątrz, więc jeden problem został rozwiązany. Niestety, reguły CSS witryny wciąż mogą zepsuć widget.

Jeśli zresetuję wszystkie CSS wewnątrz #widget z odpowiednimi regułami resetowania, to mam nadzieję, że zastąpią one wszystkie reguły zewnętrzne, prawda? (ponieważ moje reguły używają #id, a reguły zewnętrzne nie znają żadnych identyfikatorów w moim widgecie, nie mogą ich przesłonić, prawda?! ważne niezależnie)

Jaki jest najlepszy sposób na zresetowanie wszystkich CSS do znanego stanu? Większość resetów CSS zaczyna się od domyślnych ustawień przeglądarki, nie resetują one arbitralnych CSSów. Czy istnieje jakiś reset kodu CSS, który działa bez względu na wszystko?

Odpowiedz

1

Tak, css powinny przesłonić niczego zadeklarowanej poza widgetem, ale twój resetu musi być bardzo wyczerpujące. Sugeruję użycie zmodyfikowanej wersji http://meyerweb.com/eric/thoughts/2007/05/01/reset-reloaded/, ale sam musisz zmodyfikować wszystkie selektory.

chciałbym mieć pokusę, aby wzmocnić swoje selektorów również, więc zamiast

#widget tagname{} 

Zastosowanie

html body #widget tagname{} 

Twoje selektorów mają teraz znacznie większą wagę.

+1

myślę widget można umieścić na dowolnej stronie CSS tak, że trzeba zresetować jest nieznany. Musi przedefiniować reguły globalnego resetu (takiego jak Eric Meyer) za pomocą #widget, aby być całkowicie bezpiecznym. – easement

+0

Całkowicie się zgadzam (też się z tym związałem) – Rowan

+1

Resety Erica zdają się resetować domyślne ustawienia przeglądarki, a nie wszystko, co może być CSSed, więc prawdopodobnie nie będą wystarczające. – taw

12

natknąłem cleanslate.css podczas próby rozwiązania tego samego problemu:

https://github.com/premasagar/cleanslate

I już nie używać go w produkcji jeszcze, ale to widocznie wyszedł z rozwojem BBC World Service widget.

+5

Uwaga - projekt CleanSlate został przeniesiony z Google Code do GitHub: https://github.com/premasagar/cleanslate (Stworzyłem projekt - i tak, rozwiązuje ten problem;) – Premasagar

1

użycie nazw & zresetować & MNIEJ

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

    ... your other styles ... 
} 
Powiązane problemy