Version complète: sur le forum Webmaster Hub : Commentaire conditionnel et IE Mac
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > (X)HTML et CSS
MarvinLeRouge
Salut,

J'ai remarqué que le commentaire conditionnel ne semble pas marcher pour détecter IE Mac.
Quelqu'un aurait-il plus d'infos à ce sujet ?

Merci
Jan
Bonjour,
Je n'ai jamais utilisé les commentaires conditionnels, mais d'après ce que dit http://www.dithered.com/css_filters/html_o...omments_ie.html il semble en effet qu'ils ne soient pas supportés par beaucoup de navigateurs.
Xavier
Eh oui, que pour Windows : http://www.quirksmode.org/css/condcom.html IMSTP6.gif
MarvinLeRouge
D'où détection JavaScript (raaaahhh j'aime pas ça)

Merci
Dudu
Mais non pas de javascript wacko.gif

Certains hacks CSS permettent de masquer du contenu à IE 5 Mac.
Le plus connu d'entre eux a été créé par le même développeur qui a écrit IE 5 Mac (Tantek Celic)

CODE
p#tantek {
 voice-family: "\"}\""; /* parsing bug */
                        /* parsing bug */
 voice-family: inherit;
 color: #f00;
}

La règle sera appliquée par tous les navigateurs à l'exception de Netscape 4.x, Mac IE <=4.5, Win IE <=5.5 et Win Amaya 5.1 wink.gif
http://www.tantek.com/CSS/Examples/boxmodelhack.html
MarvinLeRouge
L'utilisation des hacks est contre ma philosophie (oui j'ai écrit dans le bon ordre).
Je considère qu'utiliser un bug d'un browser pour corriger un autre bug est une aberration.
Xavier
CITATION(MarvinLeRouge @ mardi 05 juillet 2005, 09h47)
L'utilisation des hacks est contre ma philosophie (oui j'ai écrit dans le bon ordre).
Je considère qu'utiliser un bug d'un browser pour corriger un autre bug est une aberration.
*
Une abération certes, mais pas pire que la détection javascript (qui, elle, est une bien pire abération : ne marche que si javascript est activé (c'est à dire moins de 90% des internautes - voir au milieu de la page-), et en plus c'est beaucoup plus foireux que les hacks css, avec les navigateurs qui faussent l'identification et tout... rolleyes.gif
wacko.gif

Alors soit tu fais rien, soit un hack CSS, mais pas de détection javascript :nono:
MarvinLeRouge
Ben peut-être, mais en l'occurence, ce que je veux, c'est MONTRER certains css à ie mac (pour corriger ses bugs spécifiques), pas lui CACHER.
Dudu
Salut,

excl.gif ne pas confondre "hack" et "bug"

Ensuite, ce hack a été créé spécialement pour l'occasion par Tantek Celic (Monsieur Explorer Mac, qui a d'ailleurs quitté MS pour rejoindre le w3c IMSTP3.gif) afin de contrer les problèmes de modèles de boîtes.
En effet, pour la petite histoire, Microsoft tente d'imposer au web sa vision d'un certain modèle de boîte (soit dit en passant je préfère presque ce modèle au modèle standard.. aïe me taper pas dessus: pour une fois que je dis du bien de MS).
Donc ils ont demandé à Tantek de coder IE Mac en respectant un modèle non standard.
Et il l'a fait, mais a codé une parade (un vrai-faux bug au niveau du parseur).

Donc, revenons en à nos agneaux.

Dans ta CSS, tu mets dans l'ordre
  • 1ère déclaration qui ne marche qu'avec IE Mac
  • 2ème déclaration: la vraie, mais cachée à IE Mac via le Tantek's hack
Et comme le dit Xavier, évites à tout prix le javascript pour détecter les navigateurs, çà ne marche jamais, ce n'est pas sémantique, et si le JS est désactivé c'est la catastrophe wink.gif

Bon courage

PS: en plus, IE Mac et le javascript ne sont pas copains: j'en sais quelque chose -> je suis en ce moment même à fond dans un problème de javascript qui fonctionne aléatoirement avec ce navigateur IMSTP5.gif
MarvinLeRouge
Salut,

1) Je n'ai pas confondu hack et bug. J'ai dit qu'un hack est l'utilisation d'un bug, ce qui est vrai : le code que tu m'as montré contient bien les mots "parsing bug", non ?
2) "vrai/faux bug ? Comment ça, "vrai/faux" ? Ce bug de parsing a été sciemment installé dans le logiciel ?
3) "javascript, ce n'est pas sémantique". Quel rapport entre javascript et la sémantique ? Tu ne changes pas le code html de ta page, et ton appel javascript est bien déclaré : il n'y a donc aucun problème dans ta sémantique. Ceci dit, je préfère de toute façon ne pas avoir à détecter le navigateur DU TOUT (ou à la limite le faire par un commentaire conditionnel, qui est quand même à mon avis beaucoup plus propre qu'un hack, puisqu'il est clairement déclaré).
4) J'ai trouvé une modification du hack de Tantek par lui-même ici, expliquée et commentée par Doug Bowman ici, qui permet de montrer uniquement certaines règles à ie 5 mac.
Nissone
CITATION(Dudu @ mercredi 06 juillet 2005, 03h46)
En effet, pour la petite histoire, Microsoft tente d'imposer au web sa vision d'un certain modèle de boîte (soit dit en passant je préfère presque ce modèle au modèle standard.. aïe me taper pas dessus: pour une fois que je dis du bien de MS).
*


Je ne serais pas celle qui te taperais ; je préfère, moi-aussi, la logique appliquée, dans ce cas, par IE que la logique des standards.
J'utilise systématiquement * {-moz-box-sizing:border-box} tout en préférant pourtant coder standard.

Pas taper non plus. C'est lui-ki-la-dit !
Dudu
CITATION(MarvinLeRouge @ mercredi 06 juillet 2005, 10h45)
le code que tu m'as montré contient bien les mots "parsing bug", non ?
2) "vrai/faux bug ? Comment ça, "vrai/faux" ? Ce bug de parsing a été sciemment installé dans le logiciel ?
3) "javascript, ce n'est pas sémantique". Quel rapport entre javascript et la sémantique ? Tu ne changes pas le code html de ta page, et ton appel javascript est bien déclaré : il n'y a donc aucun problème dans ta sémantique. Ceci dit, je préfère de toute façon ne pas avoir à détecter le navigateur DU TOUT (ou à la limite le faire par un commentaire conditionnel, qui est quand même à mon avis beaucoup plus propre qu'un hack, puisqu'il est clairement déclaré).
4) J'ai trouvé une modification du hack de Tantek par lui-même ici, expliquée et commentée par Doug Bowman ici, qui permet de montrer uniquement certaines règles à ie 5 mac.
*
1) promis la prochaine fois, j'enlève les commentaires d'un code copié-collé que je suis allé chercher dans mes favoris pour te rendre service dry.gif
2) OUI c'est ce qu'il me semble avoir dit et je n'ai toujours pas changé d'avis. En parlant de Doug Bowman, c'est lui a demandé à Tantek Celic de créer ce faux bug.
3) le javascript et la sémantique, le rapport est bien simple: le javascript ne sert (théoriquement) qu'à apporter des add-ons non-indispensables à une page. Toi tu t'entêtes à vouloir parser les user-agent avec pour servir tes styles, libre à toi. Maintenant si tu as déjà la réponse à ta question, pourquoi la poses-tu ? huh.gif
4) Google est un site extraordinaire

CITATION(Nissone @ mercredi 06 juillet 2005, 11h28)
Je ne serais pas celle qui te taperais ; je préfère, moi-aussi, la logique appliquée, dans ce cas, par IE que la logique des standards.
J'utilise systématiquement * {-moz-box-sizing:border-box} tout en préférant pourtant coder standard.

Pas taper non plus. C'est lui-ki-la-dit !
*

Vouais, mais çà rend quoi sur les navigateurs KHTML ton code (invalide tongue.gif). Car eux respectent le modèle standard mais n'appliquent pas les hacks -moz qui sont propres aux navigateurs Gecko unsure.gif

Maiheu, délatrice
MarvinLeRouge
Bon, remettons les choses en place : je DISCUTE, j'exprime mon opinion, je ne t'agresse pas : je propose donc que nous fassions redescendre ensemble le ton de la conversation vers un niveau plus zen smile.gif .

CITATION(Dudu @ mercredi 06 juillet 2005, 14h22)
1) promis la prochaine fois, j'enlève les commentaires d'un code copié-collé que je suis allé chercher dans mes favoris pour te rendre service dry.gif


Ben pourquoi ? Je ne t'ai pas fait de reproche, je constatai simplement quelque chose qui semblait aller dans mon sens, c'est tout.

CITATION(Dudu @ mercredi 06 juillet 2005, 14h22)
2) OUI c'est ce qu'il me semble avoir dit et je n'ai toujours pas changé d'avis. En parlant de Doug Bowman, c'est lui a demandé à Tantek Celic de créer ce faux bug.

Alors là, je ne comprends pas blink.gif
Comment Doug Bowman aurait-il pu demander à Tantek Celic de créer un faux bug ? Il aurait fallu que ça se passe AVANT la sortie du logiciel, puisque Tantek n'avait logiquement plus accès aux sources APRES. De plus, installer sciemment un bug, ce serait du sabotage. Aurais-tu une adresse expliquant cette demande ?

CITATION(Dudu @ mercredi 06 juillet 2005, 14h22)
3) le javascript et la sémantique, le rapport est bien simple: le javascript ne sert (théoriquement) qu'à apporter des add-ons non-indispensables à une page. Toi tu t'entêtes à vouloir parser les user-agent avec pour servir tes styles, libre à toi. Maintenant si tu as déjà la réponse à ta question, pourquoi la poses-tu ? huh.gif

Donc tu considères que j'utilise le javascript à contre-emploi. Oui, il est vrai qu'on ne devrait pas avoir besoin de faire appel à javascript pour ce genre de choses. Ceci dit, quelle est le but précis de javascript ? Si on n'est pas censé s'en servir pour détecter le navigateur et faire des actions en fonction du résultat, pourquoi a-t-on accès aux variables désignant le navigateur ? Ceci étant dit, je vois tout à fait le sens de ta remarque, mais je ne considère pas ça comme de la sémantique : la sémantique concerne le sens des termes, ce qui est ici hors de propos.

CITATION(Dudu @ mercredi 06 juillet 2005, 14h22)
4) Google est un site extraordinaire

Certes, mais ce n'est pas Google qui m'a donné la réponse : c'est toi ! J'ai trouvé l'info en farfouillant sur le site de Tantek à partir du point de départ que tu m'avais fourni. Au fait, merci biggrin.gif

CITATION(Dudu @ mercredi 06 juillet 2005, 14h22)
Vouais, mais çà rend quoi sur les navigateurs KHTML ton code (invalide tongue.gif). Car eux respectent le modèle standard mais n'appliquent pas les hacks -moz qui sont propres aux navigateurs Gecko unsure.gif

Les -moz* ne sont pas des hacks : ce sont des propriétés propriétaires (désolé pour la redondance). Tous les navigateurs ont le droit de définir des propriétés css spécifiques, tant qu'ils les font précéder du préfixe défini par le w3c (il y a -moz, -mso et je ne sais plus quoi d'autre). Le code en question est donc théoriquement valide, quoi qu'en disent les valideurs robotiques qui ne connaissent la plupart du temps pas ces préfixes. Les propriétés en question sont simplement censées être purement et simplement ignorées par les navigateurs auxquels elles ne sont pas destinées.

Bon alors pas taper, je ne cherche nullement à allumer le feu de ta verve vengeresse : je DISCUTE c'est tout biggrin.gif
Xavier
CITATION(MarvinLeRouge @ mercredi 06 juillet 2005, 21h13)
Donc tu considères que j'utilise le javascript à contre-emploi. Oui, il est vrai qu'on ne devrait pas avoir besoin de faire appel à javascript pour ce genre de choses. Ceci dit, quelle est le but précis de javascript ? Si on n'est pas censé s'en servir pour détecter le navigateur et faire des actions en fonction du résultat, pourquoi a-t-on accès aux variables désignant le navigateur ?
Non, d'ailleurs ni les spécifications javascript (en fait ECMAScript), ni le DOM du W3C définissant les propriétés auxquelles on a accès ne contiennent quoi que ce soit en ce sens, c'est un pur ajout des fabricants de navigateur, et comme d'habitude évidemment il est plus possible de s'en défaire tout ça tout ça...

Ce n'est donc pas dans l'esprit du javascript de faire ce genre de choses (d'ailleurs mieux vaut détecter les capacités du navigateur avec un if(document.getElementById) par exemple qu'il if(IE|Netscape).)

CITATION
Les propriétés en question sont simplement censées être purement et simplement ignorées par les navigateurs auxquels elles ne sont pas destinées.
Dont KHTML/Safari, qui seront donc incapables d'afficher correctement la page hypocrite.gif (en fait c'est plutôt ta page qui est mal conçue pour leur permettre de l'afficher correctement).

Les -moz* ne devraient pas être utilisés en production, en tous cas ceux qui ont une telle importance et une telle influence sur l'affichage de la page et peuvent la rendre totalement illisible (évidemment, un petit -moz-border-radius n'a jamais fait de mal, d'ailleurs je crois qu'il y a aussi un -khtml-border-radius wink.gif ).

Mais dans le cas du -moz-box-sizing c'est en tous cas pas quelque chose à utiliser dans une page web rolleyes.gif
MarvinLeRouge
1) JavaScript : nous sommes bien d'accord. Je ne détecte normalement en javascript que les fonctionnalités. Là c'est vraiment un cas particulier. (D'ailleurs j'utilise très peu JavaScript tout court smile.gif)

2) Ah ben forcément, si tu utilises des propriétés spécifiques à UN navigateur pour donner des consignes essentielles à TOUS les navigateurs, ça va beaucoup moins bien marcher. Ah ben forcément, c'est ballot biggrin.gif
Pour -khtml, ça ne m'étonne guère : comme Firefox, il se contente de préparer le futur. Eh oui, contrairement à d'autres navigateurs que je ne citerais pas (comment ça c'est déjà fait ?), ils n'en sont pas au stade de corriger les erreurs du passé (lointain ?). wink.gif

PS : Merci Xavier, tu viens de rajouter dans ma liste de choses à faire "Lire la spec ECMAScript complète". Bon nbein j'vais pas m'embêter moi cet été biggrin.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.