Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS]Kompatybilność
Forum PHP.pl > Forum > Przedszkole
Fifi209
Mam klasę:
  1. .menu {
  2. height: 16px;
  3. width: 100%;
  4. border-bottom: 1px solid black;
  5. background-color: #dcdcdc;
  6. display: none !important;
  7. cursor: default;
  8. }


Do tego mam podpiętego event'a w jQuery:
[JAVASCRIPT] pobierz, plaintext
  1. $(".text").live({
  2. 'mouseover': function() {
  3. $(this).children('div').css('display', 'block !important');
  4. },
  5. 'mouseout': function() {
  6. $(this).children('div').css('display', 'none !important');
  7. }
  8. });
[JAVASCRIPT] pobierz, plaintext


Na chrome działa tak jakbym chciał. Na Firefox'ie już nie, na IE też nie. Jaka może być przyczyna? Firebug pokazuje, jakby w ogóle stylu nie zmieniał, event działa bo testowałem na alertach.
konole
Tak trochę z innej beczki - na co tutaj !important?
Fifi209
Cytat(konole @ 1.06.2011, 21:40:20 ) *
Tak trochę z innej beczki - na co tutaj !important?

Już odpowiadam, zagłębienie w HTML wygląda tak:
  1. <div id="bin">
  2. <div id="menu"></div>
  3. <div id="content">
  4. <div class="text"><div class="menu"></div></div>
  5. </div>
  6. </div>


  1. #bin {
  2. display: block;
  3. }

Jak się ostatnio dowiedziałem, reguły dla ID są ważniejsze niż reguły klas, dlatego aby je nadpisać potrzebowałem !important
Noidea
Właściwość display nie jest dziedziczona, więc nie potrzebujesz tutaj nigdzie !important
Fifi209
Cytat(Noidea @ 2.06.2011, 12:40:49 ) *
Właściwość display nie jest dziedziczona, więc nie potrzebujesz tutaj nigdzie !important

Hmm... skąd taka informacja?

Fakt, że problem rozwiązałem. Usunąłem display z #bin i go inaczej ostylowałem i teraz wszystko ładnie chodzi.
Noidea
Cytat
Hmm... skąd taka informacja?

?
W CSS wiele właściwości nie jest dziedziczonych. Nie znam dokładnego podziału na te które są dziedziczone i te które nie są (pewnie jest gdzieś na necie taki spis), ale w większości wypadków wystarczy "brać to na logikę". Przykładowo po ustawieniu margin-top:20px jakiemuś elementowi nie chcemy, żeby wszystkie jego potomne elementy również dostały taki margines. Tak samo po ustawieniu display:block divowi nie chcemy, żeby wszystkie potomne elementy typu span, strong, a zmieniły się z inline na block.
Dziedziczone są za to na przykład właściwości związane z czcionkami
Fifi209


Uploaded with ImageShack.us
Noidea
Ja na twoim screenie nie widzę dziedziczenia związanego z display. Jest tylko przykrywanie jednej wartości przez drugą, podaną z bardziej szczegółowymi selektorami. Przykład dziedziczenia masz tutaj:
http://jsfiddle.net/UQ7sR/ - pogrubienie dziedziczone jest domyślnie, display tylko jeśli dziedziczenie się wymusi

I bonus - kod z twojego posta z usuniętymi wszystkimi "!important"
http://jsfiddle.net/FBe5x/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.