• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Mobile-Ansicht

MartyMcFly

Neues Mitglied
Hallo. Ich hab folgendes Problem: Ich möchte dass für die Mobile Ansicht meiner Seite eine seperate CSS Datei geladen wird. Meine momentane PHP-Datei sieht wie folgt aus:
PHP:
<!DOCTYPE HTML>
<html>
<head>
<title>Mobile-Ansicht Test</title>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="css/screen.css"  media="screen">
<link rel="stylesheet" type="text/css" href="css/handheld.css" media="handheld">
<?php

require('check_mobile.php');

$style = '';

if(check_mobile()) $style = 'handheld';

?>
</head>
<body>
<header>
         <div class="navWrapper" id="home">
           <div class=" clearfix">
             <h2 class="companyName">Text</h2>
             <nav class="mainNav clearfix">
               <ul>
                 <li><a href="index.php">Home</a></li>
                 <li><a href="pictures.php" class="smoothScroll">Bilder</a></li>
                 <li><a href="about.php" class="smoothScroll">Über mich</a></li>
                 <li><a href="contact.php" class="smoothScroll">Kontakt</a></li>
               </ul>
             </nav>
           </div>
         </div>
       </header>
<div id="content">Hier steht Ihr Text</div>
<div id="footer">

  <p class="left"><a href="kontakt.html">Kontakt</a></p>

  <p class="right">&copy;Name<br />2016</p>

  <p class="centered"><a href="impess.html">Impressum</a><br />----------------</p>

</div>
</body>
</html>
Die PHP-Funktion ist folgende:
PHP:
<?php

function check_mobile() {
  $agents = array(
  'Windows CE', 'Pocket', 'Mobile',
  'Portable', 'Smartphone', 'SDA',
  'PDA', 'Handheld', 'Symbian',
  'WAP', 'Palm', 'Avantgo',
  'cHTML', 'BlackBerry', 'Opera Mini',
  'Nokia'
  );

  // Prüfen der Browserkennung
  for ($i=0; $i<count($agents); $i++) {
  if(isset($_SERVER["HTTP_USER_AGENT"]) && strpos($_SERVER["HTTP_USER_AGENT"], $agents[$i]) !== false)
  return true;
  }

  return false;
}

?>

Das Problem ist, dass die handheld.css bei mir nicht geladen wird (ja. auf den Handy getestet falls ihr mich komplett bekloppt erklärt) :D
 
Werbung:
Hallo

Gleich vorweg: Es gibt keine Möglichkeit bestimmte Geräte zu erkennen. Demnach gibt es auch keine mobile Ansicht.

Von daher ist deine Vorgehensweise zum Scheitern verurteilt. Auf Media Queries wie handheld reagieren die Geräte deshalb schon lange nicht mehr und alle halbwegs aktuellen haben darauf noch nie reagiert.

Fast wöchentlich erscheinen neue Geräte mit neuen Auflösungen und Displaygrößen. Dabei sind die Auflösungen schon lange nicht mehr von den Displaygrößen abhängig, Smartphones haben häufig höhere Auflösungen wie viel größere Desktop-Monitore.

Das einzig sinnvolle Vorgehen ist deshalb heutzutage mit screen und min-width bzw. max-width die Auflösung abzufragen und dafür zu sorgen, dass nicht seitwärts gescrollt werden muss. Ansonsten werden nur eindeutige Abfragen wie print oder braille benutzt, wobei die meisten Webseitenersteller damit leider schon überfordert sind.

Alles andere ist ein Kampf gegen Windmühlen. Der kostet unnötig Zeit und Energie. Das Ergebnis sollte zudem bekannt sein.

Gruss

MrMurphy
 
Zuletzt bearbeitet:
Gleich vorweg: Es gibt keine Möglichkeit bestimmte Geräte zu erkennen. Demnach gibt es auch keine mobile Ansicht.
Doch,das geht,wenn man sieht,dass er keine bestimmten sondern alle mobilen erkennen will

Mit einer if-abfrage erkennst du die meisten mobilen Browser/Handys per User_Agent:
PHP:
<?php
  if(preg_match('/(alcatel|android|blackberry|benq|cell|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mobi|motorola|nokia|palm|panasonic|philips|phone|sagem|sharp|smartphone|sony|symbian|t-mobile|up\.browser|up\.link|vodafone|wap|wireless|xda|zte)/i', $_SERVER['HTTP_USER_AGENT']))
  {
//Wenn mobil,dann...
echo "<meta http-equiv='refresh' content='1;URL=Mobil/Home.php '>";
  }
  else
  {
//Sonst...
  echo "<meta http-equiv='refresh' content='1;URL=Home.php '>";
  }
?>
Statt dem echo kannst du ja einen anderen php-code einfügen.
 
Zuletzt bearbeitet von einem Moderator:
Werbung:
Offenbar hast du den Einwand von MrMurphy nicht verstanden oder verstehen wollen. Selbst wenn du weißt, dass es sich um ein mobiles Gerät handelt, ist dieses Wissen sinnlos für das Design der Seite. Wichtig für die Darstellung und gute Bedienbarkeit sind andere Faktoren, wie von MrMurphy deutlich dargestellt.
 
Zurück
Oben