Problème CSS

Petit nouveau ! | 4 Messages

30 déc. 2005, 00:14

Bonsoir,

J'ai télécharger le script d'un menu du genre (j'ai pas le temps d'en créer un moi-même):

dossier (pere)
**fichier (fils)
**fichier (fils)
dossier (pere)


Le script fonctionne très bien, mais je ne sais pas du tout comment modifier la police, la taille, en gros la mise en forme. J'ai tout essayer.

Voici le fichier menu.js :
// JavaScript Document
// Menu de profondeur variable

var fichier = 0;
var dossier = 1;
var nb = 0;
var Menu = new Array();

// Construction du menu, attention à l'ordre.
// 4 arguments :
// - le type : dossier ou fichier
// - la profondeur
// - le texte
// - le lien
Ajouter(fichier, 0, "Biographie", "biographie.php");
Ajouter(dossier, 0, "Discographie", "#");
	Ajouter(fichier, 1, "1ere Récolte", "discographie.php#premiererecolte");
	Ajouter(fichier, 1, "Résistances", "discographie.php#resistances");
	Ajouter(fichier, 1, "Tout c'qu'on a", "discographie.php#tkona");
	Ajouter(fichier, 1, "Sinse part en live", "discographie.php#sinsepartenlive");
	Ajouter(fichier, 1, "Debout les yeux ouverts", "discographie.php#debout");
Ajouter(fichier, 0, "Paroles", "erreurs/err404.php");
Ajouter(dossier, 0, "Photos", "#");
	Ajouter(fichier, 1, "Album", "album/index.php");
	Ajouter(fichier, 1, "Concerts", "http://sinse.freezee.org/album/disp_album.php?id_album=3&stat=ok");
	Ajouter(fichier, 1, "Le groupe", "http://sinse.freezee.org/album/disp_serie.php?id_album=2&stat=ok");
Ajouter(fichier, 0, "Liens", "liens.php");

// L'objet Element
function Element(type, profondeur, pere, texte, lien)
{
	this.type = type;
	this.profondeur = profondeur;
	this.pere = pere;
	this.ouvert = false;
	this.texte = texte;
	this.lien = lien;
}

// Méthode de vérification de la présence d'un élément
// un élément est present si son pere est ouvert ou est 0
function Present(n)
{
	while (Menu[n].pere != 0)
	{
		n = Menu[n].pere;
		if (!(Menu[n].ouvert)) {return false;}
	}
	return true;
}
Element.prototype.Present = Present;

// Méthode de modification de l'état d'un élément
function Changer()
{
	if (this.ouvert)
		{this.ouvert = false;} // si ouvert, on ferme
	else
	{ // sinon, on ferme tous les éléments de la même branche et on l'ouvre
		var i = this.pere + 1;
		while (i <= nb && Menu[i].profondeur >= this.profondeur)
		{
		 Menu[i].ouvert = false;
		 i++;
		}
		this.ouvert = true;
	}
	AffMenu();
}
Element.prototype.Changer = Changer;

// Méthode d'écriture d'un élément
function Ecrire(n)
{
	var chaine = "";
	if (!(this.Present(n))) return chaine ; // l'élément ne doit pas être affiché
	chaine += "<tr><td style='position:relative; left:" + 10 * this.profondeur + "px'><li>"
	//for (var i = 0; i < this.profondeur; i++) {chaine += "&nbsp;&nbsp;";} // petit décalage
	if (this.type == fichier)
		{chaine += "<a href='" + this.lien + "' onMouseOver=\"window.status='Ouvrir " + this.texte + "'; return true;\" onMouseOut=\"window.status=''; return true;\">" + this.texte + "</a>";}
	else
		{chaine += "<a href='#' OnMouseDown='Menu[" + n + "].Changer();' target='_self' onMouseOver=\"window.status='" +((this.ouvert) ? "Fermer " : "Etendre ") + this.texte +"'; return true;\" onMouseOut=\"window.status=''; return true;\">" + this.texte + "</a>"}
	return chaine + "</li></td></tr>";
}
Element.prototype.Ecrire = Ecrire;

// Fonction d'ajout d'un élément au menu
function Ajouter(type, profondeur, texte, lien)
{
	nb++;
	var pere = nb - 1;
	while (pere != 0 && Menu[pere].profondeur >= profondeur) {pere--;}
	Menu[nb] = new Element(type, profondeur, pere, texte, lien);
}

// Création de l'objet menu dans la page
document.writeln('<div id="menu"></div>');

// Affichage du menu dans l'état actuel
function AffMenu()
{
	var chaine = "<table>";
	for (var i = 1; i < Menu.length; i++)
	{
		chaine += Menu[i].Ecrire(i);
	}
	chaine += "</table>";
	document.getElementById('menu').innerHTML = chaine;
}
Pour voir ce que cela donne voici la seule page de mon site où ce menu est affiché: http://sinse.freezee.org

Merci d'avance pour votre aide

Mithrandir

Mammouth du PHP | 19672 Messages

30 déc. 2005, 00:45

Au lieu d'essayer de modifier ça dans ton script JavaScript, essaye directement dans la feuile de style : par exemple ajoute ceci:

Code : Tout sélectionner

a { font-size: 0.8em; }
Juste avent les autres styles de liens. Si ta feuille de style est chargée avant le JavaScript, ça va très bien fonctionner.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 4 Messages

31 déc. 2005, 18:27

Bonjour,

Merci Cyrano, c'est exaxctement ce que je voulais! J'avais essayé avec le CSS, mais en mettant ça:

Code : Tout sélectionner

div.menu { font face: Verdana; font size: 8px; }
Je n'avais pas pensé aux liens... J'y penserais par la suite. :wink:

Reste encore un problème! Ma feuille de style est bien chargée avant le script, mais ce bout de code modifie la taille de tout mes liens..... :?
Comment empêcher cela?? :-k


Pour finir, j'ai une question sur le code que tu m'as proposé. À quoi correspond "0.8em" ??
Je ne connais pas cette synthaxe.

Si tu peux me renseigner ou me diriger vers un tuto... Merci

Ma feuille de style est bien chargée avant le script, mais ce bout de code modifie la taille de tout mes liens..... :?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

31 déc. 2005, 18:58

Salut,
Reste encore un problème! Ma feuille de style est bien chargée avant le script, mais ce bout de code modifie la taille de tout mes liens..... :?
Comment empêcher cela?? :-k
en définissant plusieurs styles,

Code : Tout sélectionner

a.lien1 { ... } a.lien2 { ... }
regarde l'exemple ici
Pour finir, j'ai une question sur le code que tu m'as proposé. À quoi correspond "0.8em" ??
encore un autre lien plustot que de longues explication :wink:

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 19672 Messages

01 janv. 2006, 13:28

Attention à ceci:

Code : Tout sélectionner

div.menu { font face: Verdana; font size: 8px; }
Cette syntaxe est invalide en CSS : correction:

Code : Tout sélectionner

div.menu { font-family: Verdana; font-size: 8px; }
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 4 Messages

02 janv. 2006, 19:05

Merci. C'est bon j'ai résolu mon problème. :D