Wenn Sie meinen, möchten Sie, dass die Seitenleiste ganz oben auf der Seite angezeigt wird, beginnend über und rechts von der Navigationsleiste, wie folgt ...
... gibt es zwei einfache und einen schwierigeren Weg, der auch andere Vorteile bietet.
1. position: absolute;
Hier ist der sauberste und einfachste Weg:
- In
top: 0;
, position: absolute;
auf das Element , dass der Bedarf an der Spitze der Seite (#beta) sitzen, und ersetzt float: right;
mit right: 0;
( float: right;
wird nicht funktionieren mit , position: absolute;
sondern right: 0;
wird in diesem Zusammenhang schafft die gleiche Wirkung)
- Haben Sie
position: relative;
auf einem Element, das die gesamte Seite enthält (auf Ihrer Website, das ist #container-inner
), und keine Elemente dazwischen (so müssen Sie es entfernen #pagebody
- versucht es und es bricht nichts).
Das top: 0;
eines position: absolute;
Elements basiert auf dem nächsten übergeordneten Element position: relative;
.
2. margin-top: -XXXpx;
Wenn Sie aus irgendeinem Grund position: relative;
auf der Div in der Mitte brauchten (ich kann keinen Grund sehen, aber einer könnte auftauchen), gibt es eine andere weniger saubere Alternative.
Die Höhe des Navigations- / Header-Abschnitts ist festgelegt, sodass Sie wissen, um wie viele Pixel Sie die Seitenleiste verschieben möchten. Sie können der Seitenleiste ( #beta
) also einfach einen negativen oberen Rand von so vielen Pixeln (wie margin-top: -350px;
) geben. Das einzige Problem bei diesem Plan ist, dass Sie diesen Rand oben anpassen müssen, wenn Sie die Höhe der Kopfzeile ändern.
3. Content-First-Layout
Schließlich wäre die beste (aber am wenigsten einfache) Lösung, die HTML-Vorlage zu bearbeiten und das Element #nav im HTML- Code nach unten zu verschieben, sodass es wie die Seitenleiste #beta unter dem Seiteninhalt liegt. Setzen Sie dann einen großen Rand nach oben auf Alpha. Erstellen Sie eine Lücke in der Größe Ihres Überschriftenabschnitts #nav, und erstellen Sie dann sowohl das Element #nav als auch die Seitenleiste #beta position: absolute;
und top: 0;
(überprüfen Sie position: relative;
s wie oben) und stellen Sie sicher, dass #nav genau die richtige Größe hat, um das Loch zu füllen.
Im Allgemeinen ist es besser, wenn nicht-inhaltliche Elemente unterhalb des Hauptinhalts im HTML-Code zu haben. Dies bedeutet, dass Personen mit Screenreadern den interessanten Inhalt, für den sie gekommen sind, vor der Liste der Links hören, wo sie als Nächstes hingehen sollen, und einige Suchmaschinen geben mehr Gewicht zu Begriffen früher im Markup (ich bin mir ziemlich sicher, dass dies immer noch wahr ist).
Weitere Informationen finden Sie in einem einfachen Artikel zu den ersten Layouts von Inhalten. Hier finden Sie ein Beispiel im Zusammenhang mit reaktionsschnellen Designs, die für Mobilgeräte und Desktops geeignet sind .