28173 sujets

CSS et mise en forme, CSS3

Bonjour Smiley smile

Voila en gros j ai fait les choses dans l ordre et j ai pour le moment :

1 fichier CSS ok pour IE nommé ie.css
1 fichier CSS ok pour mozilla nommé firefox.css

Comment dois je faire pour que l utilisateur mozilla tombe sur le CSS mozilla et que l utilisateur IE tombe sur le CSS IE ?

Parait qu en mettant un code en php ou java il y a moyen qu automatiquement le bon fichier css soit utilisé ... ie.css quand un surfer utilise IE et firefox.css quand un surfer utilise mozilla

Merci à vous tous
;)
Modifié par donfino (31 Jan 2006 - 21:33)
Bonsoir,
je pense que tu trouveras ton bonheur dans la FAQ Smiley cligne

Ne perds pas de vue que l'utilisation des standards a pour but d'éliminer ces problèmes, en théorie.
En pratique, ça donne une feuille de style standard (pas "Firefox", sinon tu n'as pas fini Smiley cligne ), et quelques corrections pour Internet Explorer si nécessaire Smiley smile
En effet. Pour ma part, je corrige les bugs IE dans un fichier css à part, que j'inclue avec cette technique:
<link rel="stylesheet" media="screen" type="text/css" title="styles" href="style.css" />
<!--[ if IE ]>
  <link rel="stylesheet" media="screen" type="text/css" title="corrections IE" href="ie_supplements.css" />
<![ endif ]-->

(il ne faut pas nécessairement mettre les espaces avec les crochets, c'est juste pour que ca passe sur le forum)
La ligne est considérée comme un commentaire pour tous les navigateurs sauf IE.
Modifié par streetpc (31 Jan 2006 - 23:14)
Ok

C est normal que quand je tape ton code j ai les 3 dernieres lignes qui sont en gris ?
ou alors j ai du mal a le fouttre dans ma page

Je dois bien le mettre dans ma page index ? mais ou dans cette page ? entre les balises head ?

au fait tu charges un CSS par defaut mozilla et si c est internet explorer tu charges un autre css ?

Merci à toi
je pense qu'il y a eu une petite erreur de fin de commentaire.... à la ligne deux regarde

<!--[ if IE ]>

<link rel="stylesheet" media="screen" type="text/css" title="corrections IE" href="ie_supplements.css" />

<![ endif ]-->

<!--[ if IE ]-->

<link rel="stylesheet" media="screen" type="text/css" title="corrections IE" href="ie_supplements.css" />

[ endif ]
ok

et je dois mettre ça entre quelles balises ?

dois je copier le code tel quel ou entre des balises php ?

merci
Bonjour,

Ahem... Il y a quelques confusions dans ce sujet Smiley cligne

Pour la syntaxe des commentaires conditionnels, voir la FAQ du forum et cet article pour approfondire): la syntaxe indiquée par streetpc est correcte (aux espaces près, ajoutés ici pour éviter un bug de rendu dans le forum). Il ne faut justement pas refermer le commentaire au mauvais endroit en écrivant <!--[ if IE ]--> Smiley cligne

Pour les deux feuilles de style de donfino : on évite dans la plupart des cas cette démarche consistant à définir des feuilles complètes différentes pour chaque navigateur. Ceci poserait par exemple un problème amusant face à IE7, pour lequel :
- la feuille pour IE6.0 ne conviendra pas, étant donnée les diverses corrections de bugs CSS qu'il comporte
- la feuille "navigateurs conformes" ne conviendra pas forcément non plus, si ces corrections ne le rendent pas suffisamment conforme (exemple immédiat: le support de height / min-height)

Il est plus rentable d'écrire une feuille complète pour tous les navigateurs (conformes et non conformes), et d'y ajouter une feuille apportant seulement les quelques corrections nécessaires pour IE. On utilise alors les commentaires conditionnels pour réserver la lecture de ce correctif à IE. Et différencier le moment venu les éventuelles corrections propres à IE7.
C'est l'exemple donné par streetpc, auquel il faut cependant enlever les attributs title. Ceux-ci ont un rôle bien spécifique dans les <link rel="stylesheet"> (styles alternatifs et préférés, styles permaments, voir cet article ). On évitera également d'adresser le correctif à IE7, pour lequel il ne sera pas adapté. On écrira donc :
<link rel="stylesheet" media="screen" type="text/css" href="style.css" />
<!--[ if lte IE 6]>
  <link rel="stylesheet" media="screen" type="text/css" href="ie_supplements.css" />
<![ endif ]-->


Cela dit, pour faire passer au contraire 2 feuilles complètes comme cherche à le faire donfino, on pourra utiliser par exemple :

<link type="text/css; charset=ISO-8859-1" rel="stylesheet" ... />

<!--[ if lte IE 6]>
<link rel="stylesheet" ... />
<![ endif]-->


La première feuille sera ignorée par IE Windows 5.x-6.0, qui ne lira que la seconde. Et il est très probable qu'IE7 reproduira le comportement d'IE6.0 dans ce cas : il n'aura alors aucune feuille de style avec le code ci-dessus, mais un second commentaire conditionnel permettrait de lui en adresser une rien que pour lui Smiley cligne A noter également : IE5 Mac ignorera les deux feuilles de styles.

Mais on peut aussi jouer seulement sur les commentaires conditionels:

<!--[ if IE 7]> <-->
	<link rel="stylesheet" ... />
<!--> <![ endif]-->

<!--[ if lte IE 6]>
	<link rel="stylesheet" ... />
<![ endif]-->


(Supprimer l'espace qui suit chaque crochet ouvrant, ajouté ici pour éviter le bug d'affichage du forum. Attention en revanche à respecter exactement les balises de commentaires SGML).

La première feuille sera lue par tous les navigateurs à l'exception d'IE 5.x et 6.0 Windows. IE7 la lira également (Pour devancer une question probable : oui, cette partie contient un if IE7, mais non, celui-ci n'aura aucun effet sur Firefox, Opera, Safari, etc qui liront eux aussi la feuille de style. Voir les explication dans cet article).

La seconde feuille ne sera lue que par IE5.x et 6.0. Ni les Firefox, Opera, Safari etc, ni IE7, ne la liront.

Le moment venu, il sera possible d'ajouter une 3e feuille uniquement corrective pour IE7 en cas de besoin...

Pour ceux qui testeraient ce code avec une beta1 ou une pre-beta2 d'IE7 standalone: penser à réactiver les commentaires conditionnels Smiley cligne (voir ce billet )

Enfin, il est assez périlleux de se lancer dans ce genre de choses sans avoir les bases nécessaires en HTML Smiley cligne
Pour répondre à la question de donfino ci-dessus : les commentaires conditionnels sont des commentaires HTML, qui se placent dans le code HTML, à l'emplacement normal du code HTML qu'ils contiennent.
Quand on les utilise pour lier des feuilles de styles, le code se place dans la section <head>...</head>, comme pour n'importe quel autre <link rel="stylesheet">.
Modifié par Laurent Denis (01 Feb 2006 - 10:09)
Bonjour

J'ai essayé de plusieurs façon mais je n'y arrive pas ... Smiley decu

Voici le debut de mon code de ma page index

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
	
	<head>
		<title>Mississauga</title>
		
		<link rel="stylesheet" type="text/css" href="css/screen.css" />
				
	    <style type="text/css">
<!--



Est ce que quelqu un sait me dire ou je dois placer cette partie du code donnée par Laurent Denis :


<link type="text/css; charset=ISO-8859-1" rel="stylesheet" ... />

<!--[ if lte IE 6]>
<link rel="stylesheet" ... />
<![ endif]-->



Merci à vous
Modifié par donfino (01 Feb 2006 - 11:11)
Bonjour Smiley smile

donfino et Pierre13, Pensez à utiliser les balises "code" pour encadrer vos codes... Merci d'avance d'éditer vos posts pour corriger Smiley cligne
Modifié par dominique (01 Feb 2006 - 11:06)
bonsoir, j' espère que je ne vais pas faire tache dans ce debat de haut niveau, car je ne suis au css que depuis deux jours, et je viens de passer une journée entière à essayer de faire la même chose sur IE et Firefox avec une seule css Smiley biggol
ouf! je vois que ça ne vient pas de moi, mais que c'est un big probleme...il y a une chose que je n'ai pas vraiment compris par contre , c'est le fichier
ie_supplements.css ... est-ce un fichier standard qu'on peut trouver ? ou est ce à moi de le créer en mettant tout ce qui ne marche pas sur IE ?