par
Eyce » 27 avr. 2011, 15:14
Bonjour à tous.
Voilà, j'ai un site HTML à faire et j'ai (pour bien faire les choses) inclus un seul fichier de menu pour l'ensemble du projet.
Seulement mon souci arrive ici. Je voudrais que lorsqu'on est sur la page index (par exemple), l'élément du menu de la page index soit affiché différemment (dans mon cas, souligné.)
Je vous mets en lien mes fichiers :
Mon fichier HTML de menu :
Code : Tout sélectionner
<ul>
<li><a href="./index.php">Accueil</a></li>
<li><a href="./ba.php">Bandes annonces</a></li>
<li class="right"><a href="./liens.php">Liens & Contacts</a></li>
</ul>
Mon fichier HTML de page d'index :
Code : Tout sélectionner
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="keywords" content="###, BA, bande-annonce, bande annonce, bandes, annonce, thierry, cohen, thierry cohen, littérature, livre, lecture" />
<meta name="description" content="###, Le premier site de Bandes annonces consacrées à la littérature" />
<link rel="stylesheet" href="design.css" />
<title>###</title>
</head>
<body>
<div id="container">
<header>
</header>
<nav>
<? require_once("nav.php"); ?>
</nav>
<div id="content">
</div>
<div id="foot">
<? require_once("foot.php"); ?>
</div>
</div>
</body>
</html>
Et enfin mon fichier CSS :
Code : Tout sélectionner
@charset "utf-8";
/* CSS Document */
@font-face{
font-family:'myriadpro';
src:url('http://thierry-cohen.fr/siteBA/MyriadPro-Regular.otf');
}
* {
}
body {
font-family : 'myriadpro';
}
#container {
width : 800px;
margin : auto;
}
#header {
}
nav {
height: 30px;
background-image : url("./rsc/a-p-menu.png");
background-repeat: repeat-x;
-moz-border-radius: 15px;
-ms-border-radius: 15px;
-o-border-radius: 15px;
-khtml-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
-moz-box-shadow: 5px 5px 10px #888;
-ms-box-shadow: 5px 5px 10px #888;
-o-box-shadow: 5px 5px 10px #888;
-khtml-box-shadow: 5px 5px 10px #888;
-webkit-box-shadow: 5px 5px 10px #888;
box-shadow: 5px 5px 10px #888;
}
nav ul {
padding-top : 6px;
font-size:14px;
}
nav ul li {
display : inline;
list-style-type:none;
width : 150px;
}
nav ul li .right {
margin-left : 450px;
}
nav ul li a {
height : 18px;
color : white;
-moz-border-radius: 9px;
-ms-border-radius: 9px;
-o-border-radius: 9px;
-khtml-border-radius: 9px;
-webkit-border-radius: 9px;
border-radius: 9px;
padding : 0 10px 0 10px;
text-decoration: none;
}
nav ul li a:hover {
-moz-box-shadow: 3px 3px 3px #888;
-ms-box-shadow: 3px 3px 3px #888;
-o-box-shadow: 3px 3px 3px #888;
-khtml-box-shadow: 3px 3px 3px #888;
-webkit-box-shadow: 3px 3px 3px #888;
color : black;
text-decoration: none;
background-image : url("./rsc/a-p-lienhover.png");
}
#content {
}
#foot {
font-size : 10px;
}
prefooter {
}
prefooter p {
}
footer {
}
Ce que je voudrais faire, c'est récupérer via PHP le nom de ma page active, pour ensuite affecter un attribut de type "class" en HTML à l'élément du menu correspondant.
Ceci me permettrait par la suite d'attribuer un style CSS spécifique à l'élément du menu en question, sans avoir besoin pour autant de faire un menu par page. Je voudrais que la maintenance soit aisée, et pour ce faire, il est hors de question de forcer mes "successeurs" à changer le menu dans chaque page.
Du coup je galère ^^"
J'avais essayé de récupérer le nom de la page "active" avec ce code :
Code : Tout sélectionner
switch($_SERVER['DOCUMENT_ROOT']){
case 'index.php':
echo 'index';
break;
case 'ba.php':
echo 'ba';
break;
case 'liens.php':
echo 'liens';
break;
case 'default':
echo 'def';
break;
}
Mais vous pensez bien ça n'a pas marché. Si quelqu'un pouvait soit m'aider soit m'aiguiller vers une réponse. Après des recherches sur la toile et des recherches de doc moi-même, je suis toujours aussi perdu. Pourtant, ça doit bien exister qqpart, ça ne me paraît pas infaisable.
PS : Je suis prêt à utiliser un script JS si c'est plus simple qu'en PHP...
Voilà, merci par avance de votre aide.
Bonjour à tous.
Voilà, j'ai un site HTML à faire et j'ai (pour bien faire les choses) inclus un seul fichier de menu pour l'ensemble du projet.
Seulement mon souci arrive ici. Je voudrais que lorsqu'on est sur la page index (par exemple), l'élément du menu de la page index soit affiché différemment (dans mon cas, souligné.)
Je vous mets en lien mes fichiers :
Mon fichier HTML de menu :
[code]<ul>
<li><a href="./index.php">Accueil</a></li>
<li><a href="./ba.php">Bandes annonces</a></li>
<li class="right"><a href="./liens.php">Liens & Contacts</a></li>
</ul>[/code]
Mon fichier HTML de page d'index :
[code]<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8" />
<meta name="keywords" content="###, BA, bande-annonce, bande annonce, bandes, annonce, thierry, cohen, thierry cohen, littérature, livre, lecture" />
<meta name="description" content="###, Le premier site de Bandes annonces consacrées à la littérature" />
<link rel="stylesheet" href="design.css" />
<title>###</title>
</head>
<body>
<div id="container">
<header>
</header>
<nav>
<? require_once("nav.php"); ?>
</nav>
<div id="content">
</div>
<div id="foot">
<? require_once("foot.php"); ?>
</div>
</div>
</body>
</html>[/code]
Et enfin mon fichier CSS :
[code]@charset "utf-8";
/* CSS Document */
@font-face{
font-family:'myriadpro';
src:url('http://thierry-cohen.fr/siteBA/MyriadPro-Regular.otf');
}
* {
}
body {
font-family : 'myriadpro';
}
#container {
width : 800px;
margin : auto;
}
#header {
}
nav {
height: 30px;
background-image : url("./rsc/a-p-menu.png");
background-repeat: repeat-x;
-moz-border-radius: 15px;
-ms-border-radius: 15px;
-o-border-radius: 15px;
-khtml-border-radius: 15px;
-webkit-border-radius: 15px;
border-radius: 15px;
-moz-box-shadow: 5px 5px 10px #888;
-ms-box-shadow: 5px 5px 10px #888;
-o-box-shadow: 5px 5px 10px #888;
-khtml-box-shadow: 5px 5px 10px #888;
-webkit-box-shadow: 5px 5px 10px #888;
box-shadow: 5px 5px 10px #888;
}
nav ul {
padding-top : 6px;
font-size:14px;
}
nav ul li {
display : inline;
list-style-type:none;
width : 150px;
}
nav ul li .right {
margin-left : 450px;
}
nav ul li a {
height : 18px;
color : white;
-moz-border-radius: 9px;
-ms-border-radius: 9px;
-o-border-radius: 9px;
-khtml-border-radius: 9px;
-webkit-border-radius: 9px;
border-radius: 9px;
padding : 0 10px 0 10px;
text-decoration: none;
}
nav ul li a:hover {
-moz-box-shadow: 3px 3px 3px #888;
-ms-box-shadow: 3px 3px 3px #888;
-o-box-shadow: 3px 3px 3px #888;
-khtml-box-shadow: 3px 3px 3px #888;
-webkit-box-shadow: 3px 3px 3px #888;
color : black;
text-decoration: none;
background-image : url("./rsc/a-p-lienhover.png");
}
#content {
}
#foot {
font-size : 10px;
}
prefooter {
}
prefooter p {
}
footer {
}[/code]
Ce que je voudrais faire, c'est récupérer via PHP le nom de ma page active, pour ensuite affecter un attribut de type "class" en HTML à l'élément du menu correspondant.
Ceci me permettrait par la suite d'attribuer un style CSS spécifique à l'élément du menu en question, sans avoir besoin pour autant de faire un menu par page. Je voudrais que la maintenance soit aisée, et pour ce faire, il est hors de question de forcer mes "successeurs" à changer le menu dans chaque page.
Du coup je galère ^^"
J'avais essayé de récupérer le nom de la page "active" avec ce code :
[code]switch($_SERVER['DOCUMENT_ROOT']){
case 'index.php':
echo 'index';
break;
case 'ba.php':
echo 'ba';
break;
case 'liens.php':
echo 'liens';
break;
case 'default':
echo 'def';
break;
}[/code]
Mais vous pensez bien ça n'a pas marché. Si quelqu'un pouvait soit m'aider soit m'aiguiller vers une réponse. Après des recherches sur la toile et des recherches de doc moi-même, je suis toujours aussi perdu. Pourtant, ça doit bien exister qqpart, ça ne me paraît pas infaisable.
PS : Je suis prêt à utiliser un script JS si c'est plus simple qu'en PHP...
Voilà, merci par avance de votre aide.