Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    repeat-y non funziona con unità percentuale

    Ciao a tutti.

    Sto testando su FF e IE una pagina, mi sono accorto che non c'è verso di ripetere un immagine sull'asse Y per mezzo della dichiarazione "repeat-y" con valore percentuale.

    Vi posto il codice e un link di riferimento.
    codice:
    @charset "iso-8859-1";
    
    body {margin: 0px; background-color:#FFFFFF; font:1em arial, verdana, sans-serif; text-align: center;}
    
    a:link, a:vlink, a:alink {color:#000088;}
    a:hover {color:#FFFFFF;}
    
    #up {repeat-x top left; clear: right; width: 90%; height: 66px; padding-top: 20px; padding-left: 10%; font-weight: bold; font-family: Verdana; font-size: 40px; background: url(http://kettlebell.altervista.org/immagini/Immagine8.jpg); text-align: left; color:#000088; border: 0px; margin: 0px; padding-right: 0%; padding-bottom: 20px;}
    
    #sx1 {float: left; text-align: left; 
    padding: 0px; margin: 0px; border: 0px;
    width: 52px; 
    height: 52px; 
    background-image: url(http://kettlebell.altervista.org/imm...Immagine14.bmp);}
    
    #cent {height: 32px; width: auto; background-color: #000000; color:#000077; text-align: left; word-spacing: 20px; font-weight: bold; padding-left: 100px; padding-top: 10px; padding-bottom: 10px; }
    
    #dx1 {float: right;
    padding: 0px; margin: 0px; border: 0px;
    width: 52px; 
    height: 52px; 
    background-image: url(http://kettlebell.altervista.org/imm...Immagine15.bmp);}
    
    #sx {background-repeat: repeat-y;
    float: left; clear: left;
    width: 52px; 
    height: 50%; 
    padding: 0px; margin: 0px; border: 0px;
    background: url(http://kettlebell.altervista.org/immagini/Immagine5.jpg);
    }
    
    #dx {background-repeat: repeat-y;
    float: right; clear: right;
    width: 52px; 
    height: 120px; 
    padding: 0px; margin: 0px; border: 0px;
    background: url(http://kettlebell.altervista.org/immagini/Immagine6.jpg);
    }
    SX e DX sono rispettivamente le colonne laterali sinistra e destra che dovrebbero apparire previa riproduzione dell'immagine in senso verticale, per fare un esempio ho impostato l'altezza della "sx" su un valore % e la "dx" con un valore in px, solo quest'ultima lavora...

    Ecco l'esempio: http://kettlebell.altervista.org/index.html

    Non ho nessun problema con la ripetizione in percentuale con repeat-x, infatti la barra principale del sito contenente la scritta "kettlebell" è realizzata così. Qualcuno ha qualche idea?

    ps: l'html lavora con i div.
    Perpetual Ribellion With Absolutely No Cause

  2. #2
    ho proseguito con le prove, mi sono accorto da solo che dovevo applicare la proprietà al body, unico problema è che adesso posso farlo solo da un lato, come si può vedere dal link aggiornato mi compare solo a sinistra e non a destra, ho impostato un:

    codice:
    body {margin: 0px; background-color:#FFFFFF; font:1em arial, verdana, sans-serif; text-align: center;
    background: url(http://kettlebell.altervista.org/immagini/Immagine5.jpg) repeat-y top left;
    background: url(http://kettlebell.altervista.org/immagini/Immagine6.jpg) repeat-y top right;}
    è perchè solo una immagine può essere ripetuta vero? Devo creare un div contenitore che includa tutti gli altri e impostare il repeat-y top right li dentro?
    Perpetual Ribellion With Absolutely No Cause

  3. #3
    ok, ho fatto altre prove, nella speranza che prima o poi qualcuno mi dia una mano...
    ho consultato il seguente link: http://css.html.it/guide/lezione/80/...di-background/

    ho provato a settare due contenitori oltre il body come da esempio, e ho ottenuto questo:
    codice:
    @charset "iso-8859-1";
    
    body {margin: 0px; background-color:#FFFFFF; font:1em arial, verdana, sans-serif; text-align: center;}
    
    div#son {background: url(http://kettlebell.altervista.org/immagini/Immagine6.jpg) repeat-y top right;}
    
    div#son2 {position: relative; background: url(http://kettlebell.altervista.org/immagini/Immagine5.jpg) repeat-y top left;}
    risultato? Nulla, a meno che non metta il percorso nel body stesso non compare nessuna ripetizione di immagine, il mio html è questo:

    codice:
    <body vlink="#000088" alink="#000088">
     <div id="son">
      <div id="son2">
       <div id="up">KETTLEBELL</div>
       <div id="sx1"></div>
       <div id="dx1"></div>
       <div id="sx"></div>
       <div id="dx"></div>
       <div id="cent">LINK1  LINK2  LINK3</div>
      </div>
     </div>
    in fase di costruzione...

    qualcuno sa dirmi cosa devo fare?
    Perpetual Ribellion With Absolutely No Cause

  4. #4
    Ciao, non ho ben capito il tuo problema, ma mi pare che tu stia facendo confusione.

    Rifacendoci al tuo problema iniziale, se imposti due volte il "background:" allo stesso elemento, il secondo sovrascriverà le impostazioni del primo; ovviamente è così sempre e non solo per "background:".

    Per venire al tuo problema successivo, elimina position:relative o quantomeno mettilo nel div genitore, cioè #son: hai ricopiato male l'esempio del tutorial.
    sopra la panca la capra campa, sotto la panca la suddetta decede (soffrendo).
    (il mio vero nome è davidino ^_^)

  5. #5
    ciao, grazie per aver risposto, ora il codice è
    codice:
    @charset "iso-8859-1";
    
    body {margin: 0px; background-color:#FFFFFF; font:1em arial, verdana, sans-serif; text-align: center;}
    
    div#son {position: relative; background-image: url(http://kettlebell.altervista.org/immagini/Immagine6.jpg); repeat-y top right;}
    
    div#son2 {background-image: url(http://kettlebell.altervista.org/immagini/Immagine5.jpg); repeat-y top left;}
    Ho messo position relative su "son" (ho anche provato a non metterlo affatto), e mi sono accorto anche di aver tralasciato il ";" a fine dichiarazione (...). Comunque sia nulla da fare, non ripete lo stesso le immagini.
    link al sito: http://kettlebell.altervista.org/index.html

    Cos'altro posso provare?
    Perpetual Ribellion With Absolutely No Cause

  6. #6
    Fra l'altro, sto provando a fare la stessa cosa su una pagina pulita, ossia con html:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN">
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    
    <title> Prova </title>
    <link rel="stylesheet" type="text/css" href="http://kettlebell.altervista.org/t1css.css" />
    </head>
    
    
    
    <body vlink="#000088" alink="#000088">
     <div id="son">
      <div id="son2">
      </div>
     </div>
    e con css:

    codice:
    @charset "iso-8859-1";
    
    body {margin: 0px; background-color:#FFFFFF; font:1em arial, verdana, sans-serif; text-align: center;}
    
    #son {position: relative; background-image: url(http://kettlebell.altervista.org/immagini/Immagine6.jpg); repeat-y top right;}
    
    #son2 {background-image: url(http://kettlebell.altervista.org/immagini/Immagine5.jpg); repeat-y top left;}
    non riesco proprio a capire, non interpreta proprio i due "son", come se non ci fossero. Solo se metto del testo che occupa il div dell'html funziona, e solo per la lunghezza verticale delle linee di testo, ma per % non funziona mica.
    Perpetual Ribellion With Absolutely No Cause

  7. #7
    Ciao

    Esistono specifiche proprietà con le quali impostare il background degli elementi, il tuo codice non funziona perché tenti di utilizzarle in maniera scorretta.

    La proprietà background è solo un (comodissimo) raccoglitore delle varie proprietà di background: accetta i valori dei vari e singoli background-qualcosa, se li inserisci in un ordine corretto; questo permette di risparmiare linee di codice.

    Le proprietà singole che ti interessano nel tuo caso sono:
    • background-image: valore
    • background-repeat: valore
    • background-position: valore

    Puoi in effetti riassumerle nel singolo background così:
    background: valore-image valore-repeat valore-position

    codice:
    ora capirai che questo tuo codice non ha senso:
    #son {background-image: url(immagini/Immagine5.jpg); repeat-y top right;}
    
    dovrebbe essere così:
    #son {
     background-image: url('immagini/Immagine5.jpg');
     background-repeat: repeat-y;
     background-position:top right
    }
    
    oppure così:
    #son {background: url('immagini/Immagine5.jpg') repeat-y top right}

    Ti lascio una pagina di test funzionante, buon proseguimento.
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" >
    <html xmlns="http://www.w3.org/1999/xhtml" lang="it" xml:lang="it">
    <head>
    	<title>Bla Bla Bla</title>
    	<style>
    		/* è meglio usare un .css esterno ovviamente */
    		
    		html,body,div,p{margin:0;padding:0}
    		div#esterno {
    			background-image: url('immagini/Immagine6.jpg');
    			background-repeat: repeat-y;
    			background-position: top right
    			/* potresti cancellare le righe sopra e sostituirle con un singolo comando background */
    		}
    		div#interno {
    			background-image: url('immagini/Immagine5.jpg');
    			background-repeat: repeat-y;
    			/* in questo caso il background-position è superfluo perché i valori di default sono proprio top left */
    			background-position: top left
    		}
    		div#interno p{padding:0 4em}
    	</style>
    </head>
    <body>
    	<div id="esterno">
    		<div id="interno">
    			
    
    bla
    bla
    bla
    bla
    bla
    bla
    bla
    bla</p>
    		</div>
    	</div>
    </body>
    </html>
    sopra la panca la capra campa, sotto la panca la suddetta decede (soffrendo).
    (il mio vero nome è davidino ^_^)

  8. #8
    Perfetto, ti ringrazio, in effetti si non ho prestato attenzione al codice... Ora però ritorno alla domanda del titolo, perchè se ora imposto una unità di altezza height in % non funziona e invece con i px e em si? Come da tuo esempio (http://kettlebell.altervista.org/test.html) l'immagine si ripete per l'altezza del testo contenuto nel div, perchè non posso impostargli un height: 100%; e farla ripetere fino al fondo?
    Perpetual Ribellion With Absolutely No Cause

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    1
    Anzitutto va premesso che quello e` uno sfondo che riempie una determinata area definita da un oggetto (nel tuo caso un <div>.
    Se il <div> non ha dimensione definita, anche lo sfondo sparisce.

    2
    Dando una dimensione %, la % e` riferita al blocco che contiene quello su che stiamo lavorando.

    Quindi una dimensione % non ha senso se il blocco contenitore non ha dimensione definita. E la cosa e` ricorsiva fino al body e al html (in alcuni browser sono due elementi distinti, per cui vanno dimensionati ambedue)

    Riassumendo: per dare una dimensione % occorre che il contenitore abbia la stessa dimensione definita; se anche questa e` %, la cosa va a sua volta riferita al suo contenitore ecc.

    3
    I float non riempiono il contenitore, ma si pongono al di fuori di esso (flottanti, appunto). Si puo` farli rientrare, inserendo dopo i blocchi float un blocco con il clear corrispondente.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Ok, perfetto ti ringrazio! Sono riuscito ad ottenere il risultato sperato
    Grazie a tutti per la disponibilità!
    Perpetual Ribellion With Absolutely No Cause

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.