2009-06-03 18 views
56

Zastanawiam się, jak zignorować styl macierzysty i użyć domyślnego stylu (none). PokaŜę mój konkretny przypadek jako przykład, ale jestem pewien, Ŝe jest to ogólne pytanie.Jak zignorować nadrzędny styl css

<style> 
#elementId select { 
    height:1em; 
} 
</style> 

<div id="elementId"> 
    <select name="funTimes" style="" size="5"> 
     <option value="test1">fish</option> 
     <option value="test2">eat</option> 
     <option value="test3">cows</option> 
    </select> 
</div> 

Sposoby nie chcę, aby rozwiązać ten problem:

  • Nie mogę edytować arkusza stylów gdzie „#elementId wybierz” jest ustawiony, mój moduł nie będzie miał dostęp to.
  • Najlepiej nie zastępować stylu wysokości za pomocą atrybutu stylu.

Na przykład za pomocą firebug mogę wyłączyć styl rodzica i wszystko jest dobrze, to jest efekt, który zamierzam.

Po ustawieniu stylu można go wyłączyć lub go wyłączyć?

Odpowiedz

25

To musi być nadpisane. Można użyć:

<!-- Add a class name to override --> 
<select name="funTimes" class="funTimes" size="5"> 

#elementId select.funTimes { 
    /* Override styles here */ 
} 

można użyć selektora atrybutu, ale ponieważ nie jest obsługiwany przez przeglądarki Dziedzictwo (przeczytaj IE6 itd), to lepiej, aby dodać nazwę klasy

3

można utworzyć inną definicję niższy w arkuszu stylów CSS, który zasadniczo odwraca początkową regułę. możesz również dodać "! important" do wspomnianej reguły, aby upewnić się, że się trzyma.

0

Byłoby sensowne CSS mieć sposób, aby po prostu dodać dodatkowy styl (w sekcji head strony, na przykład, które zastępują połączony arkusz stylów), takie jak ten:

<head> 
<style> 
#elementId select { 
    /* turn all styles off (no way to do this) */ 
} 
</style> 
</head> 

i wyłącz wszystkie wcześniej zastosowane style, , ale nie ma sposobu, aby to zrobić. Będziesz musiał zastąpić atrybut height i ustawić go na nową wartość w sekcji head stron.

<head> 
<style> 
#elementId select { 
    height:1.5em; 
} 
</style> 
</head> 
54

Można je wyłączyć poprzez nadpisanie to tak:

height: auto ważne;

+2

Proste, nadzorowane przeze mnie, ale bardzo skuteczne. Dziękujemy +1. – Ben

+2

Odradzam używanie '! Important' w twoim znaczniku produkcyjnym - powinien on być używany tylko podczas debugowania. – Amicable

+0

@Amicable Czy możesz wyjaśnić, dlaczego nie jest to zalecane? –

1

Miałem podobną sytuację podczas pracy nad witryną joomla.

Dodano nazwę klasy do modułu, którego dotyczy problem. W twoim przypadku:

<select name="funTimes" class="classname"> 

następnie dokonano następującej zmiany pojedynczej linii w css. Dodano poprawną pracę linii

#elementId div.classname {style to be applied !important;} 

!

1

gdybym rozumiał qeustion poprawnie: można użyć „auto” w css jak to width:auto a następnie będzie ona wrócić do ustawień domyślnych

1

Należy użyć tej

height: auto!ważny;

Powiązane problemy