Wybór pliku css

Wybór pliku css
FA
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:6
0

Musze napisać wersję mobilną strony przy pomocy PHP. Nie znam kompletnie języka i dlatego proszę o pomoc.
Strona ma automatycznie zmieniać wygląd z desktop/mobilna w zależności od urządzenia na którym została uruchomiona. Mam już funkcję sprawdzająca jakie to urządzenie i zwraca napis "mobile" lub "desktop".
Problem polega na tym że nie wiem jak to dobrze zrobić. Mój pomysł jest taki aby sprawdzać jaki to typ i w zależności wybierać plik css oddzielny dla wersji desktop i oddzielny dla mobilnej.

Jak to zaimplementować? Czy da radę w HTML?

Najlepiej było by gdyby nadał id link'owi dodającego css dla każdej podstrony identyczny i aby w jednej funkcji podmieniło ścieżki do css.
Czy da radę coś takiego zrobić? Lub może inne dobre pomysły

Z góry dziękuje

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Możesz plik css podzielić na sekcje:

Kopiuj
@media screen
....
@media handheld
....

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
FA
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:6
0

Niestety nie mogę. To jest na zaliczenie i muszę użyć PHP

Zrobiłem coś takiego

Kopiuj
 
<?php
    $stylesheet = getBrowserType();
    switch($stylesheet) {
        case 'mobile':
            $style = 'mobilna.css_';
            break;
        default:
            $style = 'default.css';
            break;
    }

    $sc = '<link rel="stylesheet" type="text/css" href="' . $style . '">';
echo $sc;
?>
 

Ale mam problem z wypisaniem bo wywala mi cały czas 0. Ustaliłem że to wina znaku '<' w "$sc = '<link rel .... ". Jak to mogę naprawić?

edytowany 2x, ostatnio: faayzol
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:5 dni
  • Lokalizacja:Rzeszów
0

wywala mi cały czas 0 - wyjaśnij. gdzie?


FA
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:6
0

Jeśli uruchomię ten plik powinienem uzyskać tekst:

<link rel="stylesheet" type="text/css" href="plik.css">

gdyż mam linikję

Kopiuj
    $sc = '<link rel="stylesheet" type="text/css" href="' . $style . '">';
    echo $sc;
 

niestety po wywołaniu mam wynik "0", jeśli natomiast usunę pierwszą klamrę "<" czyli kod wygląda następująco:

Kopiuj
 
    $sc = 'link rel="stylesheet" type="text/css" href="' . $style . '">';
    echo $sc;

to wyświetla prawie dobrze, gdyż bez pierwszej klamry.

Oczywiście główny problem pozostaje nie rozwiązany bo nie mam pojęcia jak ten wynik wstawić do HTML.

edytowany 2x, ostatnio: faayzol
MA
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 11 lat
0

Musisz stworzyć podstawowy szkielet HTML i w head wrzucić po prostu kod PHP. No i nie przypisuj nic do zmiennej, zrób od razu

Kopiuj
echo "<link rel='stylesheet' type='text/css' href='$style'>";

Możesz sobie tą zmienną $style wydzielić tak jak robiłeś, będzie wtedy bardziej widoczna, ale w ten sposób też zadziała.

edytowany 1x, ostatnio: Mauris
FA
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:6
0

Niestety tak też źle wypisywało, od tego zacząłem. Próbowałem też łączyć to w różne sposoby za pomocą "." i "+" ale nie przyniosło to oczekiwanych rezultatów.

A co do umieszczenia kodu w head to nie mam pojęcia jak. Jeśli umieszcze tak:

Kopiuj
 
<?php include("plik.php"); ?>

to nie działa. Próbowałem też w body ale działa to tylko wtedy gdy plik ma także rozszerzenie php zamiast HTML. Funkcję sprawdzającą muszę mieć w oddzielnym pliku więc muszę go ewentualnie jakoś wstawić do html ale jak na razie nie przynosi to oczekiwanych rezultatów.

MA
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 11 lat
1

Nie chcę być niemiły, ale masz zaliczenie z PHP + HTML, a nie znasz nawet podstaw korelacji tych języków. Plik musi mieć rozszerzenie .php nawet choćby zawierał 150 linii napisanych czystym HTML i 1 w PHP.
Stwórz plik php, wklep w niego standardowy szablon html, a następnie w "środek" head wrzuć kod php. To nie jest jakieś nie wiadomo co, więc nie musisz raczej robić 2 oddzielnych plików. Chyba, że taka jest specyfikacja zadania, wtedy dorzuć tego include, ale bez żadnych nawiasów

Kopiuj
<?php include "plik.php"; ?>
dzek69
Nie chcę być niemiły, ale plik może mieć rozszerzenie .html, albo i .dupa i być wykonywanym przez interpreter php - kwestia konfiguracji serwera ;)
MA
dobrze, więc znajdź mi tak skonfigurowany serwer ;) Nie rozmawiamy tu o tym co się da zrobić, tylko co należy zrobić w tym szczególnym przypadku. Kolega jest początkujący, więc dla niego plik musi mieć takie rozszerzenie. Czepiasz się szczegółów, które prawdopodobnie nie będą mu nigdy potrzebne, a nawet jeśli, to wtedy na pewno będzie wiedzieć już o co mi chodziło.
dzek69
po prostu jestem dokłany, a że to pierdółka to wpisuję w komentarzu
FA
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:6
0

Niestety muszę się przyznać, za bardzo nie czytałem o php. Wiem jednak że działa to tak jak mówisz ale liczyłem, że można to zrobić inaczej z tego powodu iż mam dużo plików html i musiał bym wszystkie przerabiać i dodawać plik php żeby każdą stronę mógł wyświetlić w dwóch wersjach. W zadaniu jest także ograniczenie do dwóch plików php więc odpada tworzenie plików php dla każdej podstrony.

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:5 dni
  • Lokalizacja:Rzeszów
0

problem jest taki, że przedstawiony przez Ciebie skrypt działa dobrze.
http://i.imgur.com/24flEKu.png

jeżeli masz gdzieś zero to próbujesz łączyć stringi plusem (+).

ciężko powiedzieć gdzie, skoro jedyny zacytowany kod jest poprawny,


MA
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 11 lat
0
faayzol napisał(a):

(...) mam dużo plików html i musiał bym wszystkie przerabiać i dodawać plik php żeby każdą stronę mógł wyświetlić w dwóch wersjach. W zadaniu jest także ograniczenie do dwóch plików php więc odpada tworzenie plików php dla każdej podstrony.

Co ty tak dokładnie masz zrobić w tym zadaniu? O co chodzi z tym limitem? Bo jeśli musisz na każdej podstronie sprawdzić czy urządzenie jest mobilne, to siłą rzeczy plik musi mieć kod php (wg. twoich założeń).
W 1 poście napisałeś:

faayzol napisał(a):

(...) Jak to zaimplementować? Czy da radę w HTML?

Potem jednak stwierdziłeś, że to musi być rozwiązane za pomocą php. Może jednak niekoniecznie? Może php owszem, ale do czego innego, a to możesz zrobić w jakiś inny sposób. Co prawda rozwiązanie z php było by najbardziej uniwersalne z racji, że nie wszystkie smartphone'y tolerują atrybut media.
Można to zrobić też prostym js:

Kopiuj
<link id="stylesheet" rel="stylesheet" href="style1.css">
<script>
if( is_mobile() ) 
{
 document.getElementsByTagName('link').item(0).href="style2.css";
//albo
 document.getElementById('stylesheet').href="style2.css";
}
</script>

Jest jeszcze kilka innych rozwiązań, np. z użyciem ciasteczek (żeby za każdym razem nie sprawdzać), stworzenie osobnego szablonu dla urządzeń mobilnych i przekierowywanie na niego (to w zasadzie to samo, co podmiana stylu), możesz nawet zrobić przekierowanie w .htaccess (dość niewygodna metoda, ale zadziała).

dzek69
ciastka to głupie, bo nie zadziała przy wejściu na podstronę, a jeżeli chcesz weryfikować czy jest ciastko to równie dobrze można tego user agenta przeczytać.
FA
  • Rejestracja:ponad 11 lat
  • Ostatnio:ponad 11 lat
  • Postów:6
0

Dzięki wszystkim za pomoc, już sobie poradziłem ale wprowadzę sprostowanie.

Okazało się, że tylko strona główna ma być wyświetlana w dwóch wersjach. W założeniu zadania nie mogłem zmieniać poprzednich plików które napisałem w HTML ewentualnie kilka linijek kodu ale bez zmiany rozszerzenia. Kolejnym ograniczeniem była ilość plików php.

Bałem się o to że dla każdej podstrony będę musiał kopiować ją znów i przerabiać na wersję mobilną ale w moim przypadku była to tylko zmiana stylu css. Więc to trochę źle bo zmiany musiał bym wprowadzać w obu plikach.

Na szczęście musiałem tylko stronę główną więc skopiowałem, ją i napisałem index.php, który jest prawi identyczny jak wklejony powyżej kod ale nie wypisuje echo tylko odsyła do odpowiedniej strony.

Dzięki jeszcze raz za pomoc :D

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)