Probleme de signets

Illith Messages postés 5 Statut Membre -  
Illith Messages postés 5 Statut Membre -
Bonjour,

J'ai créé une page avec style css me permettant d'avoir le header fixe et le corps de page défilant (que je n'ai par ailleurs réussi à faire que sous FF mais cela... c'est une autre histoire!).

Le corps de ma page est un "include" (PHP) d'une page html ne contenant que du texte.

Comme cette page html est assez longue, j'ai donc naivement voulu y ajouter des signets. Malheureusement, lorsque je clique sur le lien me permettant de remonter en haut de page, <a href="#hautdepage>Retour en haut de page</a>, ce dernier me décale mon header alors que je l'ai défini fixe.

Le haut de la page HTML est donc effectivement en haut de mon navigateur mais j'aurai quand même voulu conserver le haut de ma page PHP

J'ai essayé en mettant le flag sur la page PHP et le lien <a href="lapage.php#hautdepage>Retour en haut de page</a> mais la page HTML ne remonte plus du coup!

Arrrrrrgggghhhhh... je deviens ouf!

Si vous connaissez un moyen de contourner ce problème, je suis preneur!

Merci d'avance de votre aide!

5 réponses

Electron
 
Bonjour,
si vous souhaitez un en-tête fixe et un corps de texte défilant, pourquoi, à ce moment là, ne pas en revenir aux bonnes vielles frames ?
A+.
0
gryzzly Messages postés 5220 Date d'inscription   Statut Contributeur Dernière intervention   1 335
 
Argh, non, pas de conseils foireux comme celui là !

Pourquoi ne PAS utiliser les frames !

<a href="lapage.php#>

→ un # tout seul, ca suffit...

PS : si on voyias le résultat de ton "probleme" en ligne, ca serait plus facile pour nous.
0
Electron
 
Bonsoir,
je ne pense pas qu'il s'agisse là d'un 'conseil foireux' l
Lorsqu'elles sont judicieusement employées, les frames se révèlent être très fonctionnelles et les quelques reproches qui leurs sont généralement faits deviennent obsolètes.
Mais il ne s'agit pas, bien sûr, d'en mettre partout comme on le faisait en 1995.
Cordialement.
0
gryzzly Messages postés 5220 Date d'inscription   Statut Contributeur Dernière intervention   1 335 > Electron
 
http://www.projetweb.com/labalise/frames_3.php
0
Electron > gryzzly Messages postés 5220 Date d'inscription   Statut Contributeur Dernière intervention  
 
Re-bonjour,
oui, j'ai bien vu, précédemment dans votre post, ce lien vers Projeweb.
Comme je disais, tous ces reproches sont exacts, mais ils ne sont pas les seuls à les faire, en fait, ce sont les mêmes reproches depuis 8 ans environs à l'encontre des frames. Mais il ne faut pas se formaliser tout inconvénient peut être contourné.
En l'occurrence, notre soucis est qu'une personne souhaite afficher une page dont le haut doit demeurer fixe, c'est pourquoi, malgrès les quelques inconvénients, je suggère un frame comme solution rapide et les signets à l'intérieur d'un même frame demeurent possibles.
A+.
0
Gihef Messages postés 5165 Statut Contributeur 2 779 > gryzzly Messages postés 5220 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour vous,

On peut ajouter :
http://www.acces-pour-tous.net/fichiers_communs/access.php?rub=frames
https://openweb.eu.org/articles/finir_cadres/

--
0
gryzzly Messages postés 5220 Date d'inscription   Statut Contributeur Dernière intervention   1 335 > Electron
 
Dans ce cas, pourquoi ne pas proposer plutot une méthode "propre" : le bloc div, accompagné de la propriété overflow. tous les inconvénients (il n'y a aucun avantage) des frames sont réglés.

Fin du débat sur les frames ici pour moi. Aucun argument ne pourra me faire admettre l'utilité de cette méthode, puisque tout peut être remplacé par des méthodes plus... conventionnelles.
0
Gihef Messages postés 5165 Statut Contributeur 2 779
 
Bonjour,

Electron> Si on peut s'en passer…

Je ne connais pas PHP, mais HTML et CSS.
Cette petite astuce semble fonctioner :
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>PHautP</title>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <style type="text/css">
    html, body {
      margin: 0;
      padding: 0;
      text-align: center;
      background-color: #b0c4de;
      }
    #conteneur {
      position: relative;
      margin: 0 auto;
      width: 760px;
      text-align: left;
      background-color: #f0f8ff;
      font-family: Tahoma, 'Trebuchet MS', Verdana, Optima, Papyrus, sans-serif;
      }
#hautdepage {
  height : 110px;
  }
#entete {
  position : fixed;
  top : 0;
  height : 100px;
  background-color: #aff;
  width: 760px;
  }
    </style>
</head>
<body>
  <div id="conteneur">
    <div id="hautdepage"></div>
    <div id="entete">En-tête</div>
    <div id="corps">
    Corps
      <?php
      include 'le.txt';
      ?>
    </div>
  </div>
</body>
</html>
Définir une <div id="hautdepage">.
Indiquer cet id comme href dans le fichier .txt.
Le mien est une longue liste dont le dernier élément est
<li><a href="#hautdepage">haut</a></li>
Peut-être y en a-t-il d'autres, astuces ?

++
En général, pour atteindre le haut d'une page, il suffit d'indiquer un simple “#”.

--
0
Illith Messages postés 5 Statut Membre
 
Bonjour,

Merci beaucoup de vos réponses.

Effectivement la solution des frames était tentante mais je désirais justement les éviter, voulant créer mes pages en respectant au maximum les nouvelles normes w3c (pour le peu que je les connaisse!!! :p ).

Je n'était pas tres dispo ces derniers temps, mais je promet de bientot essayer les diverses solutions proposées. Par contre, pour le visuel, je suis désolé, je développe en local et mes pages ne sont pas encore en ligne! :((

Merci encore de votre aide, je vous tiens au courant si l'une de vos solutions fonctionne! :D

A bientôt!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Illith Messages postés 5 Statut Membre
 
RE!

Bon, après 1 heure de bidouille, j'ai capté un truc sur ton style Gihef. Tu mets ton header en position "fixed" que je mettais en position "absolute"... j'ai donc mis en "fixed" et le header est resté, comme par enchantement ... fixe!

Merci beaucoup à tous, ça marche impec!

A++
0