- Home
- Categorie
- Coding e Sistemistica
- HTML e CSS
- Esiste un comando per nascondere/mostrare regole CSS solo a IE?
-
Esiste un comando per nascondere/mostrare regole CSS solo a IE?
Ciao a tutti,
mi chiedevo se esistesse una stringa per nascondere o mostrare determinate regole del CSS ad una determinata versione di un browser.Per esempio a me servirebbe un qualcosa che mostrasse una determinata regola solo ad Internet Explorer 6..
..qualcuno può aiutarmi?Ciao e grazie,
Rammo.
-
Ciao Rammo,
si, esiste. Ti consiglio di guardare le nostre FAQ alla voce **Come posso collegare un foglio di stile valido solo per IE?**Ti segnalo anche questo post che contiene un esempio.
Buon lavoro,
Meryk
-
Ciao Meryk,
grazie per la risposta.Ero già a conoscenza di come includere un altro CSS valido solamente per IE; mi chiedevo invece se ci fosse un modo per "far vedere" solamente a IE una determinata regola dentro allo stesso CSS.
Scusami, forse mi sono espresso male nel precedente post... in poche parole vorrei includere un solo CSS e dentro a questo inserire una regola che però venga interpretata solamente da IE. Pensi sia possibile una cosa del genere?
Ciao e grazie,
Rammo.
-
Ciao Ranmo,
ne esistono una serie. Su PositionIsEverything puoi farti una cultura cercando tra gli hacks.Uno fra tutti è l'asterisco:
[html]regola {
width: 100px; /* tutti */
width: 90px; / IE */
}[/html]È importante l'ordine delle dichiarazioni. Ora non ho la documentazione sotto mano ma mi sembra che sia valido solo per IE6 (non sono sicuro della versione 7).
-
Ora che mi viene in mente, mi faccio un po di autopromozione a fin di bene. C'è anche questo:
http://www.laburno.net/2007/08/16/ie-end-of-line-comment-bug/Ricordati però che usare questi trucchi, spesso e volentieri non ti fa passare la validazione del w3c (nel caso ci tenessi)
-
Ottimo, grazie a tutti.
Avevo già trovato qualcosa del genere in rete, ma non avevano dato i risultati sperati. Ora mi leggo per bene le pagine segnalateL'uso di questi hacks può causare altri problemi oltre alla "non" validazione del CSS?
Aggiornamento: Il sito segnalato (PositionIsEverything) non risulta essere operativo
-
@Rammo said:
Ottimo, grazie a tutti.
Avevo già trovato qualcosa del genere in rete, ma non avevano dato i risultati sperati. Ora mi leggo per bene le pagine segnalateL'uso di questi hacks può causare altri problemi oltre alla "non" validazione del CSS?
Aggiornamento: Il sito segnalato (PositionIsEverything) non risulta essere operativo
Ho cannato il dominio, è .net:
http://www.positioniseverything.net/I problemi che possono nascere dall'uso di questi hack riguardano solo la compatibilità futura.
Se ad esempio, a partire da IExplorer8, gli hack venissero trattati come fanno gli altri browser ci ritroveremmo con pagine "sporcate" da codice obsoleto e inutile.In genere è sempre consigliato sfruttare la cascata dei fogli di stile con i commenti condizionali.
-
@Laburno said:
Se ad esempio, a partire da IExplorer8, gli hack venissero trattati come fanno gli altri browser ci ritroveremmo con pagine "sporcate" da codice obsoleto e inutile.
E' verosimile tanto quanto:
Babbonatale, la fatina dei denti, il "liscioeffettoseta" per i miei capelli
-
Salve a tutti
vi propongo un approccio leggermente diverso: invece di fare discriminazioni lato client, perche' non farle lato server?
Semplicemente facendo puntare il meta link ad uno script attivo lato server che si occupera' della generazione del codice css ad-hoc.
La richiesta HTTP fatta dal client porta negli headers l'identificativo del client chiamante, a questo punto si puo' discriminare su quello ed includere o escludere parti di cssAltra soluzione (stavolta lato client) e' l'utilizzo di ajax/javascript.
Si definiscono entita' simili che poi verranno applicate topicamente all'oggetto/browser target.ciaps
lucio
-
@Laburno said:
Se ad esempio, a partire da IExplorer8, gli hack venissero trattati come fanno gli altri browser ci ritroveremmo con pagine "sporcate" da codice obsoleto e inutile.
- gia' IE7 toglie un bel po' di porcherie tipiche di IE6
- considerando quanto c'hanno messo a fare il 7 direi che l'8 lo vedranno i nostri nipoti (forse). Dal momento che e' consigliabile fare un buon refactoring del codice ogni annetto (anche meno o piu', dipende dal sito in oggetto) direi che il problema non sussite
da qua ad IE8 uno il css l'ha riscritto un centinaio di volte
Considerando le tempistiche prob con IE8 arriveranno i CSS12
-
@unlucio said:
Salve a tutti
vi propongo un approccio leggermente diverso: invece di fare discriminazioni lato client, perche' non farle lato server?
Semplicemente facendo puntare il meta link ad uno script attivo lato server che si occupera' della generazione del codice css ad-hoc.
La richiesta HTTP fatta dal client porta negli headers l'identificativo del client chiamante, a questo punto si puo' discriminare su quello ed includere o escludere parti di cssAltra soluzione (stavolta lato client) e' l'utilizzo di ajax/javascript.
Si definiscono entita' simili che poi verranno applicate topicamente all'oggetto/browser target.ciaps
lucioCiao Lucio,
Esistono dei metodi per la generazione dinamica lato server dei css.
Sono tecniche abbastanza semplici che in genere non comportano grandi artifici per essere messe in atto. Di solito se ne è parlato per introdurre nei fogli di stile il concetto di variabile.L'idea che proponi tu, cioè in pratica di far debuggare in automatico il css, non è affatto una brutta pensata. Un semplice match per identificare il browser e via. Il problema è nella natura dei bug, perché un conto è debuggarli a mano dopo averli trovati uno a uno, potendo scegliere tra le soluzioni che meglio si adattano al tuo caso. Un altro è scrivere uno script universale e che sappia scegliere la soluzione ottimale. Forse, facendoci due conti, rischiamo di ottenere risultati migliori andando a mano.
L'alternativa lato client la trovo invece inapplicabile. In questo modo si discrimina i navigatori che hanno js disabilitato o utilizzano protezioni antivirus avanzate. Sono pochi, ma esistono.
-
mmmmmmm mi sa che hai frainteso
nulla in me pensava al suggerire un sistema che si preoccupasse in automatico di risolvere gli scoordini dei vari browser, ma semplicemente decidere quale linea intrudurre e quale no
del tipo:a) scrivo il sito
b) provo il sito
c) trovo scoordini
d) modifico il css per questo e quel browser
e) unifico i css in uno script che eroga le parti opportune secondo lo user agent (ma gli dico io che erogare eh ;D)Lo script che fa quello che dici e' piu' facile di quello che sembra da fare
Si', so benissimo che ci sono i manici che chiudono tutto, ma a quelli si fa in modo di erogare un sito minimalista (io soltiamente uso quello che erogo per i portatori di handicap) e si gustino la cosa in versione vintage fino a che non decidono di rimettersi al passo con i tempi
Finalmente grazie ad ajax ci stiamo liberando di flash (e delle varie limitazioni del web), poi chi collabora ne gode i frutti, chi non collabora... bhe... fatti suoi
-
Ah ok mi capita spesso di fraintendere.
Beh allora non vedo allora l'utilità visto che gli "scordinii" ce li ha praticamente solo Internet Explorer, e bastano i commenti condizionali per addomesticarlo in modo indolore.
-
perche' "sporcare il codice" non e' una soluzione elegate per far andare le cose , non trovi?
gia' il mondo e' pieno di capre che fanno cose fuori standard (magari pure in html 4.* e con strutture tabellari... a dir poco vintage oltre che barbara come cosa...), se poi si inizia anche ad erogare del codice sporco e/o strutturato male o in modo poco elegante finiremo come l'impero romano: distrutti dalla mollezza dei notri costumi
hihihihihihihi
aparte gli scherzi, sono un po' rigido su alcuni aspetti