Rechercher : dans
Par :

Css/javascript/xhtml pour faire menu deplié

Dernière réponse le 18 jun 2009 à 21:39:28 jjaco, le 18 déc 2008 à 23:15:38 
 Signaler ce message aux modérateurs

Bonjour, pour faire un menu qui se déplie au passage de la souris
j'ai crée une feuille de style:css

.conteneur
{
top:10px;
background-color:#ffffff;
position:absolute;
width:860px;
height:725px;
left: 50px;
right: 50px;
bottom: 50px;
}


.entete
{
height: 115px;
width: 860px;
left: 15px;
top: 15px;
right: 15px;
bottom: 15px;
text-align: center;
background-attachment: fixed;
background-color: red;
background-position center;
color: #ffffff;
margin: 0px;
padding: 0px;
border: thick outset #FFFFFF;
}
.gauche
{
float:left;
height:550;
width:150;
}
.menutop
{
float:left;
height: 100;
width:150;
background-color:#cccccc;
border-bottom: solid 2px #ffffff;
}

ul#menu
{
float:left;
height:450px;
overflow:scroll;
background-color:#cccccc;
width: 150px;
margin: 0;
padding: 5;

}
ul#menu ol {
text-align:left;
margin: 0;
padding-left: 20px;
padding-top:10px;
}
ul#menu li,
ul#menu a {
font-family: Comic Sans MS, Arial, MS Serif, Microsoft Sans Serif;
font-size: 10px;
color: #003399;
}
ul#menu li
{
border-bottom: solid 2px #ffffff;
line-height: 20px;
}
ul#menu ol li
{
border-bottom: none;
}
ul#menu ol li:before {
content: "- ";
}
ul#menu a {
text-decoration: none;
outline: none;
}
ul#menu a:hover {
color: #00ccff;
}
ul#menu a.active {
color: #be5028;
}

.corps
{
background-color:#cccccc;
width:707px;
height:550px;
overflow:scroll;
}
.pied
{
width:860;
height:50px;
background-color:#c0c0c0;
}


que je place comme ceci dans head:<link href="style.css" rel="stylesheet" type="text/css">
en dessous toujours dans head, je place le script :
<script type="text/javascript">
/*
Created by: Travis Beckham :: http://www.squidfingers.com | http://www.podlob.com
version date: 06/02/03 :: If want to use this code, feel free to do so,
but please leave this message intact. (Travis Beckham)
*/
// Node Functions

if(!window.Node){
var Node = {ELEMENT_NODE : 1, TEXT_NODE : 3};
}

function checkNode(node, filter){
return (filter == null || node.nodeType == Node[filter] || node.nodeName.toUpperCase() == filter.toUpperCase());
}

function getChildren(node, filter){
var result = new Array();
var children = node.childNodes;
for(var i = 0; i < children.length; i++){
if(checkNode(children[i], filter)) result[result.length] = children[i];
}
return result;
}

function getChildrenByElement(node){
return getChildren(node, "ELEMENT_NODE");
}

function getFirstChild(node, filter){
var child;
var children = node.childNodes;
for(var i = 0; i < children.length; i++){
child = children[i];
if(checkNode(child, filter)) return child;
}
return null;
}

function getFirstChildByText(node){
return getFirstChild(node, "TEXT_NODE");
}

function getNextSibling(node, filter){
for(var sibling = node.nextSibling; sibling != null; sibling = sibling.nextSibling){
if(checkNode(sibling, filter)) return sibling;
}
return null;
}
function getNextSiblingByElement(node){
return getNextSibling(node, "ELEMENT_NODE");
}

// Menu Functions & Properties

var activeMenu = null;

function showMenu() {
if(activeMenu){
activeMenu.className = "";
getNextSiblingByElement(activeMenu).style.display = "none";
}
if(this == activeMenu){
activeMenu = null;
} else {
this.className = "active";
getNextSiblingByElement(this).style.display = "block";
activeMenu = this;
}
return false;
}

function initMenu(){
var menus, menu, text, a, i;
menus = getChildrenByElement(document.getElementById("menu"));
for(i = 0; i < menus.length; i++){
menu = menus[i];
text = getFirstChildByText(menu);
a = document.createElement("a");
menu.replaceChild(a, text);
a.appendChild(text);
a.href = "#";
a.onmouseover = showMenu;
a.onfocus = function(){this.blur()};
}
}

if(document.createElement) window.onload = initMenu;
</script>

et dans body:....<div class conteneur>...
<ul id="menu">
<li>nouvelle page
<ol>
<li><a href="#">rubrique</a></li>
<li><a href="#">Sub Item 1.2</a></li>
<li><a href="#">Sub Item 1.3</a></li>
<li><a href="#">Sub Item 1.4</a></li>
</ol>
</li>
<li>Menu Item 2
<ol>
<li><a href="#">Sub Item 2.1</a></li>
<li><a href="#">Sub Item 2.2</a></li>
<li><a href="#">Sub Item 2.3</a></li>
</ol>
</li>
<li>Menu Item 3
<ol>
<li><a href="#">Sub Item 3.1</a></li>
<li><a href="#">Sub Item 3.2</a></li>
<li><a href="#">Sub Item 3.3</a></li>
</ol>
</li>
<li>Menu Item 4
<ol>
<li><a href="#">Sub Item 4.1</a></li>
<li><a href="#">Sub Item 4.2</a></li>
<li><a href="#">Sub Item 4.3</a></li>
</ol>
</li>
<li>Menu Item 5
<ol>
<li><a href="#">Sub Item 5.1</a></li>
<li><a href="#">Sub Item 5.2</a></li>
<li><a href="#">Sub Item 5.3</a></li>
</ol>
</li>
</ul>

si je travaille en test sans feuille de style, uniquement dans head <style> ul#menu.../ul <script>....</script>
camarche, les sous-menus s'ouvrent au passage de la souris.
mais comme c'est ici, les menus sont affichés et les sous-menus en listes et sous-listes.
pourquoi et ou est mon errreur?

demain, j'essaierai de remplacer le #menu...div par .menu....class mais je risque de m'embrouiller dans script

un grand merci, c'est pour faire un menu qui se déplie

jjacco

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « css/javascript/xhtml pour faire menu deplié » dans :
Différence entre display:none et visibility:hidden VoirLes deux attributs CSS display:none et visibility:hidden permettent tous deux de masquer l'affichage d'un élément en CSS dans le navigateur. Néanmoins, il existe une subtile nuance : visibility: hidden rend le bloc concerné invisible....
Que peut faire le web pour vous ? VoirLe "web", ce sont les pages HTML affichées dans votre navigateur. Elles ont évolué techniquement (hmtl, css, javascript, ajax, Flash, Java...) au point de devenir des outils à part entière. Que peut donc faire le web pour vous ? Voici une...
Popup en CSS, sans Javascript VoirVoici comment réaliser une popup d'information en pure CSS, sans Javascript. L'astuce est d'utiliser :hover de manière à utiliser des CSS différents au passage du curseur. Parmis les attributs CSS modifiés, on utilise display:none afin de...
Télécharger PSPad VoirPSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS, Javascript, php ou autres langages de programmation (C++, Java, Python...). Les fonctionnalités sont impressionnantes: ...
Télécharger Notepad2 VoirNotepad2 est un bloc-note sans installation libre possédant des fonctionnalités avancées de coloration syntaxique. Fonctionnalités Coloration syntaxique pour les langages suivants : HTML, XML, PHP, ASP (JScript, VBS), CSS, JavaScript, VBScript,...

1

 math 2000, le 18 jun 2009 à 21:39:28
  • +2

Tu peux faire un menu depliant compatible ie6 sans javascript grâce au css et au if ie
http://bormat2.free.fr/

Répondre à math 2000