2013-05-19 11 views
5

Perché sarà questo codice:CSS: block e position: fixed

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

non visualizzare la div come display:block (vale a dire il flusso di tutta la pagina) quando aggiungo position:fixed? Sembra che funzioni diversamente?

N.B. Sono molto nuovo al CSS quindi mi scuso se si tratta solo di un errore stupido

+0

cosa intendi con "flusso attraverso la pagina" e quale browser utilizzi? hai già provato a impostare a sinistra, in alto, in basso ecc.? – androidavid

+0

div non ha una larghezza o altezza – underscore

+0

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

risposta

3

È necessario aggiungere larghezza e altezza a qualsiasi elemento [vuoto] con posizione fixed o absolute, altrimenti non avranno alcuna dimensione.

HTML:

<div><div> 

CSS:

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

DEMO

Infine u bisogno di qualcosa di simile this

+3

I collegamenti sono interrotti. Potresti sistemarli? –

+1

Per due barre navali, aggiungendo un'altezza e la parte superiore risolta per me –

9

Quando si utilizza position: fixed; o position: absolute;, l'elemento viene estratto Là flusso gular del documento.

L'impostazione predefinita per width per un elemento div è auto, che significa che utilizzerà l'intera larghezza disponibile dove si trova. Quando lo si estrae dal flusso, non esiste più alcuna misura utilizzabile per la larghezza disponibile (poiché ciò sarebbe infinito), quindi l'elemento otterrà la sua larghezza dal suo contenuto.

+0

Come posso farla scorrere alla larghezza della pagina? – Sebiddychef

+0

@Sebiddychef: non è possibile, ma è comunque possibile utilizzare 'width: 100%;' per fare in modo che abbia la stessa larghezza dell'elemento genitore. Demo: http://jsfiddle.net/Guffa/RLQj6/ – Guffa

Problemi correlati