2009-09-08 15 views
5

Per i browser < IE7, voglio utilizzare un determinato attributo di stile, mentre per altri browser mi piacerebbe usarne un altro. Posso farlo usando un singolo file css, o devo fare se poi la logica di includere un file css hack cioè ie?CSS con logica del browser if/then

risposta

9

Ecco un esempio di come è possibile includere un IE6-specifica CSS per ignorare le classi CSS specifiche per IE 6 o inferiore:

<link rel="stylesheet" type="text/css" href="/css/screen.css" title="MySiteStyle" media="screen" /> 
<!--[if lte IE 6]> 
<link rel="stylesheet" type="text/css" href="/css/screen-ie6.css" title="MySiteStyle" media="screen" /> 
<![endif]--> 

In alternativa, è possibile farlo su base per-elemento in questo modo:

<!--[if (!IE) | (gt IE 6)]> 
<div class="header"> 
<![endif]--> 
<!--[if lte IE 6]> 
<div class="ie6_header"> 
<![endif]--> 

MSDN ha ulteriori dettagli sul supporto IE Conditional Comments.

2

Bene, è possibile utilizzare javascript per rilevare il browser e applicare una classe basata su tale. Ad esempio, si veda:

JQuery Attributes

1

È possibile utilizzare espressioni CSS in una certa misura.

Vedere http://gadgetopia.com/post/2774 per alcuni esempi. Questi non aggirano gli attributi CSS condizionali di per sé, ma consentono di variare dinamicamente i valori degli attributi CSS.

2

Potreste usare conditional comments:

<!--[if lt IE 7]> 
    <style> 
    /*your style for IE <=6*/ 
    </style> 
<![endif]--> 

<![if !IE | (gte IE 7)]> 
    <style> 
    /*your style for other browsers*/ 
    </style> 
<![endif]> 

ho trovato ad essere la soluzione più pulita per questo genere di cose.

+0

Non all'interno del "singolo file css" che l'OP stava chiedendo. – ChssPly76

+0

@ ChssPly76: era un'opzione, non un requisito. Ma hai ragione, questa opzione richiede * due * file (di solito sovrascrivo solo ** alcune ** cose sul foglio di stile specifico di IE). Ad ogni modo, penso ancora che questo sia un approccio più pulito. – voyager

+0

Nota che questo creerà lo stile specifico IE per tutte le versioni di IE, non solo

2

È possibile utilizzare CSS hacks. Ma non dovresti.

+0

+1 ** non dovresti ** – voyager

0

Il seguente numero page mostrerà sei hack CSS in particolare per IE7. Non dovresti usarli, ma sono il modo più semplice per ottenere l'aspetto giusto per il tuo sito web.

+0

Ci ** sono ** modi più semplici, guarda le altre risposte qui. – voyager

Problemi correlati