Définir une nouvelle balise en CSS ???

Définir une nouvelle balise en CSS ??? - HTML/CSS - Programmation

Marsh Posté le 15-02-2009 à 10:36:59    

bonjour à tous
 
Quelqu'un peut-il me dire pourquoi ce code fonctionne "presque" avec FF ou Chrome ?????
 
test ici : http://www.petochon.fr/test_hardware.htm
 
Comme vous le voyez j'ai défini 3 styles.
 
Le style box2 est défini avec un # et utilisé avec un attribut id  :  résultat normal
Le style box3 est défini avec un . et utilisé avec un attribut class  :  résultat normal
 
mais box1 est défini seul donc comme une redéfinition de balise et utilisé dans le body avec une balise <box1> et </box1> !!!!!
 
Et là surprise ça marche "presque" avec FF et Chrome alors que ça  ne respecte pas du tout le css et l'html !!!!!!!!!!!!!
Et pour une fois IE affiche ce qu'on attendait : il ignore cette "pseudo-balise" box1 !!!
 
Je vais peut être passer pour un blaireau mais j'aimerais bien qu'on m'explique !!!!
 
merci


Message édité par yethi le 15-02-2009 à 10:43:21
Reply

Marsh Posté le 15-02-2009 à 10:36:59   

Reply

Marsh Posté le 15-02-2009 à 14:40:12    

Ben, normalement en HTML tu n'as pas le droit d'inventer tes propres balises, il y a des balises bien définies et c'est pour une bonne raison.
 
On peut créer des balises spéciales, mais ce n'est pas conseillé

Reply

Marsh Posté le 15-02-2009 à 15:30:01    

Salut Gatsu
 
Qu'est ce que tu appelles "balises spéciales" ????
Comment est ce qu'on défini ce type de balises ?? Pourquoi ce n'est pas conseillé ??
 
Dans l'exemple que j'ai donné, le fait qu'il n'y ai ni point ni diese specifie pourtant bien que l'on souhaite redéfinir une balise existante alors comment l'explorateur interprète ca ??
 
merci

Reply

Marsh Posté le 16-02-2009 à 09:17:42    

Le CSS n'est pas forcément lié à l'HTML. Il est avant tout lié à l'XML ou au SGML. Ou à ce qu'on veut...
 
Si on lui donne un selecteur de type box1, il va chercher un élément donc le tag name est box1. Il s'en fout si ça existe ou pas. CSS n'est pas là pour vérifier la syntaxe d'un document. Il n'a aucune connaissance du langage sous-jacent. C'est le navigateur qui fait le lien.
 
En fait ce n'est pas normal que ça ne fonctionne pas sous IE (encore un bug [:petrus dei]). Il gère parfaitement les CSS avec des dialectes XML customisés, c'est encore un truc louche dans leur soupe qui fait que ça ne fonctionne pas avec des balises inexistantes dans un contexte HTML...
 

Reply

Marsh Posté le 18-02-2009 à 07:27:21    

salut florentG
 
tu voudrais donc dire que l'explorateur interprète cette redéfinition de balise (box1 dans le CSS) comme du XML ???
 
Mais pourtant dans le header de ma page c'est bien specifié "DOCTYPE HTML" ...
 
alors ça veux dire qu'on peut faire de l'XML sans le déclarer!!!
 
bonne journée
 
A+

Reply

Marsh Posté le 18-02-2009 à 09:29:09    

Ce n'est pas une redéfinition de balise. C'est une règle CSS appliquée à un élément. Y'a juste que l'élément en question (box1) n'existe pas dans la DTD HTML4.
 
Et la recommendation HTML 4.01 spécifie des règles claires pour les documents invalides (y compris des documents avec des balises qui n'existent pas) :

Citation :

If a user agent encounters an element it does not recognize, it should try to render the element's content.


 
Donc selon le navigateur, une balise qui n'existe pas sera traitée comme un div ou une span. Note que la recommendation précise "should", dont la définition nous est donnée par le RFC 2119, donc ce n'est pas une obligation. S'ils ont une bonne raison de le faire, les développeurs de navigateurs font ce qu'ils veulent.
 
Et dans le cas de IE apparemment, ils ont décidé de ne pas appliquer des règles CSS à des éléments inexistants, dans un contexte HTML...

Reply

Marsh Posté le 18-02-2009 à 09:33:26    

La balise existera réellement pour IE qui si on fait via javascript :

Code :
  1. document.createElement('nomdelabalisecustom" );

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed