• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

nadpisanie css za pomocą JS, zmienna + !important

0 głosów
110 wizyt
pytanie zadane 11 stycznia w JavaScript, jQuery, AJAX przez Kamila Użytkownik (570 p.)
zmienione kategorie 11 stycznia przez Arkadiusz Waluk

cześć,

muszę nadpisać style css. wnętrze mojej funkcji to:

var sliderHeight = screen.height - 150;
              
                $(".slider_content").css("height", sliderHeight + "!important");

przeszukałam internet. Z tego co wyczytałam to powino działać, ale niestey - nie działa.

Funkcja działa jeśli usunę "!important", więc coś tutaj jest nie tak :/

 

komentarz 11 stycznia przez CzikaCarry Nałogowiec (42,780 p.)
Wejdź do przeglądarki, kliknij F12, wybierz konsolę JS i zobacz, czy nie wyskoczył tam jakiś błąd

4 odpowiedzi

+1 głos
odpowiedź 12 stycznia przez Argeento Maniak (63,270 p.)
wybrane 12 stycznia przez Krzycho92
 
Najlepsza

Wystarczy spojrzeć do dokumentacji

Note: .css() ignores !important declarations. So, the statement $( "p" ).css( "color", "red !important" ) does not turn the color of all paragraphs in the page to red. It's strongly advised to use classes instead; otherwise use a jQuery plugin.

Jeśli jesteś autorem tego CSSa, polecam poczytać o specyficzności selektorów - !important nic dobrego w kodzie nie wnosi

+1 głos
odpowiedź 12 stycznia przez Comandeer Ekspert (346,220 p.)

Pragnę tylko zauważyć, że zaakceptowana odpowiedź jest najgorszą możliwą. Sama informacja z dokumentacji przecież mówi wyraźnie, żeby przesiąść się na operowanie klasami ($elem.toggleClass( 'klasa' )). A najlepiej, jak Argeento już wspomniał, zapoznać się ze specyficznością selektorów.

0 głosów
odpowiedź 11 stycznia przez Pietrak Stary wyjadacz (14,640 p.)
edycja 12 stycznia przez Pietrak
To po co ci ten important jak działa?
Znalazłeś jakies rozwiazanie i kopiujesz.
komentarz 12 stycznia przez Kamila Użytkownik (570 p.)
wyraziłam się może zbyt skrótowo.

Potrzebuję tego important po rozbudowaniu strony. Skrypt działa na uproszczonej wersji.

Zrobiłam uproszczoną wersję, żeby sprawdzić gdzie jest błąd w funkcji.
0 głosów
odpowiedź 12 stycznia przez Marcin2000Xpl Gaduła (3,210 p.)

Nie jest to możliwe.

Note: .css() ignores !important declarations. So, the statement $( "p" ).css( "color", "red !important" ) does not turn the color of all paragraphs in the page to red. It's strongly advised to use classes instead; otherwise use a jQuery plugin.

jQuery ignoruje deklaracje !important. Nie jest to błąd jQuery tylko same przeglądarki ignorują w JavaScript deklaracje !important. Jedyną opcją jest dość ryzykowna metoda, ponieważ czyści ona wszystkie style (oprócz stylu klas) elementu:

$(".slider_content").css("cssText", "height: 300px !important;");

Podobne pytania

0 głosów
3 odpowiedzi 176 wizyt
0 głosów
1 odpowiedź 94 wizyt
pytanie zadane 1 sierpnia 2016 w JavaScript, jQuery, AJAX przez Barttyyy Gaduła (4,750 p.)
0 głosów
1 odpowiedź 72 wizyt
pytanie zadane 24 maja 2016 w JavaScript, jQuery, AJAX przez Nehel Mądrala (7,280 p.)
...