Back to top

Autore Topic: background "fluido" con i css  (Letto 18823 volte)

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
background "fluido" con i css
« il: 19 Gen 2010, 20:37:14 »
ciao ragazzi... e ragazze!!  ;D

sono qui con una buona notizia e una richiesta di aiuto.
ho visto che le richieste per "creare" uno sfondo fluido sono molto frequenti e che le soluzioni adottate si appoggiano sempre (correggetemi se sbaglio) a degli script che molto spesso bisticciano con gli altri script di joomla.

vorrei perciò condividere col forum un metodo per adattere lo sfondo allo schermo usando solo css.
veniamo al dunque.

si tratta di utilizzare 3 "livelli":
-il primo per eliminare ogni padding e margin e impostare widht e height al 100%.
-il secondo conterrà l'immagine di sfondo
-il terzo per il body

in index.php aggiungiammo questo:

Codice: [Seleziona]
<body>
<div><img id="bg_image" src="/path/to/image.png"/></div>
<div id="scrollable">
...........
</div>
</body>


e nel css andiamo ad aggiungere queste regole:

Codice: [Seleziona]
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}
#bg_image {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
}
#scrollable {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 2;
}

questo sarà il risultato: comunanzacoste.it/
ovviamente dovremo togliere il "vecchio" background caricato dal css che altrimenti si andrà a sovrapporre a quello fluido

questa era la buona notizia, ora la richiesta di aiuto....
a causa dei differenti tipi di schermi in circolazione (4:3, 16:9, wide ecc..) si hanno diverse visualizzazioni con conseguenti "deformazioni" dell'immagine, quindi ho pensato di far si che l'immagine si adatti solo in altezza allo schermo e mantenga le giuste proporzioni in larghezza modificando in questo modo:

Codice: [Seleziona]
#bg_image {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1;
  width: auto; <<<<
  height: 100%;

il solo problema che rimane è che l'immagine rimane ancorata in alto a sx, certo direte, c'è "top:0; left:0;", ma ho provato con tutte le regole di posizionamento che conosco e non sono riuscito a centrare lo sfondo in orizzontale.
qualcuno potrebbe darci un'occhiata??

PS: scusate il post kilometrico  :P
« Ultima modifica: 14 Mar 2010, 00:04:39 da tonicopi »

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #1 il: 19 Gen 2010, 21:06:34 »
ciao
scusa la mia domanda ,
 e dove sarebbe lo sfondo fluido  nel link da te postato?
io vedo uno sfondo bianco ho sbaglio ?

poi a che serve avere un'immagine che si ridimensiona in  altezza?
il problema non e quello dell'altezza ma della larghezza.
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #2 il: 19 Gen 2010, 21:34:03 »
ops... hai ragione!!
avevo lasciato il path dell'immagine in locale... :P

poi a che serve avere un'immagine che si ridimensiona in  altezza?
il problema non e quello dell'altezza ma della larghezza.
in casi particolari potrebbe essere utile per non provocare uno stretch eccessivo, specie negli schermi wide....

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #3 il: 19 Gen 2010, 22:13:32 »
Beh, inevitabilmente qualche deformazione nell'immagine ci sarà ma la soluzione è buona.
L'hai testata anche con IE ?

Quanto al codice per centrarla hai provato con margin: 0 auto;
 :)
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #4 il: 19 Gen 2010, 22:22:57 »
si funziona con tutti  i browser...

avevo già provato il mangin:auto, non va...
il fatto è che non ci sono punti di riferimento fissi per stabilire una regola. l'unico sarebbe il position o background-position ma non me li prende.
il massimo che sono riuscito ad ottenere è di allineare il bordo sinistro dell'immagine al centro della pagina, ma che ce famo?? :-\

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #5 il: 19 Gen 2010, 22:41:33 »
bravo il nostro amico  unica cosa  l'immagine viene schiacciata  un poco troppo  una piccola modifica ho fatto e l'immagine sembrerebbe  che non venga schiacciata

Codice: [Seleziona]
html, body {
  margin: 0;
  padding: 0;
  width: 100%;
  height: 100%;
}
#bg_image {
height:auto;<<< qui
left:0;
position:fixed;
top:0;
width:100%;
z-index:1;

}
#scrollable {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  z-index: 2;
}

vista l immagine con 2 portatili uno da 13pollici wide 1280x768
e uno 17 sempre wide  1600x900
sembra  buona su tutte e due le risoluzioni
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #6 il: 20 Gen 2010, 13:31:26 »
bravo il nostro amico  unica cosa  l'immagine viene schiacciata  un poco troppo  una piccola modifica ho fatto e l'immagine sembrerebbe  che non venga schiacciata

in effetti con la tua modifica non viene schiacciata, l'immagine si adatta in larghezza allo schermo e mantiene le proporzioni originali, ma viene tagliata la parte inferiore, e non è più tanto fluida.
comunque è una soluzione che potrebbe essere utile  :)

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #7 il: 20 Gen 2010, 16:14:12 »
esi hai ragione viene tagliata in fondo
vediamo se riusciamo a non tagliarla in fondo.
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #8 il: 25 Gen 2010, 02:24:47 »
pensate che sia il caso di fare una guida o metterla nel wiki?? :)

Offline Nuvola6

  • Appassionato
  • ***
  • Post: 718
  • Sesso: Femmina
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #9 il: 25 Gen 2010, 11:37:41 »
Io credo proprio di sì. Ad ogni modo, ricdata, come sei rimasto con l'ulimo appunto che facevi a conti1?

cito: in effetti con la tua modifica non viene schiacciata, l'immagine si adatta in larghezza allo schermo e mantiene le proporzioni originali, ma viene tagliata la parte inferiore, e non è più tanto fluida.

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #10 il: 26 Gen 2010, 15:03:08 »
...come sei rimasto con l'ulimo appunto che facevi a conti1?

quella di conti1 è una soluzione non perfettamente "fluida", ma consente in ogni modo di riempire bene lo schermo. trovo che sia utile sopratutto con immagini (ad esempio persone o volti) nelle quali uno strech orizzontale eccessivo rovinerebbe l'immagine stessa

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #11 il: 26 Gen 2010, 15:50:17 »
Pubblica entrambe le soluzioni, spiegandone la differenza, nel wiki ricdata. Sezione miniguide  :)
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #12 il: 26 Gen 2010, 16:06:38 »
be certo mettendo un viso verrebbe tagliato in basso ma proporzione rimarrebbe   in alternativa al taglio in basso verrebbe schiacciato leggermente non ci sono molte alternative  e meno che si faccia un script apposito che non vadi in conflitto . anche in rete soluzioni non  c'è altre a quella postata .
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline 4NG3LUS

  • Nuovo arrivato
  • *
  • Post: 24
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #13 il: 03 Feb 2010, 10:26:23 »
ottimo! un dubbio mi sorge sulla disposizione dei vari elementi all'interno della pagina. presumo che tutto vada impostato in percentuale. a parte questo avendo il width al 100% ma l'height su auto, come posso fare a creare ad esempio una barra di menù che stia in basso, attaccata alla fine dell'immagine?

Offline conti1

  • Global Moderator
  • Instancabile
  • *****
  • Post: 9075
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #14 il: 03 Feb 2010, 13:04:43 »
ciao
4NG3LUS
xche scrivi un tuo post sotto un altro  post che non ha nulla a che vedere con la tua domanda ?
apri un tuo post con quello che vuoi sapere grazie
se possibile postare il link  x risolvere al meglio il problema grazie
evitare nomi commerciali grazie

Offline 4NG3LUS

  • Nuovo arrivato
  • *
  • Post: 24
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #15 il: 03 Feb 2010, 13:40:35 »
ciao
4NG3LUS
xche scrivi un tuo post sotto un altro  post che non ha nulla a che vedere con la tua domanda ?
apri un tuo post con quello che vuoi sapere grazie
credo che la mia domanda abbia a che fare col post in quanto questo genere di soluzione porta a sviluppare il layout in maniera particolare, quindi facevo un esempio, tanto per capire come, in questo contesto possono essere disposti degli elementi, visto l'altezza "fluida" del background. pensavo fosse utile discuterla per arricchire il topic di info riguardo questa soluzione.

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #16 il: 03 Feb 2010, 14:08:07 »
ciao 4NG3LUS,

in effetti la tua domanda non è molto inerente al post, per il semplice fatto che il layout del body della pagina non viene affatto modificato e lo puoi quindi gestire come faresti in un qualsiasi altro caso.
la barra che dici non va inserita nel div dello sfondo, ma nel div "scrollable", anche perchè avendo uno z-index inferiore te la ritrovereti in secondo piano rispetto alla pagina e quindi coperta
« Ultima modifica: 03 Feb 2010, 14:10:41 da ricdata »

Offline 4NG3LUS

  • Nuovo arrivato
  • *
  • Post: 24
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #17 il: 03 Feb 2010, 14:58:42 »
ciao a te,
ovviamente parlavo di mettere i contenuti su scrollable. forse non mi sono spiegato bene ma, con questa soluzione, quando si ha l'esigenza di "ancorare" degli elementi all'immagine di fondo, o di metterli comunque in relazione alla stessa, credo ci si debba comportare in maniera totalmente  particolare. facevo l'esempio di una barra di menù orizzontale, posta subito sotto all'immagine di fondo ad esempio. dato che l'altezza è variabile contenente l'immagine è variabile, mentre quella di scrollable è al 100% non avrei riferimenti per il posizionamento del menù. questo è solo un esempio. infatti una cosa fondamentale potrebbe essere quella dei div contenitore con i contenuti del sito stesso in relazione all'altezza dell'immagine.

Offline dano

  • Nuovo arrivato
  • *
  • Post: 1
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #18 il: 20 Set 2010, 21:31:46 »
salve, mi sono appena iscritto.
stavo vedendo di inserire anche io un background fluido con il vostro codice ed ho ovviato al problema "della striscia bianca" modificando widht end height in #bg_image con min-height:750px ( altezza img. in px) ed min-width:100%;
non so se avevate risolto gia diversamente, nell' eventualità fatemi sapere.


ody { margin: 0; padding:0; width: 100%; height: 100%;}
#bg_image { min-height:750px; quileft:0; position:fixed; top:0; min-width:100%; z-index:1;}
#scrollable { position: absolute; width: 100%; height: 100%; top: 0; left: 0; z-index: 2; }

Offline ariess

  • Global Moderator
  • Instancabile
  • ********
  • Post: 4056
  • Sesso: Maschio
    • Mostra profilo
Re:background "fluido" con i css
« Risposta #19 il: 20 Set 2010, 22:57:26 »
benvenuto dano,

di quale striscia bianca parli?
tieni conto che se inserisci misure specifiche in px, in alcuni pc con risoluzioni maggiori potresti avere dei vuoti...
per fare la prova del nove prova a premere CRTL e - (meno) fino a rimpicciolire del tutto il template e controlla che lo sfondo riempia bene lo schermo (CTRL e 0 per tornare alla zoom normale)
ciao

 



Web Design Bolzano Kreatif