Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js/css] oddzielenie wyglądu od treści - css w osobnym pliku + javascript
wujek_bogdan
post
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 8.03.2008

Ostrzeżenie: (0%)
-----


przyzwyczajony jestem do oddzielania wyglądu od treści, staram się wieć nie umieszczać styli wewnątrz tagów html, a w osobnym pliu *.css. Niestety javascript sobie z tym nie radzi. jeśli chcę pobrać właściwość jakiegoś elementu o danym ID, muszę style umieszczać wewnątrz tego znacznika. czy jest na to jakiś sposób, tzn czy można "zmusić" skrypt js, aby czytał style tagów z pliku .css ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Yyyy, przyznam, że jeszcze nie spotkałem się z czymś takim...

No chyba, że JS jest wywoływany bezpośrednio, bez zdarzenia typu window.onload, czy DOMContentLoaded. Wtedy, to się nie dziwię. ;]
Go to the top of the page
+Quote Post
wujek_bogdan
post
Post #3





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 8.03.2008

Ostrzeżenie: (0%)
-----


to może na prostym przykładzie:
na początku wywołuje funkcje:
  1. window.onload = JakasFunkcja;
  2. function JakasFunkcja() {
  3. var mojaZmienna = document.getElementById('jakiesID');
  4. alert(mojaZmienna.style.display);
  5. }

i jesli moj kod HTML wyglada tak:
  1. <p id="jakiesID" style="display:block;">coś</p>

to oczywiście wszystko działa, ale jeśli styl umieszczam w osobnym pliku .css wtedy html wygląda tak:
  1. <p id="jakiesID">coś</p>

i wtedy skrypt nie działa. chciałem uniknąć umieszczania styli wewnątrz tagów HTML. 
Go to the top of the page
+Quote Post
skowron-line
post
Post #4





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Wogóle źle się do tego zabierasz. Ty chcesz zmienić style w arkuszu a nie bezpośrednio w elemencie.
link poniżej powinien Ci pomóc.
http://www.quirksmode.org/dom/changess.htm
Go to the top of the page
+Quote Post
wujek_bogdan
post
Post #5





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 8.03.2008

Ostrzeżenie: (0%)
-----


można jaśniej. co robię nie tak?
pobieram styl danego tagu, o danym ID i wyświetlam jako alert. styl jest pobierany jeśli znajduje się w kodzie HTML, ale jeśli znajduje się w pliku .css to już nie jest pobierany. 

Cytat
Ty chcesz zmienić style w arkuszu a nie bezpośrednio w elemencie.

czyli js nie jest na tyle "mądry" żeby dobrać się do stylu zdefiniowanego w pliku .css, lub w deklaracji stylu w nagłówku strony?
lubię mieć porządek i nie chcę śmiecić stylami w kodzie strony. 

Ten post edytował wujek_bogdan 29.05.2009, 12:27:16
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ale to Ci na jedno wychodzi... To, co zmodyfikujesz w DOM nie jest przecież odzwierciedlane w plikach...

Poza tym, zamiast zmieniać style, zmieniałbyś klasy, to byłby najlepszy porządek.
Go to the top of the page
+Quote Post
zegarek84
post
Post #7





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


jemu nie chodzi o samą zmianę wartości a o pobranie ich do skryptu - @skowron-line podał rozwiązanie ale walnął małego byka z linkiem (IMG:http://img-upload.pl/images/530_j.gif) - poprawny:
http://www.quirksmode.org/dom/changess.html - zgubił l (IMG:http://img-upload.pl/images/579_u.gif)

ale po co daleko szukać jak na forum tutaj jest prostsze rozwiązanie (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
http://forum.php.pl/index.php?showtopic=71...mp;#entry370701

Ten post edytował zegarek84 29.05.2009, 13:10:11
Go to the top of the page
+Quote Post
skowron-line
post
Post #8





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(erix @ 29.05.2009, 11:33:45 ) *
Poza tym, zamiast zmieniać style, zmieniałbyś klasy, to byłby najlepszy porządek.


Zmiana klas nie jest najlepszym rozwiązaniem w przypadku dużej ilości danych w stylu. Po co powielać rzeczy których się nie ma zamiaru zmienić moim zdaniem to będzie tworzyło dodatkowy bałagan + niewiadomo czy kolega ma z góry zdefiniowaną wartość koloru na jaki chce zmienić jeżeli będzie wyliczana dynamicznie to również to rozwiązanie się nie sprawdzi.
No ale mogę się mylić znam się na CSS tyle co na lotach w kosmos ( wiem w którą stronę ).
Go to the top of the page
+Quote Post
erix
post
Post #9





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Po co powielać rzeczy których się nie ma zamiaru zmienić moim zdaniem to będzie tworzyło dodatkowy bałagan + niewiadomo czy kolega ma z góry zdefiniowaną wartość koloru na jaki chce zmienić jeżeli będzie wyliczana dynamicznie to również to rozwiązanie się nie sprawdzi.

W 90% przypadków zmiana klasy będzie słuszna. I co najważniejsze - semantyczna. Zechce zmienić wygląd/się rozmyśli, to potem będzie musiał kopać w niewiadomo ilu plikach JS, żeby coś znaleźć. Pomijam tu display, bo to jest przypadek szczególny. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ale to nie zmienia faktu, że można by zrobić jakąś klasę abstrakcji do tego celu, która by np. wstrzykiwała dynamicznie reguły do document.styleSheets, czy nawet dołączała osobny CSS w przypadku wykrytej obsługi JS.
Go to the top of the page
+Quote Post
wujek_bogdan
post
Post #10





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 8.03.2008

Ostrzeżenie: (0%)
-----


dzięki wszystkim za pomoc. widzę, że nie ma jakiegoś banalnego rozwiązania (myślałem, że jest, tylko moja znajomość js jest zbyt słaba), ale sposób podany w linku na samym początku wydaje się być tym czego szukam.

jeśli chodzi o zamianę klas to nie jest to to czego szukam, bo klasę owszem mogę zmienić, ale nie w tym rzecz. owszem rozwiązuje to problem z bałaganem w tagach html, ale nie rozwiązuje problemu pobierania wartości atrybutów css z danego znacznika html.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 02:16