Ich implementiere die Paginierung und sie muss zentriert werden. Das Problem ist, dass die Links als Block angezeigt werden müssen, sodass sie verschoben werden müssen. Aber dann text-align: center;
funktioniert es nicht. Ich könnte es erreichen, indem ich das Wrapper-Div-Padding von links gebe, aber jede Seite hat eine andere Anzahl von Seiten, so dass das nicht funktionieren würde. Hier ist mein Code:
.pagination {
text-align: center;
}
.pagination a {
display: block;
width: 30px;
height: 30px;
float: left;
margin-left: 3px;
background: url(/images/structure/pagination-button.png);
}
.pagination a.last {
width: 90px;
background: url(/images/structure/pagination-button-last.png);
}
.pagination a.first {
width: 60px;
background: url(/images/structure/pagination-button-first.png);
}
<div class='pagination'>
<a class='first' href='#'>First</a>
<a href='#'>1</a>
<a href='#'>2</a>
<a href='#'>3</a>
<a class='last' href='#'>Last</a>
</div>
<!-- end: .pagination -->
Um auf die Idee zu kommen, was ich will:
Antworten:
Das Entfernen
float
und Verwenden von sinline-block
kann Ihre Probleme beheben:(Entfernen Sie die Zeilen, die mit beginnen,
-
und fügen Sie die Zeilen hinzu, die mit beginnen+
.)Code-Snippet anzeigen
inline-block
Funktioniert browserübergreifend, auch unter IE6, solange das Element ursprünglich ein Inline-Element ist.Zitat aus dem Quirksmode :
Dies kann Schwimmer oft effektiv ersetzen:
Aus der W3C-Spezifikation :
quelle
Seit vielen Jahren verwende ich einen alten Trick, den ich in einem Blog gelernt habe. Es tut mir leid, dass ich mich nicht an den Namen erinnere, um ihm Credits zu geben.
Auf jeden Fall sollte dies funktionieren, um schwebende Elemente zu zentrieren:
Sie benötigen eine Struktur wie diese:
Der Trick besteht darin, Float nach links zu geben, damit die Container die Breite je nach Inhalt ändern. Dann ist es eine Frage der Position: relativ und belassen 50% und -50% auf den beiden Containern.
Das Gute ist, dass dies browserübergreifend ist und ab IE7 + funktionieren sollte.
quelle
margin: 0 auto;
float: left;
war das am.main-container
und nicht nötig.fixer-container
.overflow: hidden;
Das Zentrieren von Schwimmern ist einfach . Verwenden Sie einfach den Stil für Container:
Ändern Sie den Rand für schwebende Elemente:
oder
und lass den Rest so wie er ist.
Es ist die beste Lösung für mich, Dinge wie Menüs oder Paginierung anzuzeigen.
Stärken:
Cross-Browser für alle Elemente (Blöcke, Listenelemente usw.)
Einfachheit
Schwächen:
@ arnaud576875 Die Verwendung von Inline-Block- Elementen funktioniert in diesem Fall hervorragend (browserübergreifend), da die Paginierung nur Anker (Inline), keine Listenelemente oder Divs enthält:
Stärken:
Weknesses:
Lücken zwischen Inline-Block-Elementen - es funktioniert genauso wie ein Leerzeichen zwischen Wörtern. Dies kann zu Problemen bei der Berechnung der Breite des Containers und der Styling-Ränder führen. Die Lückenbreite ist nicht konstant, aber browserspezifisch (4-5px). Um diese Lücken zu schließen, würde ich den Code von arnaud576875 hinzufügen (nicht vollständig getestet):
.pagination {Wortabstand: -1em; }}
.pagination a {Wortabstand: .1em; }}
In IE6 / 7 funktioniert dies bei Block- und Listenelementelementen nicht
quelle
Stellen Sie Ihren Container
width
inpx
und fügt:Referenz .
quelle
Verwenden von Flex
quelle
Ich denke, der beste Weg ist,
margin
statt zu verwendendisplay
.Dh:
Überprüfen Sie das Ergebnis und den Code:
http://cssdeck.com/labs/d9d6ydif
quelle
quelle
IE7 weiß es nicht
inline-block
. Sie müssen hinzufügen:quelle
Fügen Sie dies Ihrem Styling hinzu
* Wenn Ihre Containerbreite 50px beträgt, setzen Sie 25px, wenn es 10em ist, setzen Sie 5em.
quelle
Sie können dies auch tun,
.pagination
indem Sie "text-align: center" durch zwei bis drei Zeilen CSS für left, transform und je nach den Umständen positionieren.quelle
Schritt 1
Erstellen Sie zwei oder mehr Divs, die Sie möchten, und geben Sie ihnen eine bestimmte Breite wie 100 Pixel für jedes Div. Schweben Sie sie dann nach links oder rechts
Schritt 2
Verziehen Sie dann diese beiden Divs in einem anderen Div und geben Sie ihm die Breite von 200px. auf diese div Marge automatisch anwenden. Boom es funktioniert ziemlich gut. Überprüfen Sie das obige Beispiel.
quelle
Einfach hinzufügen
in mein CSS-Menü von
hat auch den Zentriertrick gemacht
quelle