SELFHTML

Roland Skop:
Aiguillage pour navigateurs - Exclusion des navigateurs déficients

Page d'information: vue d'ensemble

vers le bas Roland Skop
vers le bas Remarques sur le sujet
vers le bas Exemple avec explications
vers le bas Liens contextuels

vers le bas 

Roland Skop

Homepage-URL: deutschsprachige Seite http://skop.net/

Il s'agit ici d'un article traduit de l'allemand par la rédaction de SELFHTML actuel. Veuillez poser vos questions relatives à cet article uniquement à son auteur, prenant compte que celui-ci ne maîtrise peut-être pas la langue française!

vers le hautvers le bas 

Remarques sur le sujet

Lors de l'établissement d'une mise en page complexe avec les CSS, on est fréquemment confronté à des problèmes dus à l'implémentation insuffisante de la spécification CSS dans différents navigateurs. Il est possible d'éviter ces difficultés en employant certaines définitions. Pour ce faire, les propriétés qui posent problème sont remisées dans des passages qui ne sont pas compris par les navigateurs et qui sont ainsi sautés lors du rendu de la page.

Avant tout dans la version 4 du navigateur Netscape que l'on rencontre toujours encore fréquemment, l'implémentation des CSS est très insuffisante et de nombreuses définitions provoquent des résultats inattendus. Dans le premier exemple, il est expliqué comment vous pouvez protéger N4.x de telles feuilles de style.

Cependant même des navigateurs actuels, tout particulièrement l'Explorer Internet de Microsoft ne sont pas en mesure d'interpréter toutes les propriétés correctement. Le deuxième exemple explique comment contourner ce problème.

vers le hautvers le bas 

Exemple avec explications

Exemple pour Netscape 4.x

Démonstration: nouvelle fenêtre  Exemple d'affichage: aperçu

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<style type="text/css">
<!--
@media all {
  a { border: 1px solid #f00; }
}
-->
</style>
</head>
<body>

<p>Ce <a href="#">lien</a> est représenté avec un cadre rouge par les navigateurs qui interprètent @media .</p>

</body>
</html>

Explication:

Pour Netscape 4.x, les liens auxquels a été affecté un cadre avec border: ne sont pas cliquables. Étant donné que ce navigateur n'interprète pas la Page d'information: connexion exigée définition de formats pour différents médias de sortie - dans l'exemple @media all -, a { border: 1px solid #f00; } est ignoré. Écrivez donc toutes les mentions qui posent problème dans ce passage.

Attention:

Il est également possible de tenir Netscape 4.x à l'écart de vos feuilles de style en employant les modes d'incorporation ci-après:

Pour mettre ce bogue à profit, établissez une feuille de style de base et incorporez-la dans vos pages comme d'habitude. Dans le fichier style.css, que vous incorporez en plus comme il est mentionné ci-dessus, vous pouvez maintenant définir d'autres mentions sans „surmener“ pour autant Netscape 4.x.

Exemple pour l'Explorer Internet

Démonstration - nouvelle fenêtre Exemple d'affichage: aperçu

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
  "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title></title>
<style type="text/css">
<!--
#contenu {
  position: absolute;
  width: 200px;
  z-index: 1;
  /* usw. */
}

#nav {
  position: absolute;
  top: 30px;
  left: 150px;
  width: 200px;
  z-index: 2;
  /* etc... */
}

#nav[id] {
  position:fixed;
}
-->
</style>
</head>
<body>

<div id="nav">
  <p>Ce passage est fixe avec Mozilla, Opera et Konqueror.</p>
  <p>Avec les navigateurs qui ne comprennent pas le sélecteur d'attribut [id],
     ce passage est positionné de façon absolue et, de ce fait, défile avec l'écran.</p>
</div>

<div id="contenu">
  <p>Texte plein</p>
  <!-- etc.... -->
</div>

</body>
</html>

Explication:

Le Page d'information: connexion exigée mode de positionnement au moyen de position:fixed conduit l'Explorer Internet à une représentation erronée.

C'est pourquoi, dans la feuille de style, le DIV est tout d'abord positionné de façon absolue avec l'ID nav. Ensuite, la propriété position:fixed est affectée à ce passage à l'aide du sélecteur d'attribut [id]. La spécification sur les page en langue française  sélecteurs CSS2 stipule: E[foo] Correspond à tout élément E avec l'attribut "foo" (quelles qu'en soient les valeurs)..

Cela veut dire dans l'exemple que le sélecteur d'attribut utilisé #nav[id] a un effet sur l'élément nav, si ce dernier possède un attribut id, indépendamment de son contenu. L'Explorer Internet n'interprète pas de sélecteurs d'attribut, et par l'emploi de ceux-ci il est donc possible de lui cacher les feuilles de style qui le „surmèneraient“.

Cette méthode est également bien appropriée pour contourner le problème occasionné par le page en langue française modèle des boîtes. Positionnez tout d'abord les éléments de telle façon qu'ils soient représentés correctement par le MSIE et modifiez ensuite les tailles en leur donnant les valeurs correctes en mettant cette astuce en pratique.

Attention:

L'exempe contient quelques paragraphes de plein texte pour augmenter la taille de la page. Il est ainsi possible de constater la fixation du passage #nav avec les navigateurs Mozilla, Opera et Konqueror lorsque vous faites défiler la page.

vers le hautvers le bas 

Liens contextuels

Les adresses qui suivent sont recommandées pour mieux comprendre les exemples ci-dessus ou pour approfondir et apprendre d'autres possiblités.

Page d'information:connexion exigée SELFHTML: Définition de formats pour différents médias de sortie
Page d'information:connexion exigée SELFHTML: Diverses feuilles de style séparées pour différents médias de sortie
Page en langue française Traduction du W3C: Les sélecteurs d'attribut dans les CSS2
englischsprachige Seite How to hide CSS from buggy browsers

vers le haut

© 2005 Seite Informations