2016-04-19 8 views
0


Ich bin in ein interessantes Problem geraten. Auf meiner Website habe ich zwei Versionen der Navigationsleiste für Handys - Querformat und Hochformat. Um diese beiden zu erkennen, verwende ich die CSS-Medienausrichtung.Website verwandelt sich in eine Landschaft mit Tastatur

Wenn ich jedoch meine Tastatur öffne, wird die Seite zur Landschaft, weil die tatsächliche Seitengröße kleiner wird.
Kann mir jemand helfen, das zu beheben? Alles, woran ich denken kann, ist Fokus Ereignis auf Eingaben, so dass, wenn sie konzentriert sind, das Porträt Manu eingeschaltet ist, aber es würde das Menü auch auf Landschaft ändern. Hier ist ein illustratives Bild Portrait/Landscape/Portrait with keyboard

Vielen Dank!

+0

Veröffentlichen Sie Ihre Mediendefinitionen. Müssen Sie wirklich die Orientierung/Höhe überprüfen? Die Breite ist normalerweise genug. – Malk

+0

Ich weiß nicht, was Sie meinen, indem Sie die Breite überprüfen. Ich finde meinen Weg (hinzugefügt zu post) die einfachste Erkennung möglich. – Kuxa

Antwort

1

Wenn Sie überprüfen Media Queries W3C Recommendation

Sie diesen interessanten Satz finden:

Die ‚Orientierung‘ Medien-Funktion ist ‚Porträt‘, wenn der Wert der ‚height‘ Medien-Funktion größer oder entspricht dem Wert der 'Breite' Medienfunktion. Ansonsten ist "Orientierung" "Landschaft".

So, wenn die Tastatur geöffnet wird, wird Ihre Seite in Querformatmodus.

Es gibt mehrere Möglichkeiten, dieses Problem zu überwinden, können Sie überprüfen this beantworten.

0

Sie sollten die Höhe/Ausrichtung vollständig ignorieren. Etwas wie dieses:

@media (max-width: 480px) 
{ 
    /* inline menu */ 
} 

@media (min-width: 481px) 
{ 
    /* multiple rows menu */ 
} 
+0

Danke, aber ich will nicht. Ich verwende EMs und% s als Einheiten für die Navigationsleiste, damit ich mich nicht mit Pixeln anlegen muss. – Kuxa

+0

Also stattdessen EMs? Vergiss trotzdem die Höhe. – Malk

+0

Es ist mir egal, weder Höhe noch Breite. Ich benutze _orientation_ media query. Wenn ein Tablet im Hochformat größer als 480px ist, würde Ihre Auflösung auch im Hochformat Querformat anzeigen, wenn Sie wissen, was ich meine. Und das will ich nicht. – Kuxa