Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: FF vs IE

  1. #1

    FF vs IE

    Uela'
    Sorry per il titolo generico anzichennò, ma proprio nonciòidea se il problema che vi sto per sottoporre ha a che fare col box model o chissà che altro.
    (Infatti sono un paio di giorni che cerco in giro, ma evidentemente non so COSA cercare, visto che non trovo niente).

    Il problema è... "il solito", suppongo.
    Una pagina che su FireFox e Safari va una meraviglia e su IE (6) invece no.
    Tratterebbesi di pop-under fatta coi div e unfilino di giavascritt con relative ombrette in .png (lo so; POI ci penZo) che si ridimensiona a seconda dell'immagine che riceve tramite height/width:auto.

    Qua c'è la pagina d'esempio.
    Se la guardate con Firefox e con IE6 (con il 7 nollosò) vi accorgete di che problemi dà.

    Da quello che ho letto in giro deve sicuramente essere colpa mia, ma non riesco a venirne a capo.
    (Secondo me è proprio il "width:auto"; ma se è lui allora proprio non so come aggirare la cosa).
    (Per dirla tutta... "Secondo me" a 'sto punto potrebbe essere *qualsiasi cosa*).

    Questo è il CSS:
    Codice PHP:
    htmlbody {width:100%; height:100%;}
    body {margin:0padding:0background-image:url(immagini/gauze.jpg);}
    a img{border:0;}
    a:focus {outline:0;}
    .
    border {border:solid 1px black;}

    #ALL {position:absolute; top:0; left:0;
    width:100%; height:100%; 
    padding:0
    text-align:center;
    background:url(immagini/bg_gray.png); 
    display:none;}

    #CONT {
    position:absolutetop:15%; left:20%; 
    width:autoheight:auto; }

    #angSxTop {
    position:absolutetop:0left:0;
    width:30pxheight:30px;
    background:url(immagini/cornice/ang_top_sx.pngno-repeat;}

    #top {
    width:autoheight:30px;
    margin:0 30px;
    background:url(immagini/cornice/top.pngrepeat-x;}

    #angDxTop {
    position:absoluteright:0top:0
    width:30pxheight:30px;
    background:url(immagini/cornice/ang_top_dx.pngno-repeat;}

    #sx {
    width:autoheight:auto;
    background:url(immagini/cornice/sx.pngrepeat-y left top;}

    #dx {
    clear:rightmargin-left:30px;
    width:autoheight:auto
    background:url(immagini/cornice/dx.png)  repeat-y right top;}

    #angSxBot {
    float:left;
    width:30pxheight:30px
    background:url(immagini/cornice/ang_bot_sx.pngno-repeat;}

    #bot {
    width:autoheight:30px;
    margin:0 30px;
    background:url(immagini/cornice/bot.pngrepeat-x;}

    #angDxBot {
    position:absoluteright:0bottom:0
    width:30pxheight:30px
    background:url(immagini/cornice/ang_bot_dx.pngno-repeat;}

    #LAYER {
    width:autoheight:auto;
    border:solid 1px white
    margin-right:30px;} 
    e questo l'(X)HTML:
    Codice PHP:
    <!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">
    <
    head><title>Mapporc....</title>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

    <
    style type="text/css">

    /* Qua c'è tutto il CSS dicuisopra */

    </head>
    <
    body>

    [
    url="javascript:void(0);"]Fampovvede'[/url]

    <div id="ALL">
      <div id="CONT">
            <div id="angSxTop"></div>
            <div id="top"></div>
            <div id="angDxTop"></div>
            <div id="sx">
                <div id="dx">
                    <div id="LAYER">[url="javascript:void(0);"][img]immagini/uno.jpg[/img]</img>[/url]</div>
                </div>
            </div>
            <div id="angSxBot"></div>
            <div id="bot"></div>
            <div id="angDxBot"></div>
        </div>
    </div>
    </body>
    </html> 
    Nolloso'... Io adesso mi vado a rilassare un po' il neurone con qualche trattatello di fisica nucleare.
    "Web Developer" su Firefox dice che la pagina è "valida" sia per i CSS che per l'XHTML.

    Se qualcuno cià voglia di darci un'occhiata mi fà un favore (e gli concedo anche di farsi beffe di me e della mia 'gnuranza ciessessistica in pubblico).

    Tenchiù ;-)

    cià
    ale
    If you can keep your head when all about you are losing theirs,
    it's just possible you haven't grasped the situation.

  2. #2
    Rega'... ODIO farlo, ma...



    cià
    ale
    If you can keep your head when all about you are losing theirs,
    it's just possible you haven't grasped the situation.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non ho IE per vederlo con tale browser, ma vedo alcuni punti critici:

    1. le immagini PNG: IE le vede solo se presente un particolare filtro (cerca nel forum per trovare quale e con quale sintassi)
    2. parecchi nomi che hanno significato nel DOM: ALL (in IE e` un oggetto del DOM), top (e` il frame principale), forse anche LAYER (in NN4 era un oggetto del DOM)
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    Originariamente inviato da Mich_
    Non ho IE per vederlo con tale browser, ma vedo alcuni punti critici:

    1. le immagini PNG: IE le vede solo se presente un particolare filtro (cerca nel forum per trovare quale e con quale sintassi)
    2. parecchi nomi che hanno significato nel DOM: ALL (in IE e` un oggetto del DOM), top (e` il frame principale), forse anche LAYER (in NN4 era un oggetto del DOM)
    Beh, oddio... mo' "browser" mi pare una parola grossa.

    Sì... per le PNG dovrei essere in grado di risolvere, grazie ;-)
    Al momento vorrei 'solo' che si impaginasse come su FF.

    Quello che succede su IE è che la cornice con le ombre si espande per tutta la larghezza della finestra, lasciando l'immagine allineata al centro.
    Ti posto uno scrinsciott (che, in quanto tale, sarebbe un po' grandicello da mettere sul forum, quindi posto solo il link):

    eccoloqquà

    Ora "ALL" si chiama "TUTTI", "top"-->"sopra" e "LAYER"-->"IMMAGGGINE".
    Lo scrinsciott è preso dopo la rinomenclatura, quindi il problema dovrebbe risiedere altrove.
    (C'è da dire che nemmeno io sto su Windows, ma su Mac con VirtualPC; però non dovrebbe esserci una gran differenza, prestazioni apparte)

    GRAZIE per l'interessamento.
    (Cominciavo a sentirmi solo e abbandonato ;-)

    cià
    ale
    If you can keep your head when all about you are losing theirs,
    it's just possible you haven't grasped the situation.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    (Cominciavo a sentirmi solo e abbandonato ;-)
    C'e` un po' di gente in ferie, credo. (anch'io saro` in ferie da domani a lunedi` compresi)

    Comunque ci sono alcune cose che non capisco nel tuo CSS:
    Come ottieni la centratura?
    Dato che usi posizionamenti assoluti, dovrebbe essere:
    left: 50%; margin-left: -XX;
    top: 50%; margin-top: -YY;
    dove XX e` la meta` della larghezza del contenuto, e YY la meta` dell'altezza. Le tue percentuali vanno bene per il 800x600, ma se modifichi le dimensioni i tuoi calcoli saltano.

    Comunque il problema dovrebbe essere definire una larghezza automatica:
    in FF (ed altri) vuol dire: il piu` stretto possibile. Ma in IE potrebbe voler dire il piu` largo possibile.
    Visto che il tutto e` rigido (con i posizionamenti succede questo), usa i posizionamenti fino in fondo, e non lasciare niente di automatico.

    Se non li hai ancora visti, ti consiglio di leggere:
    I posizionamenti assoluti e Capire i posizionamenti relativi
    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_
    C'e` un po' di gente in ferie, credo. (anch'io saro` in ferie da domani a lunedi` compresi)
    Ah... Allora sei tu quello "solo e abbandonato" ;-)

    Comunque ci sono alcune cose che non capisco nel tuo CSS:
    Come ottieni la centratura?
    Al momento non la ottengo.
    PNG e centratura sono tutti problemi che volevo affrontare DOPO aver risolto quello primario dell'impaginazione della cornice.

    Dato che usi posizionamenti assoluti, dovrebbe essere:
    left: 50%; margin-left: -XX;
    top: 50%; margin-top: -YY;
    dove XX e` la meta` della larghezza del contenuto, e YY la meta` dell'altezza. Le tue percentuali vanno bene per il 800x600, ma se modifichi le dimensioni i tuoi calcoli saltano.
    Come ho detto non ci sono calcoli; e oltretutto non potrebbero nemmeno esserci, visto che tutto il layout della cornice ruota intorno al "width:auto" per fare in modo che si adatti ad una qualsiasi immagine che andrà a finire nel div "LAYER" (ora "IMMAGGGINE").

    Il "bello" della cosa era tutto qua.
    Senza tanti smadonnamenti in javascript, qualsiasi immagine carico dentro, la cornice ci si adatta perfettamente. (In Firefox. In IE, no - senonsifossecapìto).

    Altrimenti dovrei fare un preload di tutte le immagini, trovarne le dimensioni in js e poi applicarle (con le aggiunte opportune) al contenitore; oppure trovarmele in php, passarle a javascript, etc...

    Questa mi sembrava una cosa così 'pulita' che valeva la pena di perderci un po' di tempo.

    Comunque il problema dovrebbe essere definire una larghezza automatica:
    in FF (ed altri) vuol dire: il piu` stretto possibile. Ma in IE potrebbe voler dire il piu` largo possibile.
    E 'nfatti... era proprio quello che temevo. :/
    Proprio non c'è un modo per dire anche a IE di considerare "auto" come fà Firefox?

    Visto che il tutto e` rigido (con i posizionamenti succede questo), usa i posizionamenti fino in fondo, e non lasciare niente di automatico.
    Eh... Tutto il succo della cosa stava proprio in quell 'automatico'.
    Ovviamente se invece di width:auto dò al contenitore le misure dell'immagine (più i 60px della cornice) non ci sono problemi nemmeno su IE.
    Solo che non devo caricare soltanto quell'immagine, in quel contenitore.
    Vorrei poterci caricare un po' quello che voglio.

    È chiaro che se proprio non c'è verso di lasciarlo così e visto che comunque un po' di javascript mi tocca usarlo, allora mi organizzo per recuperare le dimensioni in php/javascript e ridimensionare/posizionare il contenitore in base ai rispettivi valori.

    Però sarebbe un gran peccato! Su Firefox funzia così bene... :(

    Se non li hai ancora visti, ti consiglio di leggere:
    I posizionamenti assoluti e Capire i posizionamenti relativi
    Sì... un'idea sul positioning me l'ero già fatta.
    Cmq un approfondimento non fà mai male ;-)

    TNX!!

    cià
    ale
    If you can keep your head when all about you are losing theirs,
    it's just possible you haven't grasped the situation.

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    (segue dall'intervento precedente)
    Oppure puoi evitare il posizionamento, e usare altre tecniche per centrare.
    Vedi gli esempi di layout riportati in rete (una serie di indirizzi sono citati nei "link utili").

    Non puoi separare il problema centratura dal problema layout: sono strettamente connessi.

    Se rinunci al layout flessibile, ti sconsiglio il JS: e` poco accessibile e pesante (sia per il trasferimento del file che per il client).
    Meglio e` fare il conto lato server: in tal caso modifichi i valori del CSS con i dati del tuo calcolo.

    E se il problema e` solo IE6 IE7 (cioe` non i piu` vecchi), ti basta usare la DTD XHTML Strict: con essa IE si comporta (quasi) come definito dal W3C.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Originariamente inviato da Mich_
    (segue dall'intervento precedente)
    Oppure puoi evitare il posizionamento, e usare altre tecniche per centrare.
    Vedi gli esempi di layout riportati in rete (una serie di indirizzi sono citati nei "link utili").

    Non puoi separare il problema centratura dal problema layout: sono strettamente connessi.
    L'unico modo in cui riesco a vederli connessi è che se riuscissi a centrare il "#CONT" nella pagina, contemporaneamente riuscirei a dire a IE che su tutto quello che sta a sinistra e a destra "non ci deve mettere le mani" ;-)
    È questo che intendi?
    Tocca che mi vado a ri-ri-rileggere 'sti link utili, allora.

    Se rinunci al layout flessibile, ti sconsiglio il JS: e` poco accessibile e pesante (sia per il trasferimento del file che per il client).
    Meglio e` fare il conto lato server: in tal caso modifichi i valori del CSS con i dati del tuo calcolo.
    Yep; è quello che avevo in mente. (Anche se ancora non me la sento di rinunciare al layout flessibile)
    Però poi devo passare cmq le variabili php a javascript (che ancora non so come si fà) per modificare il DOM, altrimenti se faccio tutto lato server (via $_GET[]) mi tocca ricaricare tutta la pagina ogni volta che devo visualizzare un'immagine.

    E se il problema e` solo IE6 IE7 (cioe` non i piu` vecchi), ti basta usare la DTD XHTML Strict: con essa IE si comporta (quasi) come definito dal W3C.
    Cioè... Dici sostituendo "Strict" a "Transitional" nelle due ricorrenze del DOCTYPE?
    Già provato; non cambia assolutamente niente (su IE6; sul 7 nollosò).
    E WebDeveloper su Firefox mi dà anche la validazione corretta (strict).
    E comunque temo di dover tener presente anche IE 5.5 :/

    La cosa che mi sembra più interessante è la storia del posizionamento.
    Probabilmente anche riuscendo a centrarlo solo orizzontalmente potrei riuscire a risolvere il problema dello "sbordo" su IE.

    Mi metto in caccia ;-)

    GRAZZ!!

    cià
    ale
    If you can keep your head when all about you are losing theirs,
    it's just possible you haven't grasped the situation.

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non so che progressi hai fatto nel frattempo (sono stato in ferie alcuni giorni).

    Comunque ci sono fondamentalmente due approcci possibili, ma che si escludono a vicenda, ed impongono di impostare le cose in modo diverso:
    - quello (rigido) che avevi iniziato ad usare (con i posizionamenti assoluti o relativi)
    - quello flessibile (fluido o liquido), che non usa posizionamenti.

    La via di mezzo esiste (in teoria), ma necessita di una conoscenza perfetta delle due tecniche precedenti, e quindi te la sconsiglio.

    Se scegli illayout flessibile, per centrare un blocco in orizzontale, la cosa e` nota da molto tempo in questo forum:
    codice:
    html, body {
      text-align: center;    /* per IE */
      width: 100%;          /* necessario in html, body e altri blocchi intermedi */
    }
    #tutto {
      margin: 0 auto;      /* per browser standard */
      text-align: left;        /* ripristina allineamento */
      width: ...;
    }
    Passare variabili da server a client e` un giochino semplice: ci sono vari esempi nel froum JS.

    Cioè... Dici sostituendo "Strict" a "Transitional" nelle due ricorrenze del DOCTYPE?
    Non puoi inventarti una nuova DTD. Devi seguire la sintassi corretta, che trovi in tutti i reference di HTML, ad esempio: http://www.w3schools.com/tags/default.asp alla voce DOCTYPE
    E una volta scelta la DTD devi usare la sintassi corretta dei tag relativa alla DTD.
    I validatori del W3C possono aiutare: validatore HTML e validatore CSS
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Originariamente inviato da Mich_
    Non so che progressi hai fatto nel frattempo (sono stato in ferie alcuni giorni).
    Nessun progresso; ho rifatto tutto da capo usando php e javascript, perché altrimenti non andavo più avanti col sito. (E alla fine era meno complicato di quello che pensassi)

    La 'sfida' però era interessante e penso che ci ritornerò sopra, magari quando avrò assimilato meglio i "fondamentali" dei CSS ;-)

    Non puoi inventarti una nuova DTD. Devi seguire la sintassi corretta, che trovi in tutti i reference di HTML, ad esempio: http://www.w3schools.com/tags/default.asp alla voce DOCTYPE
    Sì, no... ehm... Non mi inventavo niente..
    È solo che tra:
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    e
    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    mi pare che l'unica cosa che cambia è che al posto di "Transitional" e "transitional" ci va "Strict" e "strict" ;-)

    E una volta scelta la DTD devi usare la sintassi corretta dei tag relativa alla DTD. I validatori del W3C possono aiutare: validatore HTML e validatore CSS
    mmm...
    Il validatore dei "Tools" di "WebDeveloper" su Firefox è altrettanto affidabile?
    Perché altrimenti mi tocca lavorare online e preferisco testare le cose su Apache in locale mano a mano che modifico le pagine.
    (Oltretutto i link che mi hai dato non sembrano digerire i file .php).
    Se è affidabile, la pagina e i css erano validati sia in Strict che in Transitional.
    Mah!

    Grazie ancora... ;-)

    cià
    ale
    If you can keep your head when all about you are losing theirs,
    it's just possible you haven't grasped the situation.

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.