Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    Layout a 2 colonne: problema con IE

    Salve a tutti, sto provando a disegnare ex novo un layout per il mio blog con wordpress.
    Anche grazie alle splendide guide trovate sul web, finora è andato tutto liscio con una resa grafica più che buona ed un'ottimo risultato a livello di compatibilità fra i vari browser.
    Proprio sul più bello però, ecco il caro buon (ed è ormai il caso di dire) vecchio IE 6.0 farmi l'improvvisata..

    Vi spiego il problema cercando di essere quanto più chiaro possibile..

    Il corpo centrale del mio blog (immediattamente sotto l'header e prima del bottom) è racchiuso in un div che chiamo wrapper!
    Wrapper ha una lunghezza fissata in pixel a 770

    Il corpo (wrapper) deve gestire due elementi, ossia la barra laterale che chiamo sidebar e che imposto a sinistra e il contenuto della pagina che chiamo content che imposto a destra..
    Per convenienza grafica, nè sidebar, nè content devono essere troppo "attaccati" ai rispettivi margini (sx per sidebar, dx per content)

    L'idea grafica è pressocchè quella che posto in questa img..

    Ho utilizzato il disegno per farvi capire l'importanza di alcuni fattori a livello grafico. Il layout prevede una certa equidistanza tra sidebar e la sua sinistra, sidebar e content, content e la sua destra.

    Sperando di essere stato finora chiaro, passo al codice che ho utilizzato per ottenere ciò!



    #wrapper
    {

    width: 770px;
    margin: 0 auto;
    overflow: hidden;
    }




    #content
    {
    margin-right: 25px;
    width: 514px;
    float: right;
    }



    #sidebar
    {
    width: 175px;
    margin-left: 25px;
    }


    vi ho risparmiato i vari stili grafici scrivendo solo la parte che interessa il piazzamento degli oggetti.
    Con questo codice ottengo con FIREFOX (v 1.5) un layout perfetto con la sidebar piazzata a sinistra, lunga quanto voglio e distante 25px
    dalla sinistra. Il corpo è 25 px distante da destra ed infine i due elementi distano tra di loro 25px!!!

    Ma Internet Explorer non la pensa cosi! In breve il corpo è distante non 25 px dalla sua destra ma molto di più! Questo finisce per farlo invadere la parte destinata alla sidebar che di conseguenza finisce a fondo pagina.
    Ho cercato di analizzare il problema in quanto la cosa che mi incuriosiva era questa: sempre con IE, la distanza tra sidebar e la sua sinistra è perfetta ed uguale a quella di FIREFOX.. solo quella di content è diversa, eppure l'attributo utilizzato (margin) è lo stesso per le due !!!
    Unica differenza che potete notare tra i due elementi è la presenza dell'attributo FLOAT per content..
    Più di questo non sono riuscito a scoprire e ho fatto prove e controprove.. qualcuno saprebbe aiutarmi? E' importante che scriva CSS valido e compatibile con tutti i browser però..
    Scusate se sono stato lungo e ancora grazie..
    Il vero male del mondo non è il despota, ma il funzionario accondiscendente, il cittadino che lascia correre.

  2. #2
    Scusate credo di aver dimenticato l'allegato
    Immagini allegate Immagini allegate
    Il vero male del mondo non è il despota, ma il funzionario accondiscendente, il cittadino che lascia correre.

  3. #3

  4. #4
    Originariamente inviato da ashtur1
    hai provato nel codice hatml a invertire content e sidebar?
    Ciao, grazie per la risposta...

    cosa intendi per "invertire"? I due elementi all'interno del codice xhtml sono due div (niente tabelle in wordpress) ,ora sono in ufficio e non ho il codice esatto ma se non ricordo male sono scritti in sequenza con prima il content e dopo la sidebar.
    Dici che invertirli produrrebbe qualche effetto? Potrei forse fare a meno del maledetto FLOAT e quindi utilizzare liberamente i 25 px di margin-right per content?
    Grazie
    Il vero male del mondo non è il despota, ma il funzionario accondiscendente, il cittadino che lascia correre.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ci sono dei problemi (noti) con i float in IE.
    Da quanto ho capito, va tutto bene se sono tutti float, oppure se nessuno e` float.
    Quindi dovresti dichiarare float sicuramente il sidebar (float: left), e forse anche il wrapper.
    Altrimenti cerca nel forum con chiavi tipo "raddoppio bordi/margini in IE".
    Alla peggio solo per IE (commenti condizionali) definisci i magini della meta`.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    Originariamente inviato da Mich_
    Ci sono dei problemi (noti) con i float in IE.
    Da quanto ho capito, va tutto bene se sono tutti float, oppure se nessuno e` float.
    Quindi dovresti dichiarare float sicuramente il sidebar (float: left), e forse anche il wrapper.
    Altrimenti cerca nel forum con chiavi tipo "raddoppio bordi/margini in IE".
    Grazie per la risposta... proverò ad inserire float left anche alla sidebar.. ma al wrapper che valore dovrei mettere per l'attributo float?

    Alla peggio solo per IE (commenti condizionali) definisci i magini della meta`.
    Ehm.. cosa i margini della meta? potresti fare un esempio?

    Grazie
    Il vero male del mondo non è il despota, ma il funzionario accondiscendente, il cittadino che lascia correre.

  7. #7
    ho paura che se metti tutto float poi ti scoppia in firefox (almeno credo di ricordare che mi sia successo )

    prova a mettere tutti e due però mi sembra sia necessario un contenitore (potrebbe andare bene pure il wrapper)per quei due div con una min-height fissata altrimenti il wrapper non ti si estende...facendoti saltare tutto ....


    peoò nn mi vorrei sbagliare

  8. #8
    Sei probabilmente incappato nel famigerato "Double float margin bug" di IE...

    Per risolverlo dai un'occhiata a:

    http://www.positioniseverything.net/...ed-margin.html

    utilissimo anche per altri bug di IE

    Erredeco
    "This is the end, Clark... for both of us"

  9. #9
    Originariamente inviato da erredeco
    Sei probabilmente incappato nel famigerato "Double float margin bug" di IE...

    Per risolverlo dai un'occhiata a:

    http://www.positioniseverything.net/...ed-margin.html

    utilissimo anche per altri bug di IE

    Erredeco
    Incredibile! Mi è bastato guardare questa guida per risolvere tutti i problemi!
    Non ci crederete ma bastava aggiungere display: inline; al content!!!!
    Tutto risolto, ora IE e Firefox sono perfettamente uguali!!

    Scusate se approfitto ma che voi ne sappiate, questo attributo display: inline; è tranquillo dal punto di vista della validazione?

    Purtroppo non posso validare ancora il codice perchè lavoro in locale.. ma ci tengo che sia pulito!
    Il vero male del mondo non è il despota, ma il funzionario accondiscendente, il cittadino che lascia correre.

  10. #10
    Non ci crederete ma bastava aggiungere display: inline; al content!!!!
    Ci credo, ci credo...

    Scusate se approfitto ma che voi ne sappiate, questo attributo display: inline; è tranquillo dal punto di vista della validazione?
    Display:inline serve a far sì che l'elemento a cui lo attribuisci si comporti come un elemento in linea (tipo uno <span> per intenderci); se lo attribuisci ad un elemento che è già float, tutti i browser "normali" tipo Firefox lo ignoreranno.

    Se proprio hai dei dubbi, metti tutto il codice che "aggiusta" IE in un CSS a parte, e usa un commento condizionale

    http://www.quirksmode.org/css/condcom.html
    "This is the end, Clark... for both of us"

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.