Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di madquake
    Registrato dal
    Jun 2008
    residenza
    Manchester
    Messaggi
    85

    Allienare un div alla sinistra di un altro

    Salve a tutti.
    Nel mio sito di portfolio ho creato una divisione degli elementi tramite il tag div.
    Vorrei inserire una piccola etichetta (che abbia i bordi arrotondati (e questo ho già capito come farlo)). Ho solo il problema di attaccare quest'etichetta alla sinistra del div principale (il contenitore). Pensavo che dicendogli float: right, questo "fluttuasse" a destra fino ad appiccicarsi al div contenitore...
    Purtroppo invece si appiccica alla parte destra della finestra del browser...

    Il codice usato nella pagina css è il seguente

    div.etichetta
    {
    background-color: #FC0;
    padding: 15px 15px 15px 15px;
    -moz-border-radius-bottomleft: 10px;
    -moz-border-radius-topleft: 10px;
    -webkit-border-bottom-left-radius: 10px;
    -webkit-border-top-left-radius: 10px;
    position:relative;
    float:right;
    }

    div.contenitore
    {
    background-color: #b2b2b2;
    width:840px;
    min-height: 100%;
    position: absolute;
    right: 0px;
    left: 0px;
    padding:15px;
    border:0px;
    margin:0 auto;
    margin-top:0px;
    }

    Qualcuno mi da una mano?
    In realtà nella pagina html ho inserito prima il div.etichetta e poi il div.contenitore.
    Il div.etichetta deve sporgere dalla sinistra del contenitore senza spostarlo...

    Vi ringrazio in anticipo per i preziosi consigli che riceverò
    Ciao a tutti
    A presto!

  2. #2
    Utente di HTML.it L'avatar di madquake
    Registrato dal
    Jun 2008
    residenza
    Manchester
    Messaggi
    85
    Ragazzi ho creato un po di codice su cui agire... vorrei che l'elemento più grande fosse al centro della pagina, mentre il secondo allineato alla sinistra di quello...


    <html>
    <head>

    <title>Prova allineamento <div></title>
    </head>

    <body>

    <div
    style="color:#FFF;
    background-color:#666;
    width:800px;
    height:1000px;
    position:absolute;
    right:0px;
    left:0px;
    padding:15px;
    border:0px;
    margin:0 auto">

    Lorem Ipsum

    </div>

    <div
    style= "background-color: #FC0;
    padding: 15px 15px 15px 15px;
    -moz-border-radius-bottomleft: 10px;
    -moz-border-radius-topleft: 10px;
    -webkit-border-bottom-left-radius: 10px;
    -webkit-border-top-left-radius: 10px;
    width:120px;
    float:right;
    text-align:right">

    Prova | Label

    </div>

    </body>
    </html>

  3. #3
    Utente di HTML.it L'avatar di madquake
    Registrato dal
    Jun 2008
    residenza
    Manchester
    Messaggi
    85
    Il problema maggiore è che se utilizzo la proprietà "float" i due elementi non si "bloccano" quando sono uno di fianco all'altro, ma continuano la loro corsa fino a toccare il bordo della pagina.
    L'elemento centrale dovrebbe restare fermo, mentre quello "accessorio" dovrebbe muoversi e bloccarsi al lato di quello centrale.

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ciao,
    Premessa: quando posti del codice sul forum, sarebbe opportuno che tu usassi gli appositi tag di formattazione [ code ] [ /code ]. Grazie.

    1. Nel tuo codice c'è qualche errore.
      codice:
      <title>Prova allineamento <div></title>
      Vedo un tag <div> in più.
      E' importante assicurarsi che tutto il codice sia sintatticamente corretto prima di impostare e testare il css. I vari browser, nel tentare di interpretare gli errori, possono comportarsi molto differentemente tra loro, ottenendo così un risultato sempre falsato.
    2. E' raccomandato (direi necessario) dichiarare il doctype nei propri documenti html. Il fatto di non inserire la DTD può portare, anche in questo caso, ad avere dei risultati differenti tra i vari browser.
    3. Il float, più precisamente, toglie l'elemento dal normale flusso del documento e lo butta a destra o sinistra. Il risultato che hai ottenuto è esattamente quello. Nel tuo caso, invece, dovrai piuttosto inserire, all'interno del contenitore, il div etichetta e specificare il margine sinistro con un valore negativo in modo che esca fuori oltre il lato sinistro del contenitore. Il float ti serve, ma in questo caso lo impostiamo sempre a sinistra, cioè dalla parte da cui vogliamo che sporga l'etichetta.


    Ecco il codice rivisto:
    codice:
    <!DOCTYPE HTML>
    <head>
      <title>Prova allineamento</title>
      <style type="text/css">
        div.contenitore{
          color:#FFF;
          background-color:#666;
          width:800px;
          height:1000px;
          position:absolute;
          right:0px;
          left:0px;
          padding:15px;
          border:0px;
          margin:0 auto
        }
        div.contenitore div.etichetta{
          background-color: #FC0;
          padding: 15px 15px 15px 15px;
          -moz-border-radius-bottomleft: 10px;
          -moz-border-radius-topleft: 10px;
          -webkit-border-bottom-left-radius: 10px;
          -webkit-border-top-left-radius: 10px;
          width:120px;
          margin-left:-165px;
          float:left;
          text-align:right
        }
      </style>
    </head>
      <body>
        <div class="contenitore">
          <div class="etichetta">Prova | Label</div>
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          <div class="etichetta">Label 2 quello che vuoi bla bla bla</div>
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
        </div>
      </body>
    </html>
    In rosso puoi notare che ho impostato il margine a -165px. Non è un valore a caso. Ho considerato infatti la distanza esatta che serviva per far "spostare" quell'elemento rispetto alla posizione in cui sarebbe dovuto essere normalmente. Esattamente è la somma della larghezza dell'etichetta (120px), più il padding dell'etichetta (che in questo caso è 30, cioè 15 a dx e 15 a sx) più il padding sinistro del div contenitore (cioè 15).

    Il float, in questo caso, è necessario se vuoi impedire che il testo, contenuto nel div contenitore, tenga in considerazione lo spazio riferito all'altezza del div etichetta, ed evitare quindi che il testo si porti al di sotto di quest'ultimo.

    Spero di esserti stato utile.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it L'avatar di madquake
    Registrato dal
    Jun 2008
    residenza
    Manchester
    Messaggi
    85
    Grazie mille
    Sei stato PIU' che utile!!!
    Ora lo provo e ti dico se ha funzionato!!!
    Ti ringrazio tantissimo!!!

    (P.s. non sapevo di questi tag code... sono veramente molto comodi!!!)

  6. #6
    Utente di HTML.it L'avatar di madquake
    Registrato dal
    Jun 2008
    residenza
    Manchester
    Messaggi
    85
    Wow...
    è veramente perfetto...
    Ho modificato una cosa (in maniera da verificare anche se ho capito).
    Ho spostato i "label" un attimo più in alto in maniera tale da allinearli con il bordo effettivo del div contenitore.
    Chiedo scusa se quando ho scritto la prima versione del codice ho intergrato i css all'interno del tag div nel body...

    codice:
    <!DOCTYPE HTML>
    <head>
      <title>Prova allineamento</title>
      <style type="text/css">
        div.contenitore{
          color:#FFF;
          background-color:#666;
          width:800px;
          height:1000px;
          position:absolute;
          right:0px;
          left:0px;
          padding:15px;
          border:0px;
          margin:0 auto
        }
        div.contenitore div.etichetta{
          background-color: #FC0;
          padding: 15px 15px 15px 15px;
          -moz-border-radius-bottomleft: 10px;
          -moz-border-radius-topleft: 10px;
          -webkit-border-bottom-left-radius: 10px;
          -webkit-border-top-left-radius: 10px;
          width:120px;
          margin-left:-165px;
    	  margin-top:-15px;
          float:left;
          text-align:right
        }
      </style>
    </head>
      <body>
        <div class="contenitore">
          <div class="etichetta">Prova | Label</div>
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          Lorem Ipsum
    
          <div class="etichetta">Label 2 quello che vuoi bla bla bla</div>
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
          Lorem Ipsum 2
    
        </div>
      </body>
    </html>
    Ti ringrazio davvero infinitamente... stavo girandoci intorno da tutta la sera senza rendermi conto che la soluzione era a portata di mano...

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    No problem.
    Notte!
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.