Jak zmienić styl portalu ?

0

Witam, mam problem. Muszę wykonać na portalu zmianę stylu, z poziomu jednej podstrony. Styl się musi zmienić na całym portalu. wykorzystać mogę tylko HTML i JS. Nie mam pojęcia jak to ugryźć. Dziękuję z góry za jakakolwiek podpowiedź

0

Co masz na myśli mówiąc "zmienić styl"? Wywalić (wyłączyć) stary arkusz stylów CSS i wrzucić (włączyć) nowy? Masz możliwość edycji tych arkuszy stylów?

0

zmienić jeden styl na inny (Jeden arkusz stylów CSS zastąpić innym, lub jakoś go edytować) . Mam możliwość ale chodzi o to że to musi być zmieniane z poziomu strony www, a efekt ma byc widoczny na wszystkich podstronach

0

I nie możesz korzystać z technologii po stronie serwera, takiej jak PHP? Sam HTML, CSS i JavaScript? Rozumiem też, że to ma działać tylko dla jednego konkretnego użytkownika: że ktoś wchodzi sobie na Twoją stronę, wybiera sobie w jednym miejscu inny layout i to mu się już zapamiętuje co najmniej na czas całej jego wizyty, tak? (jednocześnie nie ma to wpływu na to, co widzą inni użytkownicy)

0

Ma być z wykorzystaniem tylko HTML, JS i CSS, ale czy ma sie zmieniać tylko dla jednego użytkownika który ją ogląda w danym czasie czy dla wszystkich ktorzy będą ją oglądali nie jest sprecyzowane, więc podpowiedź do którejkolwiek opcji będzie bardzo mile widziana

0

uzywasz jakis gotowych rozwiazac do portali, np Liferay? Jak tak to poczytaj dokumentacje, jak tworzyc wlasne theme's. Moze jest cos takiego, tak jak w Liferay.

0

niestety tylko czyste HTML/JS i CSS, bez gotowych rozwiązań musi byc

0

@Paza:

czy ma sie zmieniać tylko dla jednego użytkownika który ją ogląda w danym czasie czy dla wszystkich ktorzy będą ją oglądali nie jest sprecyzowane

To ma akurat bardzo duże znaczenie. Samym JavaScriptem nie zmienisz tego dla wszystkich użytkowników.

Różnica pomiędzy oboma podejściami jest zasadnicza.
Opcja 1: zwykły użytkownik sam wybiera sobie styl witryny. To da się zrobić w JavaScripcie.
Opcja 2: administrator witryny zmienia styl wszystkim użytkownikom. Do tego trzeba technologii po stronie serwera: PHP, Pythona, Ruby'ego... czegokolwiek. Nie da się tego zrobić samym JavaScriptem.

To są zupełnie inne przypadki użycia, więc musisz koniecznie ustalić, o który z nich chodzi.

W przypadku JavaScriptu widzę dwie możliwości:

  1. Użycie jednego arkusza stylów i tzw. body-switchy
    Chodzi o to, że w stylach każdy selektor poprzedzasz jakąś klasą lub ID, która będzie umieszczona w elemencie body i będzie identyfikowała dany styl layoutu. Przykładowo, możesz mieć dwa style: ciemny (dark) i jasny (light). CSS piszesz więc w ten sposób:
/* Reguły dla ciemnego stylu */
#dark_theme h1 {
...
}

#dark_theme #footer {
...
}


#dark_theme .whatever strong {
...
}


/* Reguły dla jasnego stylu */
#light_theme h1 {
...
}

#light_theme #footer {
...
}


#light_theme .whatever strong {
...
}

Następnie musisz zadbać, by element jak najwyżej położony w drzewie dokumentu (zwykle korzysta się z elementu body) otrzymywał odpowiednie id. Czyli albo light_theme, albo dark_theme. Strona powinna wyglądać jakoś tak:

<!DOCTYPE html>
<html>
  <head>
  ...
  </head>
  <body id="dark_theme">
  </body>
</ html >

Zwróć uwagę na tag <body>. Domyślnie jest tu włączony styl ciemny. Można go zmienić w JavaScripcie, ustawiając po prostu id elementu body na "light_theme".

  1. Bez body-switchów. Można po prostu dołączać arkusze stylów dynamicznie. JavaScript może pobrać element <link> importujący np. styl ciemny bezpośrednio z sekcji head strony i go wywalić. Może też stworzyć nowy element link importujący styl jasny i dołączyć go do elementu head. Można w tym celu użyć metod DOM.

W obu przypadkach musisz dołączyć jakiś interfejs, tj. przycisk, łącze, czy może lepiej listę obsługiwaną przez JavaScript. Wybranie opcji powinno uruchomić opcję 1) lub 2). W obu przypadkach powinieneś też zapamiętywać wybrany styl używając cookies (ciasteczek) przeglądarki. JavaScript powinien zaraz po ściągnięciu strony sprawdzić, czy cookie ze stylem jest ustawione. Jeśli jest, to powinien włączyć dany styl (czyli wykonać opcję 1 lub 2). Ciasteczkami można manipulować za pomocą JavaScriptu używając funkcji setCookie i getCookie.

Jeśli nie masz pojęcia o czym mówię i nie znasz JavaScriptu na odpowiednim poziomie (każdy profesjonalny webdeveloper, którego obowiązki obejmują również pisanie skryptów, powinien znać), to niestety nie napiszesz tego. W takim wypadku mogę jedynie zasugerować zatrudnienie profesjonalnej agencji lub webdevelopera.

0

Dzieki wielkie, nie pomyślałem o ciasteczkach, bo zmiana stylu na jednej stronie nie była dla mnie zbyt trudno, tlyko chodziło o inne podstrony portalu, aby po zmianie stylu, był on zmieniony na każdej podstronie. Dzieki za rade :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1