Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]PHP styl css dla konkretenej przeglądarki
Forum PHP.pl > Forum > Przedszkole
yta
Witam mam konieczność skorygowania małych błędów na stronie jeżeli chodzi o przeglądarkę chrome , opera smile.gif
I jedyne co znalazłem na google to coś takiego :
  1. <?php
  2. $x = $_SERVER['HTTP_USER_AGENT'];
  3.  
  4. if(substr_count($x,"chrome")!=0)
  5. { $styl = "chrome"; }
  6.  
  7. echo "";
  8. ?>


Siedze nad tym cały dzień i nie mam pomysłu jak zrobić coś takiego :
Mam styl css .styl { color:black;} /*testowo tak*/
A na chrome i tylko na nim ma być .styl1 { color:red;}

I na każdej przeglądarce : FF ,Opera , IE będę miał tekst koloru czarnego a na chrome czerwonego smile.gif
Jak mam to zroić na podstawie kodu który przedstawiłem dokładnie jak mam to wyświetlić bo nie ogarniam za bardzo sad.gif
Proszę o pomoc..
cykcykacz
Koniecznie musi to być PHP? Tutaj znalazłem javascript.
http://www.fastpc.pl/thread-593.html
yta
Nie nie musi być PHP szukałem tego na JS ale nie znalazłem ale widzę że Tobie się udało !

UPS nie działa sad.gif
dałem tak :

[JAVASCRIPT] pobierz, plaintext
  1. <script language="JavaScript">
  2. <!--
  3. if(-1 != navigator.userAgent.indexOf("CHROME")) {
  4. // MSIE
  5. document.write('<LINK REL="stylesheet"
  6. HREF="chrome.css"
  7. TYPE="text/css">');
  8. }
  9. // NN
  10. else if (-1 != navigator.userAgent.indexOf("Mozilla"))
  11. {
  12. document.write('<LINK REL="stylesheet"
  13. HREF="http://twojastrona.pl/style_moz.css"
  14. TYPE="text/css">');
  15. }
  16. //-->
  17.  
[JAVASCRIPT] pobierz, plaintext


w pliku HTML gdzieś dałem <div class="test"></div>

A w pliku chrome.css
.test { color:red; }

i ten napis pojawia się także na Mozilli i innych przeglądarkach.. Why ? sad.gif
ma to być tylko dla chrome

UWAGA !
Z tym napisem to testowo czy działa smile.gif
Age1869
Wykorzystaj to o czym pisałeś i za pomocą instrukcji warunkowej spraw, żeby wybierało różne arkusze stylów zależnie od przeglądarki smile.gif Powinno działać.

Skorzystaj z tego:
http://www.php.net/manual/en/function.get-browser.php
yta
Na innym forum podpowiedzili aby zrobić tak:
  1. <?php
  2. $x = $_SERVER['HTTP_USER_AGENT'];
  3. $styl = "undefined";
  4. if(substr_count($x,"Chrome")!=0) $styl = "Chrome";
  5. else if(substr_count($x,"Opera")!=0) $styl = "Opera";
  6. else if(substr_count($x,"MSIE")!=0) $styl = "MSIE";
  7. else if(substr_count($x,"Firefox")!=0) $styl = "Firefox";
  8. ?>
  9.  
  10. <!-- I gdzieś w znaczniku <meta> -->
  11.  
  12. <?php
  13. if ($styl = "Opera") echo '<link rel="Stylesheet" type="text/css" href="style/style_dla_opery.css">';
  14. else if ($styl = "Firefox") echo '<link rel="Stylesheet" type="text/css" href="style/style_dla_firefox.css">';
  15. else if ($styl = "MSIE") echo '<link rel="Stylesheet" type="text/css" href="style/style_dla_msie.css">';
  16. else if ($styl = "Chrome") echo '<link rel="Stylesheet" type="text/css" href="style/style_dla_chrome.css">';
  17. else if ($styl = "undefined") echo '<link rel="Stylesheet" type="text/css" href="style/style_dla_nieznanej_przegladarki.css">';
  18. ?>


I ja zrobiłem tak :

  1.  
  2. <?php
  3. if ($styl = "Chrome") echo '<link rel="Stylesheet" type="text/css" href="css/chrome.css">';
  4. ?>
  5.  
  6. <?php
  7. $x = $_SERVER['HTTP_USER_AGENT'];
  8. $styl = "undefined";
  9. if(substr_count($x,"Chrome")!=0) $styl = "Chrome";
  10. ?>
  11.  


Nie wiem czy umiejscowienie drugiego skryptu ma znaczenie ale dzialła to tak ze na każdej przeglądarce odpala się zawartość pliku chrome.css ...
czyli takowa :
  1. .wyslij { position:relative; top:100px; }


Klasa wyslij istnieje także w innym pliku *css i jest ona dla każdej innej przeglądarki niżeli nadmienione tutaj *chrome
Co jest nie tak ? sad.gif dlaczego to odnosi się do wszystkich przeglądarek ?
Proszę o pomoc..
Age1869
Pliki PHP są "przerabiane" przez silnik PHP linijka po linijce... Tzn, że najpierw musisz napisać wartość zmiennej, a dopiero później możesz z niej skorzystać...

Czyli musisz zamienić, najpierw wykrywanie przeglądarki, a potem dobieranie odpowiedniego akrusza. Aaa i możesz to wszystko wewnątrz pojedynczego <?php ?>

Edit:
Nie wiem, co to za forum, ale nie znam zapisu else if... Powinno być pisane razem elseif...
yta
Podobno można pisać w PHP else if i elseif to wychodzi i działa tak samo.
Okey więc poprawki :

  1. <?php
  2. $x = $_SERVER['HTTP_USER_AGENT'];
  3. $styl = "undefined";
  4. if(substr_count($x,"Chrome")!=0) $styl = "Chrome";
  5. else if(substr_count($x,"Opera")!=0) $styl = "Opera";
  6. else if(substr_count($x,"MSIE")!=0) $styl = "MSIE";
  7. else if(substr_count($x,"Firefox")!=0) $styl = "Firefox";
  8. ?>


Wyżej wstawione przed deklaracją DocType.
Niżej wstawione w nagłówku w head.
  1. <?php
  2. if ($styl = "Opera") echo '<link rel="Stylesheet" type="text/css" href=".css">';
  3. else if ($styl = "Chrome") echo '<link rel="stylesheet" type="text/css" href="css/chrome.css" media="screen">';
  4. ?>


Efekt ?
nie działa styl chrome.css wpisałem w nim dla klasy top:400 ; i nie ruszył się ma taką samą wysokość jak wcześniej ...
A działa na przycisk w dalszym ciągu klasa ogólna.. no i pytanie dlaczego tak ? sad.gif w przypadku chrome klasa .wyslij powinna zadziałać klasa .wyslij z pliku chrome.css czyż nie ?
mat-bi
1. można stosować else if, tylko trzeba odpowiednio klamry zastosować :]
2. kurde, ja nie mogę - PORÓWNYWANIE to nie PRZYPISYWANIE!
yta
Działa ! smile.gif
Wielkie dzięki wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.