2011-01-01 17 views
7

sto avendo problemi con i CSS in Firefox, quindi voglio importare un file CSS solo se il browser è FFdichiarazione CSS condizionale per Firefox

In realtà, ho bisogno di importare questo stili:

.searchbutton{ 
    position:absolute; right:3px; width:25px; 
    top:3px; 
} 

#buscarmain{ bottom:12px; 

} 

MODIFICA:

Molti hanno sostenuto che non dovrei usare una dichiarazione speciale per FF, dal momento che FF probabilmente è corretto, rispetto ad altri browser.

Tuttavia, in questo caso tutti i browser stampano la stessa pagina (IE, Chrome, Opera, Safari) e FF lo visualizza in un altro modo. Devo ottenere la stessa visualizzazione per tutti i browser, quindi ho bisogno di una speciale istruzione FF

+6

problemi con Firefox solo o altri browser, anche? Se stai comparando a IE allora il tuo markup è sbagliato. C'è una ragione per cui i commenti condizionali sono necessari solo in IE. – Rob

+0

Ho una cosa che sembra proprio in IE, Safari, Chrome, ma non Firefox. Non mi interessa se il mio markup è "sbagliato", come se ci fosse una cosa simile in una struttura non xml. Voglio solo sapere come applicare uno stile solo a Firefox. Sto indovinando anche il richiedente. – MrBoJangles

risposta

8

risolto il problema

appena aggiunto:

<script type="text/javascript"> 
    if ($.browser.mozilla == true) { 
     document.write("<link type=\"text/css\" rel=\"stylesheet\" href=\"FF.css\">"); 
    } 
</script> 
+0

Ti rendi conto che è altamente improbabile che Firefox abbia un "bug" mentre altri browser non lo fanno, giusto? Come già detto, controlla di nuovo il tuo markup e css, e assicurati di non confrontare firefox con IE solo – pwseo

+3

People of earth, stop canonizing firefox (che è il mio browser preferito tra l'altro), le scarpe da clown non sono una dichiarazione di moda, Firefox ha bug come i prodotti Apple e quant'altro. – MrBoJangles

+0

Dan, questa è una buona domanda e una buona risposta. Non so cosa è sbagliato con le persone. – MrBoJangles

1

IE è l'unico browser con commenti condizionali. Ho sempre pensato che ogni browser dovrebbe avere il suo, ma ahimè.

Penso che la soluzione sia quella di modificare il foglio di stile in modo che venga visualizzato correttamente in Firefox e quindi corretto per IE.

Una soluzione approssimativa e molto sporca sarebbe utilizzare JavaScript per rilevare il browser e aggiungere una classe come "ffonly" al tag body se il browser è Firefox. Poi sempre portare nel vostro foglio di stile Firefox, ma mettere ".ffonly" agli inizi su tutti i vostri regole di stile

+0

Ogni volta che qualcuno richiede un CSS specifico per il browser, io metto sempre in discussione le sue abilità. IE è l'unico browser che ha bisogno di cose del genere. – Rob

+1

Devo non essere d'accordo. Diversi browser hanno i loro prefissi CSS e gestiscono varie cose a modo loro, gradienti CSS, rotazioni 2D, ecc. So che Firefox è l'unico browser che legge una regola prefissa -moz-, ma in qualche modo ritengo che sarebbe più aggraziato per servire solo tali regole a Firefox. Certo, comincerebbe ad essere pieno di lazy hack e! Dichiarazioni importanti quindi forse la mancanza di commenti condizionali non IE è una buona cosa. Per la cronaca: hai ragione, un buon programmatore non ne ha bisogno. –

+0

Si sta parlando dei prefissi dei fornitori che fanno parte delle specifiche W3C e consentono ai browser di implementare funzionalità specifiche per loro. Tipicamente questo è per proprietà non standard o proprietà instabili dove lo standard non è ancora stato finalizzato. I commenti condizionali stessi non sono standard, motivo per cui funzionano solo in IE. – Rob

12

si potrebbe provare il css browser selector

+0

fantastico! Grazie. –

+0

il link originale non funziona, puoi provare ad aggiornare la risposta? (So ​​che è stata celebrata 3 anni) –

12

Ecco come possiamo indirizzare gli stili CSS solo per Firefox:

<style type="text/css"> 
@-moz-document url-prefix() { 
    h1 { 
     color: red; 
    } 
} 
</style> 

Fonte: Targeting only Firefox with CSS

Problemi correlati