Newsgroup: it.lavoro.professioni.webmaster
Titolo: explorer mi rompe le uova nel paniere

Ciao a tutti,
potete darmi un aiuto?
sto creando un <div> che contiene una lista di 3 foto in colonna.
con explorer le foto stanno precise nel box mentre con firefox "sbordano di 
qualche px.
so che per la larghezza c'e' l'hack width-w\idth-\width ma per l'altezza?
ho provato ad usare !important per distinguere le altezze ma sembra che 
explorer 6 interpreti !important anziche' ignorarlo...
mi sapete dire come risolvere il fatto che i bordi con explorer stanno 
dentro al box mentre con gli altri browser stanno fuori? 


forse qui trovi la risposta
http://groups.google.com/group/it.lavoro.professioni.webmaster/browse_thread/thread/6c3975cc5f4e5877?hl=en

 
puoi utilizzare lo stesso hack che usi per il width, ma mi sembra (e
sottolinea mi sembra un milione di volte, perchè non sono neanche le 6 di
mattina) che per usare quella tecnica per la proprietà height debba
spostare la barra un carattere avanti(he\ight e non h\eight).
Mi pare di aver letto in un articolo che la tecnica funzionava solo se la
barra precedeva certe lettere (o certe vocali?), non riesco a trovare
informazioni per confermarti la cosa, quindi potrei anche sbagliarmi.
In ogni caso ci sono degli hack un pò più leggibili da applicare, il
vecchio post che ti è stato suggerito ti sarà di aiuto credo.
Ciao
Francesco

 explorer 6 interpreti !important anziche' ignorarlo...
Grazie a tutti per avermi risposto; purtroppo gli hack dei siti che mi avete 
proposto non funzionano.
IE6 interpreta sia !important che \width-w\idth-width e quindi non posso 
distinguere fra i browser la larghezza (anche altezza dei box).
Caspita, mi sembra un problema talmente comune! Come mai non trovo in rete 
la risposta..
Ogni volta che una persona dave allineare box con margine e padding dovrebbe 
avere questo problema essendo che explorer comprende nella larghezza (width) 
del box sia il padding che il bordo mentre gli altri browser non lo fanno... 

 del box sia il padding che il bordo mentre gli altri browser non lo fanno...
Infatti è così, ma il l'errata interpretazione del box model è un
problema della versione 5.5 corretta nella 6.
Se di questo si tratta, e tu riscontri il problema con la versione 6 del
browser vuol dire che lo stai facendo lavorare in modalità quirk
(retrocompatibile). In pratica stai forzando explorer 6 a lavorare nella
maniera errata di 5.5
Le modalità standard o quirk dei vari browser si attivano tramite doctype
switch (se non sai di cosa parlo cerca questi due termini su google,
troverai tonnellate di materiale).
Attenzione, che se stai tentando di realizzare una pagina xhtml 1.0 o 1.1
forse hai utilizzato il prologo xml, che forza explorer 6 in modalità
quirk.
Gli hack che correggono l'interpretazione del box model si basano su dei
bug di explorer 5.5, ovviamente non funzionano con il 6 che quei bug non
li ha, il problema è che il 6 non dovrebbe darti problemi di box model.
C'è in giro un javascript che, se messo nella pagina, ti visualizza se il
browser lavora in modalità standard o quirk, potrebbe tornarti utile.
Se posti l'url della pagina in questione magari possiamo essere più
precisi.
Ciao
Francesco

 del box sia il padding che il bordo mentre gli altri browser non lo fanno...
Esiste un'altro hack che prevede l'uso di un commento, ricerca bene fra
i link indicati nel thread precedente.
La posizione dello slash è importante, non deve essere posta prima
della lettera g dell'alfabeto, altrimenti lo interpreta come numero
esadecimale.
L'uso degli hack è decisamente antipatico, io preferisco non usarlo e
sto studiando una soluzione che non preveda nessun hack. Per il momento
mi pare che si possa trovare una valida soluzione che preveda un div
generale con posizionamento di tipo "static" (quindi non è necessario
specificarlo) all'interno del quale inserisco altri div con
posizionamento di tipo "relative". Grazie al calcolo di coordinate
relative tra i vari div riesco ad ottenere una pagina ottima in FF con
modifiche accettabili in IE. Ho lavorato su pagine semplici, un esempio
lo trovi in 
www.ortecmoz.com
Ora mi sto occupando di pagine un pò più complicate e devo verificare
che la strategia di uso di coordinate relative sia quella vincente.
Diverso è il discorso padding, se leggi bene i link del thread
precedente troverai una spegazione esaustiva, lì pare non ci sia
niente da fare, IE calcola i margini in maniera differente, credo che
anche in questo caso la soluzione sia da ricercare nella posizione
relativa dei div, ma non ho ancora provato. Pensavo ad un div
all'interno di un'altro div per simulare bordi di grande spessore.
Ciao

 troverai tonnellate di materiale).
Sicuramente qualcosa che non andava nel !DOCTYPE c'era infatti ho trovato un 
articolo piuttosto interessante su 
html.it
 la cui sezione "linko" qui di 
seguito 
http://webdesign.html.it/articoli/leggi/245/il-ed-il-switch-nei-moderni-browser/5/
 
in cui si fa una belle digressione nel merito di questi argomenti.
Ho applicato all'head della pagine lo script che c'e' a pagina 
http://webdesign.html.it/articoli/leggi/245/il-ed-il-switch-nei-moderni-browser/6/
 è 
ho osservato che in mozilla ottendo strict = true mentre in explorer ottengo 
strict=false
cambiando (secondo le tabelle dell'articolo) da:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 transitional//EN">
in
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 strict//EN">
entrambi i browser mi restituiscono TRUE.
Credo che il problema che dicevi sia individuabile nel mio caso confermato 
da questo script.
Ora che ho ottenuto TRUE in entrambi i browser mi aspetto un comportammento 
standard di entrambi secondo le specifiche dell'html 4.01.
Provero' a mettere i bordi e vedremo che succede...
Grazie, siete stati estremamente utili e competenti 

 Grazie, siete stati estremamente utili e competenti
Di nulla.
Cercando in rete(forse in quello stesso articolo? sicuramente da qualche
parte su 
html.it
) si trovano delle tabelle in cui puoi incorciare i
diversi doctype con le diverse modalità di funzionamento dei vari
browser, per cui puoi sapere di ogni browser quali sono i doctype che lo
fanno funzionare in standard, quali in quirk.
Ciao
Francesco

 explorer 6 interpreti !important anziche' ignorarlo...
   guarda che explorer 6 __interpreta__ la direttiva !important

 ha scritto nel messaggio 
news:eeg5gq$ssj$1...@area.cu.mi.it...

Il problema sta nel fatto che avendo usato il !DOCTYPE HTML 4.01 
Transitional mi dovevano funzionare tutti i browser in Quirk e quindi 
compatibili all'indietro.
Ora, da quel che ho capito, Explorer non avrebbe dovuto interpretare 
correttamente !important, anzi avrebbe dovuto ignorare la direttiva.
Ho capito bene o mi sbaglio? Cosa c'e' che non quadra? 

 Ho capito bene o mi sbaglio? Cosa c'e' che non quadra?
Non vedo come la direttiva !important possa influire nella risoluzione
delle differenze del box model all'interno dei vari browser.
!important si occupa di modificare le precedenze rispetto a qualsiasi
direttiva non ha nessuna influenza sul comportamento del browser.

 Ho capito bene o mi sbaglio? Cosa c'e' che non quadra?
La modalità quirks è stata implementata per compatibilità all'indietro,
per far in modo cioè che anche i browser che interpretano bene le regole
di posizionamento css e il box model potessero rendere la pagina come se
non lo facessero, utilizzando le regole dei browser più datati (e non
quelle standard).
Ora, non saprei dirti esattamente punto per punto, in cosa differisce il
funzionamento di explorer 6 in modalità quirk da quello in modalità
standard. Sicuramente le principali differenze sono nelle regole che
determinano posizionamento e visualizzazione degli elementi (il box
model).
Probabilemente, ma dovrei fare un test per dirtelo con certezza(ma quello
che dici sembra confermare la tua teoria), la direttiva !import viene
interpretata normalmente in entrambe le modalità.
Il problema vero, è che stai facendo, penso, un pò di confusione.
Se utilizzi un doctype che fa lavorare tutti i browser in modalità quirk,
allora nelle pagine devi utilizzare il box model di IE5.5, non ti serve
nessun hack, perchè tutti i browser useranno le stesse regole per
calcolare le dimensioni degli elementi.
Se utilizzi un doctype che fa lavorare i browser in modalità standard
(cosa che ti consiglio caldamente) devi applicare un hack per gestire gli
errori di explorer 5.5, in quel caso la direttiva !import ti servirà per
forzare il valore giusto ai browser standard compatibili.
Spero di essere stato chiaro
Ciao
Francesco

 direttiva non ha nessuna influenza sul comportamento del browser.
Esiste un hack usato spesso in sostituizione del tantek (che è molto più
complesso e difficile da ricordare) che utilizza la direttiva !import
l'hack consiste nell'impostare un valore errato (quello giusto per ie5)
alla proprietà del blocco mediante commento così:
width /**/: 140px;
questa dichiarazione viene correttamente interpretata da ie5, mentre viene
ignorata da ie6, quindi fa molto comodo nei casi in cui serva un valore
per ie5 e uno per ie6.
Il problema di questo metodo è che altri browser oltre ie5 la
interpretano correttamente, per cui si usa impostare il valore corretto
(secondo il box model standard) tramite la direttima !important che viene
ignorata da ie5;
quindi facendo 
width: {valoregiusto}px !important;
width /**/: {valoreerratoboxmodel}px;
la prima regola viene letta e utilizzata dai browser standard, la seconda
viene letta da ie5 e ignorata da ie6. Alcuni browser standard leggeranno
anche la seconda, ma daranno la precedenza alla direttiva !import.
Ciao
Francesco

 Esiste un hack usato spesso in sostituizione del tantek 
Dimenticato di citare la fonte:
http://www.ecologiadeisitiweb.net/blog/hack-per-ie5xwin