Stylesheet für Handys einbinden

  • Ich stehe momentan vor einem für mich etwas kniffligen Problem. Ich möchte für mobile Endgeräte gerne eine zweite Stylesheet-Datei einbinden.

    In meinem Theme wird in der functions.php in der Funtion mytest_scripts() mein Stylesheet style.css mit wp_enqueue_style() geladen.

    Zum Test habe ich da folgendes nun stehen

    Code
    if (wp_is_mobile()) {
        echo "<link rel='stylesheet' id='mytest-style-css'  href='" . get_template_directory_uri() . "/style.mobile.css?ver=4.2.2' type='text/css' />";
      } else {
       wp_enqueue_style( 'mytest-style', get_stylesheet_uri() );
      }

    Auf mobilen Endgeräten wird aber trotzdem das normale Stylesheet geladen. Wenn ich eine Funktion wie wp_is_mobile() außerhalb von Wordpress teste, dann gibt mir mein Handy auch das mobile Stylesheet.

    Dieser Plan scheint ja nicht zu funktionieren. Wie kann ich meine CSS-Datei nun so anpassen, dass sie Desktop+Mobil enthält?
    Mit Google habe ich folgendes gefunden

    Zitat

    For iPhone
    Media only screen and (min-device-width: 480px){}

    For tablets
    Media only screen and (min-device-width: 768px){}

    Kann man damit etwas anfangen?

    Einmal editiert, zuletzt von Monika (22. Juni 2015 um 15:23)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Mit Media bist du schon auf dem richtigen Weg.
    Musst nur den gewünschten style am Ende zwischen die {} einfügen und testen, ob es nach deinen Vorstellungen dann passt.
    http://cssmediaqueries.com/ <- Hier kannst du dir mal einen Überblick verschaffen, was Standardmäßig so genutzt werden kann.
    Wir hatten hier schon Fälle, da wollten User das Layout für ein bestimmtes Tablet, oder Mobile Phone anpassen und haben sich dann gewundert, das es auf anderen Devices nicht wie gewünscht funktionierte. ;)

    Bitte keine Fragen per PM, oder Foren-Chat. Für Fragen ist das öffentliche Forum da. Meine Uerdinger Seite

  • Danke das werde ich mir nach dem Essen mal ausführlich angucken.

    Ich habe schon gelesen, dass das media "handheld" wohl obsolet ist, da Apple es damals nicht für nötig hielt es auszuwerten.

    -

    Beim Überfliegen der Seite glaube ich schon zu sehen, dass es wohl auf
    Media all and (orientation:portrait)
    und
    Media all and (orientation:landscape)
    hinauslaufen wird.

    Ich werde mich der Sache später annehmen und es testen!

    Danke vorerst.

    -

    Mist, ich sehe gerade, dass ein PC-Monitor auch auf (orientation:landscape) anspringt. Ok, dann klappt das schon wieder nicht.

    Einmal editiert, zuletzt von wp neuling (22. Juni 2015 um 12:17)

  • warum dann nicht z.B. noch mit einer Weite verbinden:
    Media all and (max-width: 1020px) and (orientation:landscape)

    [size=10]Bitte immer zuerst die Forensuche nutzen und erst danach Deine Fragen hier im Forum stellen, denn sehr vieles wurde schon mehrfach beantwortet. Bitte dabei auch die Forenregeln beachten.
    Kein Support per PN - Fragen gehören ins Forum.[/SIZE]
    [size=8]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/SIZE]

  • Ich habe es nun komplett anders gemacht, sodass ich gar nicht erst auf die @media-Typen angewiesen bin. Mal davon abgesehen, sind die meiner Meinung nach eh völlig unsinnig.
    Unsinnig im Sinne von, dass schon handheld nicht respektiert wird.

    Für alle die es interessiert.
    in der functions.php in der Funktion <theme name>_scripts steht bei mir am Anfang

    Code
    wp_enqueue_style( 'mytest-style', get_stylesheet_uri() );
    
    
    if (wp_is_mobile()) {
        echo "<link rel='stylesheet' id='mytest-style-css'  href='" . get_template_directory_uri() . "/style-mobile.css?ver=4.2.2' type='text/css' />";
      } else {
        echo "<link rel='stylesheet' id='mytest-style-css'  href='" . get_template_directory_uri() . "/style-screen.css?ver=4.2.2' type='text/css' />";
      }

    Ich habe also die Stylesheets:
    - style.css - enthält alles Allgemeine, was Desktop-und Mobil-Version benötigen
    - style-screen.css - enthält spezielle Anpassungen für die Desktop-Version
    - style-mobile.css - enthält spezielle Anpassungen für die Mobile-Version

    Klappt wunderbar.

  • Ich habe es nun komplett anders gemacht, sodass ich gar nicht erst auf die @media-Typen angewiesen bin. Mal davon abgesehen, sind die meiner Meinung nach eh völlig unsinnig.
    Unsinnig im Sinne von, dass schon handheld nicht respektiert wird.

    Konzept nicht verstanden. Responsive auch nicht.

    Macht ja nix, läuft. ;)

  • Keine Sorge, ich weiß schon was Responsive Design ist und verstehe auch das Konzept. Bin ja nicht doof :P
    Aber wieso sollte man sich die Mühe machen und 10 verschiedene Weichen einbauen, wenn es anders schneller und einfacher geht?

  • Offensichtlich nicht, sonst würdest Du das nicht in Frage stellen.

    Es gibt halt eben unterschiedliche Ansprüche, denen man gerecht wird. Oder auch nicht. Mobile Geräte haben nun mal unterschiedliche Displaygrößen und damit verbunden Auflösungen sowie hoch- und querformat. Will man sicherstellen, dass eine Webseite (oder App) auf einem 10"-Device genauso schick daher kommt, wie auf einem 5"-Device, nutzt man media queries. Anders geht's nicht... davon abgesehen vermeide ich zusätzliche Requests wie die Pest wenn es geht... ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!