|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
[CSS]Replica sfondo assieme a testo
Sto facendo un nuovo layout, ma mi sono reso conto di non essere in grado di fare una cosa a mio parere banale: all'aumentare del testo, questo ad un certo punto sarà più lungo dell'altezza del div che lo contiene, bene, fosse un div seguito da null'altro sono capace di farlo replicare ma come fare se c'è qualcosa sotto questo div?
Esempio: ho un div con bordi arrotondati, un'immagine in alto per i 2 angoli arrotondati destro e sinistro ( alti ), un'immagine centrale per il "corpo" e un'immagine in basso per i 2 angoli destro e sinistro ( bassi ). Se io inserisco del testo nel "corpo" questo aumenta di altezza ( non avendola specificata ) andando a finire sopra il div basso per i bordi arrotondati... come faccio a far spostare tutto ciò che c'è sotto un div? Ecco un'immagine esplicativa:
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Dovrebbe essere automatico se non ho capito male come hai impostato il layout, a meno che i div in alto e in basso non siano fissi.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
Il guaio viene con il bordo arrotondato sotto ( e il footer che ho aggiunto, che tu non hai visto, è identico al menu ) al quale ho dovuto impostare un margine ( alto e destro per la colonna di destra; alto e sinistro per la colonna di sinistra ). Perchè ho impostato i margini? Perchè in HTML non riesco a fare in modo di avere i bordi arrotondati e il corpo di un elemento l'uno sopra l'altro se ho già altri elementi allo stesso livello. La cosa non è sicuramente chiara, è più facile a vedersi che a dirsi Tuttavia, impostando un margine alto al bordo arrotondato inferiore, capisci bene che se il corpo diventa più lungo mi va a sovrapporsi al bordo inferiore, che, avendogli impostato il margine superiore, non si muove da dov è... Appena posso posto un'immagine esplicativa fatta con PS perchè Paint non riesco ad usarlo.... Kwb EDIT: Ecco l'immagine esplicativa ![]() La prima parte è come si vede ora, con margini e float specificati La seconda è come si vede senza specificare i margini ma col float, nella seconda ho messo solo l'elemento di sinistra, anche perchè quello di destra ha lo stesso comportamento, si allinea però a destra ( avendo il float a destra ).
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
Ultima modifica di kwb : 03-08-2009 alle 11:31. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Con un overflow: hidden; sul div centrale cambia qualcosa?
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Comunque, secondo me dovresti usare i div top e bottom internamente al div centrale, in questo modo non avresti problemi di espansione. O, ad ogni modo, inserirli in un wrapper.
Ho fatto un abbozzo, il risultato è questo: ![]() E il codice è il seguente: Codice PHP:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Ah bene, provo, quindi metto la parte centrale ( top sx e dx, centrale sx e dx, bottom sx e dx ) dentro un unico div, ho capito bene?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
No, direi di mettere ogni "colonna" dentro un suo div, e i due div top e bottom dentro la stessa "colonna" (che poi sarà una float).
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Si scusa, avevo capito giusto ma ho espresso male... Alla fine si arrivano ad avere 2 div ( che contengono rispettivamente la parte destra e la sinistra )?
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Diciamo di sì. I due div esterni sono quelli principali, quelli "fluttuanti", per intenderci. All'interno di ognuno poi puoi metterci il contenuto con top, corpo e bottom.
Probabilmente ci sono anche metodi migliori, ma così su due piedi mi pare la soluzione più pratica. ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Quote:
Grazie, grandissimo!!
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Figurati.
ciao
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jul 2003
Città: Alessandria
Messaggi: 10167
|
Niente da fare... Non si riesce...
Ho messo le parti destre e sinistre dentro 2 div ( dx e sx ), a loro volta dentro un div centrale, ma non c'è verso. Il footer si posiziona sempre sopra perchè dentro il div centrale vado a specificare la proprietà float... Togliendola tutto funziona, ma non ottengo l'effetto desiderato.....
__________________
Dell XPS 13 (9350) :: i5-2500K - HD6870 - AsRock Z68 Pro3 - Corsair Vengeance 8GB (4x2) DDR3 :: Samsung Galaxy S4 GT-i9505
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:53.























