#menu {
position: fixed;
width: 800px;
background: rgb(255, 255, 255); /* The Fallback */
background: rgba(255, 255, 255, 0.8);
margin-top: 30px;
}
Ich weiß, dass diese Frage millionenfach gestellt wird, aber ich kann keine Lösung für meinen Fall finden. Ich habe ein Div, das auf dem Bildschirm behoben werden sollte, auch wenn die Seite gescrollt wird, sollte es immer in der Mitte des Bildschirms zentriert bleiben!
Das Div sollte eine 500px
Breite haben, 30px
von oben entfernt sein (Rand-oben), für alle Browsergrößen horizontal in der Mitte der Seite zentriert sein und sich beim Scrollen über den Rest der Seite nicht bewegen.
Ist das möglich?
Antworten:
quelle
-400
liegt an der Breite des Div, auf das gesetzt wird800
.Die Antworten hier sind veraltet. Jetzt können Sie problemlos eine CSS3-Transformation verwenden, ohne einen Rand fest zu codieren . Dies funktioniert für alle Elemente, einschließlich Elemente ohne Breite oder dynamische Breite.
Horizontale Mitte:
Vertikale Mitte:
Sowohl horizontal als auch vertikal:
Kompatibilität ist kein Problem: http://caniuse.com/#feat=transforms2d
quelle
Wenn die Verwendung von Inline-Blöcken eine Option ist, würde ich diesen Ansatz empfehlen:
Ich habe hier einen kurzen Beitrag dazu geschrieben: http://salomvary.github.com/position-fixed-horizontally-centered.html
quelle
width
oder so hart codieren musste - im Gegensatz zu @Quentins AntwortBearbeiten September 2016: Obwohl es schön ist, gelegentlich eine Gegenstimme dafür zu erhalten, weil sich die Welt weiterentwickelt hat, würde ich jetzt mit der Antwort fortfahren, die Transformation verwendet (und die eine Menge Gegenstimmen hat). Ich würde es nicht mehr so machen.
Eine andere Möglichkeit, keine Marge berechnen zu müssen oder einen Untercontainer zu benötigen:
quelle
bottom:0
würde sicherstellen, dass das Menü immer vertikal zentriert ist, aber ich sehe jetzt, dass das OP nicht darum gebeten hat. :)Es ist möglich, das Div horizontal zu zentrieren:
html:
CSS:
Auf diese Weise haben Sie Ihren inneren Block immer zentriert, außerdem kann er leicht auf echte Reaktionsfähigkeit umgestellt werden (im Beispiel ist er auf kleineren Bildschirmen nur flüssig), daher keine Einschränkung in Bezug auf das Fragenbeispiel und die gewählte Antwort .
quelle
... oder Sie können Ihr Menü div in ein anderes einwickeln:
quelle
Hier ist eine weitere Zwei-Div-Lösung. Versucht, es kurz und nicht fest codiert zu halten. Erstens das zu erwartende HTML:
Das Prinzip hinter dem folgenden CSS besteht darin, eine Seite von "außen" zu positionieren und dann die Tatsache zu verwenden, dass es die Größe von "innen" annimmt, um letztere relativ zu verschieben.
Dieser Ansatz ähnelt dem von Quentin, kann jedoch von innerer Größe sein.
quelle
Hier ist eine Flexbox-Lösung bei Verwendung eines Vollbild-Wrapper-Div. Das Ausrichten von Inhalten zentriert das untergeordnete Div horizontal und das Ausrichten von Elementen zentriert es vertikal.
quelle