Zlecono mi aktualizację witryny, aby była responsywna i wyświetlała się poprawnie na smartfonach. Niestety, strona w obecnej formie nie jest łatwa w obsłudze - nie mogę po prostu zmienić CSS.
Czy źle jest wykryć rozmiar przeglądarki i wprowadzić zmiany w CSS za pomocą jQuery?
Na przykład:
if ($(window).width() < 960) {
//make heaps of CSS changes
}
css
mobile
jquery
optimization
responsive-webdesign
MeltingDog
źródło
źródło
Odpowiedzi:
Pewnie. Oczywiście lepiej byłoby używać CSS sam, ale jeśli nie możesz, użyj tego, co masz. Rób jak najwięcej z CSS i używaj JS w razie potrzeby. Nie wiesz, dlaczego nie możesz zmienić istniejącego CSS, ale możesz dodać arkusz stylów za pomocą JS.
Źródło: http://christian-fei.com/add-stylesheets-after-the-head-using-javascript/
następnie zwariuj na punkcie zapytań CSS / mediów.
Lub z jQuery:
Zrobiłem responsywne „skórki”, w których niektóre rzeczy po prostu nie były możliwe bez zmiany DOM. Jeśli nie masz dostępu do HTML, manipulacja JS DOM jest czasami jedyną odpowiedzią.
EDYCJA:
W zależności od wymagań wizualnych wersji na małym ekranie możesz być zaskoczony, jak daleko ten fragment CSS poprowadzi cię do „przyjaznego dla urządzeń mobilnych”.
Jeśli oryginalny programista CSS bardzo go lubił
!important
i nie możesz dostać się do HTML, możesz użyć jQuery / JS, aby dodać identyfikator do ciała lub kontenera wysokiego poziomu i dodać go do selektora.źródło
Powiedziałbym, że najpierw spróbuj użyć zapytań o media. Jedną z metod, które uważałem za łatwiejsze w przypadku projektu, który pierwotnie był przeznaczony wyłącznie na komputery stacjonarne, było:
Zacznij od dwóch oddzielnych arkuszy stylów. Jeden dla nowego responsywnego projektu, a drugi dla starej wersji komputerowej:
Wszystkie stare style mogą być zawarte w pliku desktop.css . Tymczasem możesz zacząć od zera w mobile.css . Może się okazać, że możesz stworzyć ładny układ pojedynczej kolumny w tym mobilnym CSS, który działa również na tablety.
Takie podejście pozwala zacząć od nowa i stylizować specjalnie na telefony komórkowe i tablety, bez konieczności przesuwania stylów pulpitu i zastępowania. Możesz ukryć / pokazać / ustawić elementy zgodnie z wymaganiami tylko dla urządzeń mobilnych.
Jeśli naprawdę potrzebujesz zmienić kod pulpitu, aby działał z urządzeniami mobilnymi i stacjonarnymi, możesz zmienić znaczniki. Alternatywnie, jeśli okaże się, że nie można realistycznie przefakturować kodu HTML zarówno dla wersji responsywnej, jak i mobilnej, można umieścić klasę w kodzie pulpitu, np. Klasę „desktop” i użyć CSS w wersji mobilnej, aby go ukryć. Następnie napisz trochę nowego HTML dla tej sekcji i daj mu
class="mobile"
. Następnie odpowiednio go styluj w mobile.css i ukryj w desktop.css .źródło
Pracowałem nad witryną, która korzystała z tej metody, i miałem problemy z obracaniem ekranu na urządzeniach mobilnych. Ponieważ JavaScript wykryje tylko raz podczas ładowania strony, jeśli użytkownik obróci urządzenie, nie rozszerzy się do pełnej szerokości, tak jak w przypadku zapytań o media. Wtedy łatwiej mi było przejść na CSS, ale być może ekspert JS wiedziałby, czy istnieje sposób na wykrycie zmiany szerokości rzutni. Wydaje się, że z AJAX powinien istnieć sposób, ale chciałbym się założyć, że wszystko, co znalazłeś, byłoby przesadzone, jeśli chodzi o wydajność, jak opisuje megasteve.
źródło
Reagowanie i „wyświetlane poprawnie na smartfonach” to zupełnie inne zadania.
To nie powinno być głównym źródłem stylizacji. To jest praca CSS. Jednak oba te elementy można efektywnie wykorzystać razem. W prostym przykładzie tekst może być inaczej stylizowany w zależności od wyników niektórych działań. jQuery może być użyty do zmiany zdefiniowanej klasy CSS.
źródło
W naszych witrynach korzystaliśmy z popularnego frameworka css 960.gs.
Chcieliśmy, aby był responsywny.
Ktoś stworzył responsywną wtyczkę opartą na JS dla 960 gs, więc pomyśleliśmy, dlaczego nie skorzystać z niej, ponieważ nie musielibyśmy wprowadzać żadnych zmian w szablonach witryn strukturalnych.
Działało, ale było opóźnione w większości przeglądarek, w tym w tych dobrych. Zazwyczaj pojawia się „błysk nie-stylizowanej zawartości”, który różni się znacznie w zależności od złożoności strony.
Pomimo tego, że działające rozwiązania JS nie są idealne, zapytania o media CSS 3 są najlepszym wyborem, jeśli to możliwe. W końcu po prostu zmieniliśmy szablony witryn za pomocą Twitter Bootstrap, co bardzo dobrze pasowało do naszych potrzeb.
Chociaż skrócenie czasu może być apetyczne, często okazuje się, że na dłuższą metę jest bardziej czasochłonne / bolesne.
źródło