28173 sujets

CSS et mise en forme, CSS3

Bonsoir !

Oui, je cherche une méthode à base de CSS qui permettrai de dire que le premier li d'une liste apparaîsse différement des autres li de la liste.

Auriez-vous une idée ?
Bonsoir,
Oui il y a le pseudo-élément first-child mais IE ne la pas implémenté.
Sinon une solution est de donner un id supplémentaire pour le LI concerné.
ex: menu li#accueil {...}
Modifié par Hermann (26 Feb 2006 - 22:52)
Malheureusement, je ne maitrise pas la liste qu'il y aura... elle est générée automatiquement par ReapidWeaver.

Mais tant pis pour IE... je vais me servir de ta première solution ! Merci !!! Smiley cligne
a écrit :
Mais tant pis pour IE... je vais me servir de ta première solution ! Merci !!!


Ca c'est quand même risqué, IE est utilisé à 60% au moins, mais bon c'est toi qui voit. Ceci dit il me semble qu'IE7 l'implémentera.
Hermann a écrit :
Mais tant pis pour IE... je vais me servir de ta première solution ! Merci !!!

Ça c'est quand même risqué, IE est utilisé à 60% au moins, mais bon c'est toi qui voit. Ceci dit il me semble qu'IE7 l'implémentera.

Oui, enfin il y a risqué et risqué !
Si c'est pour de l'enjolivement, il n'y a pas de raison de s'en priver, surtout si c'est destiné, à moyen et long terme, à être mieux implémenté dans les navigateurs. Mais de manière générale, si ce n'est pas indispensable pour la compréhension du document ou l'impression graphique voulue mais qu'il s'agit juste d'un plus, je ne vois pas de contre-indication.

C'est un peu comme l'accessibilité... sauf que là les mal-voyants ont la possibilité de mieux voir en utilisant un navigateur plus performant. Mais comme on n'est pas là pour dire aux gens ce qu'ils ont à faire, on s'assure que le contenu soit accessible pour les utilisateurs d'IE Smiley cligne
Disons que c'est pour régler un tout petit détail cosmetique... mais alors tout petit... dans un menu en CSS, au niveau de la bordure. (Voilà pourquoi c'est pas grave pour IE)

Bon, mon projet avance... mais je viens de bloquer sur un truc : comment faire pour faire qu'un style soit lu par tout le monde sauf par IE ?

PS, je suis allé voir dans la FAQ... au niveau des hack...mais j'ai pas trouver un truc qui fonctionne bien...
Modifié par Vinc26 (27 Feb 2006 - 00:05)
Administrateur
Bonjour,

en temps normal, les commentaires conditionnels sont là pour faire cette différence. Mais là, si la propriété CSS n'est pas comprise par IE, il va simplement passer dessus sans effet: qu'il la lise ou non n'a aucun effet. Et peut-être que IE7 ou IE7.1 ou IE8 la comprendront, eux.
Oui, mais c'est pour une autre partie de mon CSS que j'ai besoin que tous les lisent sauf IE.

Bon, je vais reregarder du coté des commentaires conditionnels donc... si j'y comprends quelque chose ! Smiley biggol

PS : je viens d'aller voir, mais en fait, c'est l'inverse des commentaires conditionnels dont j'ai besoin. Smiley sweatdrop
Modifié par Vinc26 (27 Feb 2006 - 08:02)
Bonjour,

Les commentaires conditionnels peuvent également être utilisés pour masquer une feuille de style à IE Windows. Voir http://www.blog-and-blues.org/articles/Les_syntaxes_de_commentaires_conditionnels_pour_IE_Windows (dernière partie de l'article)

Des syntaxes de liaisons HTML CSS permettent également de faire la même chose (mention du charset dans le type de l'élément link par exemple).

Cela dit :
- il est très rare que des styles CSS problématiques dans IE ne puissent pas être ramenés à d'autres valeurs pour celui-ci
- s'il s'agit de réaliser deux CSS entièrement différentes dont une pour IE Windows spécifiquement, les commentaires conditionnels tels qu'expliqués dans l'article ci-dessus sont la solution la plus simple et la plus fiable.
Modifié par Laurent Denis (27 Feb 2006 - 08:26)
Bon, merci beaucoup, je viens d'aller lire tout ça. J'ai bien noté la méthode.

Grand merci : je... commence... à comprendre.

Et je m'apperçois que le mieux, serait, d'une manière générale, d'avoir toujours une feuille de style "correctice pour IE" via un commentaire conditionnel. Ainsi à la création, on fait pour que tout soit beau chez les autres, puis, on vient corriger juste ce dont on a besoin sur cette feuille pour IE. C'est ça ?

Mais alors une dernière question : imaginons que pour les autres, le padding de je ne sais quoi doit être à 3 alors que le même padding sous IE doit être à 5 : il y a un ordre pour déclarer la feuille de style spéciale ? comment être certain que ce sera que la premiere version sera remplacée par la seconde ???

Vous voyez ce que je veux dire ??? Smiley confused
Bonjour,

Les règles de la cascade sont faites pour cela. Il suffit, pour modifier une valeur uniquement dans IE:
- de mettre en premier le lien vers la CSS "conforme" et en second celui vers la la CSS en commentaires conditionnels.
- de reprendre à l'identique le même sélecteur.
Oui... je sens que ma question était un peu bête... c'est le principe des cascades... Smiley confused

J'ai donc opté pour la méthode générale suivante :
- Je déclare une feuille de style générale
- Je déclare une feuille de style "uniquement-ie.css"
- Je déclare une feuille de style "uniquement-autres.css"

Pensez-vous que j'aurai du faire plutôt ça ? :
- Je déclare une feuille de style générale
- Je déclare une feuille de style "uniquement-ie5et6.css"
- Je déclare une feuille de style "uniquement-autres.css" (dont IE7)

Merci pour tout, vraiment.
Vinc26 a écrit :
Oui... je sens que ma question était un peu bête... c'est le principe des cascades... Smiley confused

J'ai donc opté pour la méthode générale suivante :
- Je déclare une feuille de style générale
- Je déclare une feuille de style "uniquement-ie.css"
- Je déclare une feuille de style "uniquement-autres.css"

Pensez-vous que j'aurai du faire plutôt ça ? :
- Je déclare une feuille de style générale
- Je déclare une feuille de style "uniquement-ie5et6.css"
- Je déclare une feuille de style "uniquement-autres.css" (dont IE7)


Est-ce que tu utilises vraiment des propriétés CSS qu'IE ne doit jamais appliquer ? Parce que tu peux très bien déclarer ces propriétés CSS dans ta feuille de style générale.
- Celles qu'IE ne comprend pas, pas de problème
- Celles qu'IE comprend mal, il suffit alors de les ramener à leur valeur par défaut, non ? IE verra les deux feuilles de style, et certains styles de la feuille générale seront contredits dans la feuille spéciale pour IE. Comme c'est le dernier qui parle qui a raison, tout va bien.
Oui, je vois ce que tu veux dire. Je verrai avec le temps, mais je sens déjà que pour mon prochain site, je vais réfléchir comme toi !

Merci pour tout,


Vincent. Smiley smile