Mehr als 5 Elemente pro Zeile in der jQuery Mobile-Navigationsleiste
Lesezeit: 9 Minuten
Ich habe erfolglos nach einer Variablen gesucht, um die maximale Anzahl von Elementen in einer einzelnen Zeile in einer Navigationsleiste zu ändern.
Ich fange gerade mit jQuery Mobile an und versuche, eine Navigationsleiste mit etwa 7 Einzelbuchstabenelementen zu erstellen. Die Navigationsleiste wird automatisch umbrochen, wenn mehr als 5 Elemente vorhanden sind, was für mein Projekt unerwünscht ist.
Kann mir jemand auf ein Stück im Code oder CSS verweisen, das dieses Verhalten regelt?
Phil Pafford
Sie haben Recht, jQM begrenzt die Spalten auf 5. Wenn Sie sich den Code ansehen, scheint dies die Funktion zu sein:
Es wird einige Arbeit erfordern, aber Sie können dies auf das gewünschte 7-Spalten-Layout erweitern. Sie müssen auch das benutzerdefinierte CSS hinzufügen, um die neuen Spalten zu handhaben, sodass Ihre neue Funktion in etwa so aussehen würde
(ursprüngliche Antwort hatte die mobile Version von jQuery falsch)
Ich habe Ihre Lösung nicht getestet, aber möglicherweise ist dies mit späteren mobilen Versionen von jQuery einfacher geworden. Die Frage ist mehrere Jahre alt.
– Lyschoening
7. Januar 2014 um 16:16 Uhr
Ich dachte mir, dass jemand auf die Frage stoßen könnte (so wie ich) und eine aktuelle Alternative haben möchte
– David Nottage
15. Januar 2014 um 3:31 Uhr
@lyschoening, kennst du einen besseren Weg? In meiner (kurzen) Recherche war dies die einzige Methode, die ich gefunden habe, die kein Monkey-Patching der Quelle oder JavaScript beinhaltete, das viel komplizierter war als diese vier CSS-Zeilen.
– Josch
26. Juli 2014 um 22:25 Uhr
Noch eine Anmerkung: Wenn ja width: inherit !important; die Elemente werden automatisch skaliert, anstatt alle die gleiche Größe zu haben. Unter manchen Umständen kann dies wünschenswert sein; Wenn die uneinheitlichen Breiten akzeptabel sind, profitieren Sie von CSS, das für eine beliebige Anzahl von Elementen funktioniert.
– Josch
26. Juli 2014 um 22:27 Uhr
Khwan Tawatsiri
Von Phil Pafford
“und füge diese hinzu: ….” { CSS-Code }
bitte ändern Sie zu …. (HINWEIS: Die Breite wurde auf 16,65 % geändert. Dieser Hinweis wurde hinzugefügt, weil StackOverflow keine Bearbeitungen von einem Buchstaben zulässt.)
Jetzt müssen Sie die Breite jedes Navigationsleistenelements berechnen ODER Sie können sie manuell festlegen. In diesem Beispiel haben wir 7 Elemente, die in der Navigationsleiste angezeigt werden sollen, und wir möchten den Platz gleichmäßig auf jedes Element aufteilen.
Für eine PHP-Seite werden wir dies tun.
<?php
/// calculating width of each navbar ///
$width = 100/7; /// dividing 100% space among 7 items. If data is coming form DB then use mysql_num_rows($resource) instead of static number "7"
?>
<style>
.ui-block-a {
width:<?php echo $width;?>% !important;
}
.ui-block-b {
width:<?php echo $width;?>% !important;
}
</style>
<?php
/// end calculating ///
?>
Bei statischen HTML-Seiten können Sie die Breite jedes Elements manuell festlegen
Dabei können Sie bis zu 7 Raster verwenden.
Verwenden Sie im HTML-Code data-grid=”e” für 6-Raster, data-grid=”f” für 7-Raster.
fzzylogik
Das OP war nicht ausdrücklich darauf bedacht, eine ungerade Anzahl von Elementen über 5 zu haben. Für gerade Zahlen können wir die responsiven Raster von jQuery in Verbindung mit der Navigationsleiste verwenden.
Die Eigenschaft white-space gibt an, wie Leerzeichen innerhalb eines Elements gehandhabt werden.
nowrap: Sequenzen von Leerzeichen werden zu einem einzigen Leerzeichen zusammenfallen. Text wird niemals in die nächste Zeile umbrochen. Der Text wird in derselben Zeile fortgesetzt, bis a <br /> Tag gefunden wird
Auch CSS-Wortumbruch-Eigenschaft
Break-Wort: Der Inhalt wird bei Bedarf in die nächste Zeile umgebrochen, und bei Bedarf wird auch ein Wortumbruch durchgeführt.
Quelle für diese Antwort: W3C
Ich habe mir auch den jQuery-Mobilcode angesehen und diesen Abschnitt gefunden:
Wenn Sie also diesen Betrag reduzieren, sollten Sie in der Lage sein, mehr Elemente in die Liste aufzunehmen. (Wie es aussieht, müssten Sie auch f und g definieren, da dieses nur bis e gekommen ist.)
Habe die Antwort nochmal aktualisiert. Kannst du auch einen Link zu deinem Versuch einfügen, damit ich ihn mir ansehen kann?
– Mach esmenschlicher
28. Mai 2011 um 12:33 Uhr
10772000cookie-checkMehr als 5 Elemente pro Zeile in der jQuery Mobile-Navigationsleisteyes