2010-09-29 16 views
11

Ho alcuni div s che sono un po 'troppo spaziosi tra il footer e il corpo. Quindi voglio convertire un div in un intervallo. Ma quando lo faccio, disturba un po 'il contenuto del footer.Converti div in span con CSS

Come posso fare questo e mantenere gli stili che sono già stati definiti per il footer?

Grazie in anticipo!

Modifica

div.footer { 
width: 986px; 
margin: 0 auto; 
padding-bottom:18px; 
border: 0; 
text-align: left; 
color:#000000; 
} 
+0

Puoi pubblicare HTML e CSS in modo che possiamo aiutarti di più? O un esempio dal vivo sarebbe fantastico. – Kyle

+2

Eh ... sei sicuro che la conversione di un elemento 'div' in un elemento' span' risolverà il tuo problema? Non è uno dei soliti metodi per stirare le peculiarità di posizionamento CSS –

+0

Sì, perché ci sono 2 div uno accanto all'altro che crea uno spazio enorme tra il corpo e il piè di pagina. Con questo intervallo può essere ridotto. @Kyle Sevenoaks, è un po 'grande e non ci sono esempi di live atm. – Yustme

risposta

17

Come già sai, la differenza tra uno <div> e uno <span> corrisponde a quello predefinito a display:block; e l'altro a display:inline;. Per fare un atto come l'altro, basta impostare lo stile di visualizzazione sull'altro tipo.

Tuttavia, hai già detto che l'hai provato e che non ha raggiunto l'effetto che stavi cercando. C'è un'altra proprietà display, che è meno noto, ma fornisce una via di mezzo tra i due:

display:inline-block; 

ciò che fa è visualizzarlo in linea, ma ancora con proprietà simili a blocchi. (Questo è fondamentalmente il modo in cui un tag <img> funziona per impostazione predefinita).

Potrebbe essere questa la risposta che stai cercando?

+0

Grazie per averlo fatto! – Yustme

0

Prova ad aggiungere overflow:auto; al vostro arco. Anche aggiungere display:block;

+0

Questo è il contrario di ciò che l'op ha chiesto. – Kyle

+0

No, non lo è, l'elemento SPAN la maggior parte delle volte ha bisogno di alcuni attributi extra per iniziare a comportarsi come un oggetto di blocco e non "cadere" sul DIV sottostante. – Ben

+5

"Quindi voglio convertire un div in uno span." Hai postato come convertire una span in una div :) – Kyle

3

Per convertire un div per un arco, è sufficiente aggiungere:

.myDiv 
{ 
    display: inline; 
} 

Ma io non sono davvero sicuro che questa è la soluzione che stai cercando.

+0

L'ho provato, ma non ha funzionato. non sta prendendo tutti quegli altri stili con esso. è solo allineato a sinistra. – Yustme

+0

Poiché ora è un elemento in linea, come abbiamo detto, convertire un div in span non è la soluzione corretta :) – Kyle

-1

Come se aggiungere questo:

position:relative /*optional*/ 
float:left; 
left:0px; 

faccio sempre questo prima che io conosca per usare arco quando ho imparato css faccio sempre al mio contenuto dell'elemento.

0

Se c'è troppo spazio tra il piè di pagina e il corpo, hai guardato quali sono i margini e le imbottiture sulle div interessate? Qualcosa ha un'altezza o un'altezza minima che sta rendendo parte del contenuto all'interno del corpo più alto della fine naturale del contenuto? Firebug è un ottimo strumento per questo.

Div è un elemento di blocco. Altri elementi di blocco sono paragrafi, intestazioni, elenchi, ecc. Span è un elemento in linea. Altri elementi in linea sono forti, immagine, ancoraggio, ecc. È ancora necessario che il corpo sia contenuto in un elemento a livello di blocco.

1

Citazione:

ci sono 2 div accanto a vicenda che crea un divario hugh tra il corpo e la footerbody e il piè di pagina

Solutions:

  • Rimuovere i div vu (s) da HTML
  • Rimuovere div vuoto (s) con l'aggiunta di display:none
  • Ridurre height del div (s)
  • Ridurre margin o padding del div (s)
  • Impostare position:relative; top:-[yourownnumber]px al .footer
+0

Grazie anche a me! – Yustme

+0

Prego. –