• 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
94 wizyt
pytanie zadane 11 stycznia w JavaScript, jQuery, AJAX przez użytkownika Kamila Użytkownik (570 punkty)
zmienione kategorie 11 stycznia przez użytkownika 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 użytkownika CzikaCarry Nałogowiec (31,040 punkty)
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 użytkownika Argeento Maniak (52,680 punkty)
wybrane 12 stycznia przez użytkownika 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 użytkownika Comandeer Ekspert (327,300 punkty)

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 użytkownika Pietrak Stary wyjadacz (11,760 punkty)
edycja 12 stycznia przez użytkownika Pietrak
To po co ci ten important jak działa?
Znalazłeś jakies rozwiazanie i kopiujesz.
komentarz 12 stycznia przez użytkownika Kamila Użytkownik (570 punkty)
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 użytkownika Marcin2000Xpl Bywalec (2,210 punkty)

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 128 wizyt
pytanie zadane 29 listopada 2016 w HTML i CSS przez użytkownika Guardd Początkujący (350 punkty)
0 głosów
1 odpowiedź 81 wizyt
pytanie zadane 1 sierpnia 2016 w JavaScript, jQuery, AJAX przez użytkownika Barttyyy Gaduła (4,770 punkty)
0 głosów
1 odpowiedź 58 wizyt
pytanie zadane 24 maja 2016 w JavaScript, jQuery, AJAX przez użytkownika Nehel Mądrala (7,300 punkty)
...