2013-05-19 15 views
5

Warum wird dieser Code:CSS display: block und position: fixed

div { 
    background-color: yellow; 
    display:block; 
    position:fixed; 
} 

nicht die div als display:block anzuzeigen (das heißt Fluss über die Seite), wenn ich position:fixed hinzufügen? Es scheint anders zu funktionieren?

N.B. Ich bin sehr neu in CSS, also ich applogise wenn es nur ein dummer Fehler ist

+0

Was meinen Sie mit "über die Seite fließen" und welchen Browser benutzen Sie? Hast du schon versucht, links, oben, unten usw. zu setzen? – androidavid

+0

Div hat keine Breite oder Höhe – underscore

+0

http://jsfiddle.net/tutspack/KFKGk/ siehe – underscore

Antwort

3

Sie müssen Breite und Höhe zu jedem [leeren] Elemente mit Position entweder fixed oder absolute hinzufügen, sonst werden sie keine Größe haben.

HTML:

<div><div> 

CSS:

div { 
    background-color: yellow; 
    display:block; 
    position:fixed; 
    width:100px; 
    height:100px; 
} 

DEMO

Schließlich müssen u so etwas wie this

+3

Links sind kaputt. Könntest du sie reparieren? –

+1

Für zwei Navbars, Hinzufügen einer Höhe und Top für mich gelöst –

9

Wenn Sie position: fixed; oder position: absolute; verwenden, wird das Element genommen aus Dort kularer Fluss des Dokuments.

Die Standardeinstellung für width für ein Element div ist auto, was bedeutet, dass es die volle verfügbare Breite verwendet, wo es ist. Wenn Sie es aus dem Fluss nehmen, gibt es kein brauchbares Maß für die verfügbare Breite mehr (weil das unendlich wäre), stattdessen erhält das Element seine Breite aus seinem Inhalt.

+0

Wie kann ich es auf die Breite der Seite fließen lassen? – Sebiddychef

+0

@Sebiddychef: Sie können nicht, aber Sie können immer noch 'width: 100%;' verwenden, damit es dieselbe Breite wie das übergeordnete Element hat. Demo: http://jsfiddle.net/Guffa/RLQj6/ – Guffa