Page Fixe

Eléphant du PHP | 65 Messages

22 mars 2006, 13:53

Bonjour !

Je ne sais pas si je poste au bon endroit, o pire prévené moi je réecrirai dans la bonne section.
Je souhaiterais en fait savoir comment on fait pour avoir une partie fixe sur une page web.
Je m'explique : imaginons que j'ai l'entete de mon site web, a gauche les menus et au centre les données. Je souhaiterais que lorsque l'on clique sur le menu (ex : aller dans la section cartes), l'entete et le menu ne change pas, ce n'est que la partie du milieu qui change.

En gros avoir l'entete et le menu qui reste fixe et seulement une partie de la page qui charge les données voulus

Si vous auriez juste un lien vers un tuto ce serais cool ;)

Voilà, merci d'avance 8)

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

22 mars 2006, 13:57

Regarde du côté des FRAMESET et FRAME ou les iframe
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Eléphant du PHP | 65 Messages

22 mars 2006, 19:42

Ok merci je viens de testé un peu ca m'a l'air sympa :D
Mais j'ai une question : est-il possible de faire un decoupage en 3 parties ?
Car j'ai réussi à le faire en 2 mais pas en trois ! J'ai créer la page avec le frame set, et 2 pages qui sont les 2 parties des pages...

Voici la page générale :

Code : Tout sélectionner

<HTML> <HEAD> <TITLE>Accueil</TITLE> </HEAD> <FRAMESET ROWS="30%,*" FRAMEBORDER="NO" ID="frameSet"> <FRAME NAME="signhaut" SRC="signhaut.php"> <FRAME NAME="mil" SRC="milieu.php"> </FRAMESET> </HTML>
Maintenant, j'aurais une autre question :oops:

Dans une page web (la page d'accueil par exemple), par quel procédé puis-je effectué des cardes. Je m'explique par un dessin :

Image

Donc ce que je n'arrive pas c'est créer 3 bloques independants, l'un a gauche, l'autre à droite pour les menus (A et C). Puis l'un au centre pour les news (B).

Mon objectif final serais alors que seul le cadre B change lorsque l'on clique sur un lien de la page !

Voilà si des personnes pourrais m'eclairer sur ce sujet, je les remercis ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 mars 2006, 12:47

Tu n'étais pas bien loin, il te suffit de rajouter un tag frame et de spécifier sa taille :)

Code : Tout sélectionner

<HTML> <HEAD> <TITLE>Accueil</TITLE> </HEAD> <FRAMESET ROWS="30%,*, 150" FRAMEBORDER="NO" ID="frameSet"> <FRAME NAME="signhaut" SRC="signhaut.php"> <FRAME NAME="mil" SRC="milieu.php"> <FRAME NAME="droite" SRC="droite.php"> </FRAMESET> </HTML>
tu obtiens ainsi trois colones de largeurs respectives :
A gauche : 30% de l'affichage de la page
A droite : 150 px quelque soit la largeur de la page
Au centre : * , c'est à dire la place qui reste ;)

A adapter comme bon te semble :)

Il te suffit ensuite dans les liens de tes frames de droite et de gauche, d'ajouter l'attribut target="nomDeLaFrameDuCentre" pour que ceux ci s'ouvrent à l'intérieur :)

Code : Tout sélectionner

<a href="mapage.html" target="mil">mon lien</a>

Modérateur PHPfrance
Modérateur PHPfrance | 2575 Messages

23 mars 2006, 13:22

...

Code : Tout sélectionner

.... <FRAMESET ROWS="30%,*, 150" FRAMEBORDER="NO" ID="frameSet"> ....
tu obtiens ainsi trois colones de largeurs respectives :
....
Non Ryle, ton code dispose les frames en lignes (ROWS) pour obtenir une disposition en colonnes il faut utiliser "COLS" selon ce qui est demandé par notre ami.

Correction:

Code : Tout sélectionner

<HTML> <HEAD> <TITLE>Accueil</TITLE> </HEAD> <FRAMESET COLS="10%,*, 10%"> <FRAME NAME="A" SRC="menuA.htm"> <FRAME NAME="B" SRC="news.htm"> <FRAME NAME="C" SRC="menuC.htm"> </FRAMESET> </HTML>
Ce qui crée un ensemble de trois cadres A, b et C orientés verticalement dont les largeurs de A et C consomment 10% chacun et le reste (80%) est reservé pour le cadre B
L'estimation des largeurs en % permet au navigateur de les recalculer automatiquement selon la largeur réélle de la fenêtre.
Ce n'est pas obligatoire, si tu veux des largeurs fixes utilise l'unité px (pixel) qui est l'unité par défaut.
Exemple : COLS="100, *, 100" fixe A et C à 100 pixel chacun le reste est pour B.
--------//////----//---//----//////
-------//---//----//---//----//---//
------//////----//////-----//////
-----||--------||--||---||
Prendre le recul n'est pas une perte de temps.


ps: Affrontez moi dans l'arène

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 mars 2006, 14:44

Oops au temps pour moi, je n'avais pas fait attention au rows/cols, j'ai cru que le soucis venait du nombre :)

Merci d'avoir rectifié :)

Eléphant du PHP | 63 Messages

23 mars 2006, 15:06

Salut à tous !

Les frames c'est caca beurk !!!

Pourquoi ne pas faire tout simplement des pages en PHP avec un include("menu.php"); qui servirait à inclure le menu écrit dans la page menu.php.

Comme cela on écrit une fois le menu et ensuite on inclut dans autant de pages que l'on veut.

C'est simple, c'est propre et sans frames !

Seul contrainte l'hébergeur doit accepter le PHP.

Mais je crois qu'il est tout de même possible (sous certaines conditions) d'inclure des pages dans du HTML grâce au Server Side Includes.

Plus d'info sur les SSi :
- http://www.urec.cnrs.fr/geret/96.06.www ... s/ssi.html
- Recherche de Google

@+ fafane84
Web Tutoriels (site test) et DivX Tutos : les tutos de fafane84

Eléphant du PHP | 312 Messages

23 mars 2006, 15:51

Les frames foutent le bordel dans les moteurs de recherche, sur les anciens navigateurs et ne facilitent pas les changements majeurs.

Donc il est préférable de marcher au css pour la mise en page et à la rigueur d'utiliser les frame quand on sait quels navigateurs (leur version surtout) sont supposés pouvoir voir votre page, si on ne cherche pas un référencement dans un moteur de recherche et si on ne prévoit pas de faire de gros chamboulements dans les pages.
Autrement dit, quand on développe pour un intranet (et encore tout dépend du contenu des pages parce qu'il peut être intéressant de faire passer un moteur de recherche dessus).

Eléphant du PHP | 65 Messages

23 mars 2006, 18:11

Merci à tous pour votre aide !

Je vais testé les frame, voir ce que ca donne, puis je regarderai ton idée de + pret fafane84 :shock:
Au moins j'aurais une vision comparative des 2 solutions possibles :D

En tout cas un grand merci :wink:

EDIT :

Imaginons maintenant que je souhaite donc grace aux frame avoir ces 3 colonnes, comment puis-je faire pour mettre une entete en haut de page. En clair mon entete par exemple ferais 20% au dessus de la page et la 2ème parti serais mes 3 colonnes. Je pense qu'on peut imbriquer mais j'ai du mal a voir comment :shock:

Merci d'avance

Eléphant du PHP | 312 Messages

23 mars 2006, 18:50

Tu as un fichier qui fait un découpage en 2 lignes pointant vers 2 fichiers différents (par exemple "entete.php" et "corps.php").

Et tu as corps.php qui fait lui-même un découpage en 3 colonnes pointant vers 3 fichiers différents ("col1.php", "col2.php", "col3.php").

Autrement dit, dans un fichier tu fais un découpage que en lignes ou que en colonne mais tu peux faire ça récursivement dans les sous-fichiers, les sous-sous-fichiers, etc...

Eléphant du PHP | 65 Messages

23 mars 2006, 21:36

Ok merci j'ai réussi ;)

Je met tout ça en résolu ;)

Merci à Tous :D