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

    ...ancora layout fluido

    ciao! ho guardato un altro link interessante,

    http://www.dynamicdrive.com/style/layouts/

    dove sono riportati vari css per layout fluidi. è utile per studiarci su.

    Posto il codice di uno di questi, e anticipo la mia perplessità:

    mi è tutto più o meno chiaro tranne una cosa: perchè sia alla colonna di destra che a quella di sinistra imposta float:left, e al footer imposta clear:left???. Impostando float:left vuol dire che l'elemento va a sinistra e gli altri elementi alla sua destra, giusto? ma la colonna di destra sta a destra!! non dovrebbe essre float:right? Ho provato però ad impostare la colonna di destra con float:right e accade che essa si sovrappone al footer. Se invece lascio entrambe float:left e imposto footer clear:both, accade che la colonna di sinistra è più corta di quella di destra.

    Insomma, ovviamente il codice è giusto...ma qualcuno sa spiegarmi qualcosa in merito?

    grazie moooltisssssimo!


    Ecco il CSS di un classico layout fluido 3 colonne con header e footer (non metto anche tutto l'html sennò è lungo..):

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Dynamic Drive: CSS Liquid Layout #3.3- (Fluid-Fluid-Fluid)</title>
    <style type="text/css">


    body{
    margin:0;
    padding:0;
    line-height: 1.5em;
    }

    b{font-size: 110%;}
    em{color: red;}


    #topsection{
    background: #EAEAEA;
    height: 90px; /*Height of top section*/
    }

    #topsection h1{
    margin: 0;
    padding-top: 15px;
    }

    #contentwrapper{
    float: left;
    width: 100%;
    }

    #contentcolumn{
    margin: 0 15% 0 20%; /*Margins for content column. Should be "0 RightColumnWidth 0 LeftColumnWidth*/
    }

    #leftcolumn{
    float: left;
    width: 20%; /*Width of left column in percentage*/
    margin-left: -100%;
    background: #C8FC98;
    }

    #rightcolumn{
    float: left;
    width: 15%; /*Width of right column in pixels*/
    margin-left: -15%; /*Set margin to that of -(RightColumnWidth)*/
    background: #FDE95E;
    }

    #footer{
    clear: left;
    width: 100%;
    background: black;
    color: #FFF;
    text-align: center;
    padding: 4px 0;
    }

    #footer a{
    color: #FFFF80;
    }

    .innertube{
    margin: 10px; /*Margins for inner DIV inside each column (to provide padding)*/
    margin-top: 0;
    }

    </style>

    <script type="text/javascript">

    /*** Temporary text filler function. Remove when deploying template. ***/
    var gibberish=["This is just some filler text", "Welcome to Dynamic Drive CSS Library", "Demo content nothing to read here"]
    function filltext(words){
    for (var i=0; i<words; i++)
    document.write(gibberish[Math.floor(Math.random()*3)]+" ")
    }
    </script>
    paola

  2. #2
    E' solo un fatto di incompatibilità tra browser.
    Prova a vedere il layout con firefox senza dare il float:left anche alla colonna di destra e vedrai ke fa del casino.
    Mentre con explorer filerebbe tutto liscio.
    Quindi per fare in modo che si visualizzi correttamente il layout in tutti e 2 i browser viene settato il float:left sia alla colonna di destra che a quella di sinistra, e un bel clear:both al footer ovviamente.
    Ci occupiamo di information design, web design, usabilità e architettura delle informazioni.
    Visitate il nostro sito
    www.informationdesigners.org
    e il nostro blog
    www.informationdesigners.org/blog

  3. #3
    Moderatrice di Grafica, Cerco e offro lavoro L'avatar di Myaku
    Registrato dal
    Nov 2006
    Messaggi
    10,349
    Originariamente inviato da stoart
    E' solo un fatto di incompatibilità tra browser.
    Quindi per fare in modo che si visualizzi correttamente il layout in tutti e 2 i browser viene settato il float:left sia alla colonna di destra che a quella di sinistra, e un bel clear:both al footer ovviamente.

    a dire il vero, se si fluttua un div a destra ed uno a sinistra il clear dovrebbe andare a both (nell'esempio su due float:left il clear va a left)
    L'unico problema rilevante con gli elementi che fluttuano a quanto ne so sono i vari bug di IE, risolvibili piuttosto semplicemente (bug dei 3px, margini raddoppiati) -- se ne conosci altri, magari segnalamelo
    Paola, se lasci il clear a left e fluttui uno dei due elementi a destra è normale che non ti funzioni bene.
    Allora:
    o abbini float:left, float:right e clear:both
    oppure fluttui a sinistra e fai il clear a sinistra, come in esempio (non ho testato, ma a naso dare comunque il clear both non dovrebbe comportare problemi)


  4. #4
    ciao! grazie delle risposte! E comunque no, avevo provato a dare il clear:both al footer e succedeva che la colonna di sinistra era più corta di quella di destra! praticamente l'unica era fare tutto float:left e footer clear:left!

    oppure se proprio si volesse usare il clear:both, si potrebbe provare a dare al contenitore principale il colore della colonna di sibistra (quella che appare più corta), e così non si vedrebbe lo stacco del fondo...(forse...devo provare, giusto a sfizio, perchè a questo punto piazzo un clear:left e basta, no?)

    grazie ancora e a presto!!

    paola
    paola

  5. #5
    Moderatrice di Grafica, Cerco e offro lavoro L'avatar di Myaku
    Registrato dal
    Nov 2006
    Messaggi
    10,349
    Originariamente inviato da paolabacci
    oppure se proprio si volesse usare il clear:both, si potrebbe provare a dare al contenitore principale il colore della colonna di sibistra (quella che appare più corta), e così non si vedrebbe lo stacco del fondo...
    non sono sicurissima di avere capito ... fai una ricerca per "faux columns" che potrebbe esserti utile


  6. #6
    si, le false colonne? le ho studiate, grazie! no niente, il mio non era un problema da risolvere ma solo un quesito, perchè non mi era chiara la scelta fatta sul css che ho postato. Ho capito che è una questione di incompatibilità tra browser, quindi lo accetto così com'è!

    grazie!
    paola

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.