Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1531 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Span : display none qui "prend de la hauteur" sous IE.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Span : display none qui "prend de la hauteur" sous IE.

n°1257148
Beral2
Posté le 01-12-2005 à 22:21:55  profilanswer
 

Bonsoir tout le monde,
 
j'ai un menu classique mais graphique :

Code :
  1. <ul id="menu">
  2.    <li><a href="/index.php" id="accueil"><span>Accueil</span></a></li>
  3.    <li><a href="/photographies/index.php" id="photographies"><span>Photographies</span></a></li>
  4.    <li><a href="/3d/index.php" id="trois_d"><span>3D</span></a></li>
  5.    <li><a href="/informations/index.php" id="informations"><span>Informations</span></a></li>
  6.    <li><a href="/contact_cv/index.php" id="contact_cv"><span>Contact & Curriculum Vitae</span></a></li>
  7. </ul>


Graphique parce que c'est une image de background qui se "décale" avec le a:hover.
 
Problème d'accessibilité, j'essaie de mettre qd-même l'intitulé du menu en texte.
J'utilise la balise <span> avec "display: none;" en CSS (c'est pas la panacée mais c'est mieux que rien).
 
Problème, IE doit donner une certaine hauteur à ce span et tout le menu s'en trouve décalé (voir image ci-dessous) :
 
http://img220.imageshack.us/img220/6352/decalage8ll.jpg
 
Le décalage augmente lorsqu'on augmente la taille du texte (CTRL + molette souris).
Sous Firefox, tout reste nickel.
 
J'ai essayé avec des font-size à 0 (em, px, %...), des height etc... rien n'y fait.
 
Une idée svp ?
 
Merci.

mood
Publicité
Posté le 01-12-2005 à 22:21:55  profilanswer
 

n°1257227
Roane
Pingouino's fan
Posté le 02-12-2005 à 06:58:25  profilanswer
 

Je crois que tu ne comprends pas bien comment ça marche la sémantique. Tes <span> ne servent à rien là, styles les <a> directement :)


---------------
http://www.alsacreations.com, http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net. A ne surtout pas prendre en exemple : http://www.worldinternet.be
n°1257281
Beral2
Posté le 02-12-2005 à 10:20:00  profilanswer
 

Je verrai s'il est possible de mettre le "display: none" sur le "a" (qui est, au passage, déjà en display: block). La question reste de toute façon entière.
 
EDIT:

Code :
  1. #menu a
  2. {
  3. display: block;
  4. height: 22px;
  5. width: 102px;
  6. }
  7. a#accueil:hover
  8. {
  9. background: url(../images/menu.png) 0px -110px;
  10. }

Le "display: none" sur le "a" ne va-t-il tout simplement pas ne rien afficher du tout ? Pas trop ce que j'ai envie de faire.
 
 
REDIT :

Citation :

Je crois que tu ne comprends pas bien comment ça marche la sémantique


Hummm, je crois qu'il y a aussi beaucoup de types qui me semblent pourtant "très calés" et qui ont alors aussi des problèmes avec la sémantique ;)
http://www.mezzoblue.com/tests/rev [...] placement/ pour la technique du span notamment. Technique utilisée parmi d'autres, qui n'est pas parfaite et que j'emploie surement mal (sinon cela marcherait sous IE), mais...
 
Peut-être ne pas utiliser le "display: none" mais plutôt un "text-indent" de folie ?


Message édité par Beral2 le 02-12-2005 à 10:51:34
n°1257721
Beral2
Posté le 02-12-2005 à 17:58:45  profilanswer
 

:up: Pliiize.

n°1257735
gravastar_​bureau
vive la mise en page en tab...
Posté le 02-12-2005 à 18:25:09  profilanswer
 

Alors, d'après moi, si tu tiens absolument à utiliser une image en fond de menu :
 

Code :
  1. a{
  2.    background-image:url(ton_image);
  3.    background-position:top;
  4.    text-decoration:none;
  5.    color:black;
  6. }
  7. a:hover{
  8.    background-position:bottom;
  9.    color:white;
  10.    font-weight:bold;
  11. }


(rq : j'aime mieux utiliser une seule image en fond ou sont definis les 2 etats du "bouton" et que l'on positionne selon l'etat)

Code :
  1. <ul id="menu">
  2.     <li><a hre="url">Accueil</a></li>
  3.     ...
  4. </ul>


 
Sinon, vu que ton fond c'est de la couleur :

Code :
  1. a{
  2.    background-color:white;  // ou la couleur que tu veux
  3.    text-decoration:none;
  4.    color:black;
  5. }
  6. a:hover{
  7.    background-color:lightgrey;  // ou une autre couleur
  8.    color:white;
  9.    font-weight:bold;
  10. }


 
Ca te simplifierait un peu ton code

n°1257744
Beral2
Posté le 02-12-2005 à 18:50:19  profilanswer
 

Bon, merci pour la réponse mais c'est tjrs pas ma question, désolé.
 

Citation :

(rq : j'aime mieux utiliser une seule image en fond ou sont definis les 2 etats du "bouton" et que l'on positionne selon l'etat)


En fait c'est toute l'ul qui a une image de background et cette image se décale seulement dans la fenêtre des "a" : une seule image (état hover et pas) pour TOUT le menu, pas une par lien.
Le code CSS en entier (j'aurais dû le mettre d'entrée, désolé) :

Code :
  1. ul#menu
  2. {
  3. position: absolute;
  4. background: url(../images/menu.png) no-repeat !important;
  5. margin: 0 !important;
  6. background: url(../images/menu.gif) no-repeat;
  7. margin: 0px 0px 0px -52px;
  8. }
  9. #menu li
  10. {
  11. padding: 0;
  12. background-image: none !important;
  13. }
  14. #menu a
  15. {
  16. display: block;
  17. height: 22px;
  18. width: 102px;
  19. }
  20. a#accueil:hover
  21. {
  22. background: url(../images/menu.png) 0px -110px;
  23. }
  24. a#photographies:hover
  25. {
  26. background: url(../images/menu.png) 0px -132px;
  27. }
  28. a#trois_d:hover
  29. {
  30. background: url(../images/menu.png) 0px -154px;
  31. }
  32. a#informations:hover
  33. {
  34. background: url(../images/menu.png) 0px -176px;
  35. }
  36. a#contact_cv:hover
  37. {
  38. background: url(../images/menu.png) 0px -198px;
  39. }


 
Mon fond n'est pas que de la couleur (sinon, je n'aurais pas utilisé d'image), c'est une couleur avec transparence (le menu est légèrement transparent, image PNG, GIF pour IE).
Pour le texte il est aussi dans l'image parce que c'est plus joli (polices voulues, lissage des caractères...).
 
Quoi qu'il en soit, le menu marche très bien, aucun problème. Ce que je veux c'est le rendre accessible.
 
Ma question est, en quelque sorte, de savoir comment fixer la hauteur d'un span pour IE à 0 (même en agrandissant par molette + souris).
Ou quelle autre façon y a-t-il de rendre un menu graphique accessible ? Le text-indent ?
 
Sinks.


Message édité par Beral2 le 02-12-2005 à 19:04:34

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Span : display none qui "prend de la hauteur" sous IE.

 

Sujets relatifs
[CSS] probleme hauteur de cadreDiv de 1px de hauteur
Puis je fixer mon <span> ??[Résolu] Créer une CMainFrame qui ne prend pas le focus à l'ouverture
[Firefox] Hauteur background image qui ne s'allonge pas [edit]css : decalage de span.
[css]Opéra hauteur 100% en absolu[CSS] IE n'aime pas mon code...
Donner la même hauteur à deux div$_SERVER['PHP_SELF'] qui prend en compte les variables
Plus de sujets relatifs à : Span : display none qui "prend de la hauteur" sous IE.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR