26512 sujets

CSS et mise en forme, CSS3

Bonsoir,

je suis en train de réaliser un menu déroulant via dreamweaver CS3 et sa technologie spry, mais j'ai déjà rencontré ce problème (qui est purement CSS) en suivant le tuto d'alsacreation.
J'ai donc un menu déroulant horyzontal qui s'articule de cette façon :

<div id="menu">

<ul id="MenuBar1" class="MenuBarHorizontal">
  <li><a href="#"> Element 1</a> </li>
  <li><a href="#">Element 2/a></li>
  <li><a class="MenuBarItemSubmenu" href="#">Element 3</a>
        <ul>
	<li><a href="#">element 3.1 </a></li>
	<li><a href="#">element 3.2</a></li>
	<li><a href="#">element 3.3</a></li>
        </ul>
  </li>
  <li><a class="MenuBarItemSubmenu" href="#">Element 4</a>
        <ul>
	<li><a href="#">element 4.1 </a></li>
	<li><a href="#">element 4.2</a></li>
	<li><a href="#">element 4.3</a></li>
        </ul>
  </li>
</ul>
</div>


Avec la feuille de style ci-jointe :

ul.MenuBarHorizontal
{
	margin: 0;
	padding: 0;
	list-style-type: none;
	font-size: 0.70em;
	cursor: default;
	width: auto;
}
/* Set the active Menu Bar with this class, currently setting z-index to accomodate IE rendering bug:  http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html  */
ul.MenuBarActive
{
	z-index: 1000;
}
/* Menu item containers, position children relative to this container and are a fixed width */
ul.MenuBarHorizontal li
{
	margin: 0;
	padding: 0;
	list-style-type: none;
	font-size: 100%;
	position: relative;
	text-align: left;
	cursor: pointer;
	width: 170px;
	float: left;
	white-space: nowrap;
	background-image:url(etoile_off.gif);
	background-repeat: no-repeat;
	background-position: 05% 50%;
}
/* Submenus should appear below their parent (top: 0) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
ul.MenuBarHorizontal ul
{
	margin: 0;
	padding: 0;
	list-style-type: none;
	font-size: 100%;
	z-index: 1020;
	cursor: default;
	width: 170px;
	position: absolute;
	left: -1000em;
	float: none;
	background-color: #ffcc66;  /*couleur de fond des sous menus */
}
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to auto so it comes onto the screen below its parent menu item */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible
{
	left: auto;
}
/* Menu item containers are same fixed width as parent */
ul.MenuBarHorizontal ul li
{
	width: 170px;
}
/* Submenus should appear slightly overlapping to the right (95%) and up (-5%) */
ul.MenuBarHorizontal ul ul
{
	position: absolute;
	margin: -5% 0 0 95%;
}
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
ul.MenuBarHorizontal ul.MenuBarSubmenuVisible ul.MenuBarSubmenuVisible
{
	left: auto;
	top: 0;
}

/*******************************************************************************

 DESIGN INFORMATION: describes color scheme, borders, fonts

 *******************************************************************************/

/* Submenu containers have borders on all sides */
ul.MenuBarHorizontal ul
{
	border: 1px solid #CCC;
}
/* Menu items are a light gray block with padding and no text decoration */
ul.MenuBarHorizontal a
{
	display: block;
	cursor: pointer;
	padding: 0.15em 0.3em;
	color: #333;
	text-decoration: none;
	background: transparent;
	text-indent: 25px;   /*decalage du texte*/
}
/* Menu items that have mouse over or focus have a blue background and white text */
ul.MenuBarHorizontal a:hover, ul.MenuBarHorizontal a:focus
{
	background-color: #ffcc66;
	color: #FFF;
	background-image:url(etoile_on.gif);
	background-repeat: no-repeat;
	background-position: 05% 50%;
	
}
/* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
ul.MenuBarHorizontal a.MenuBarItemHover, ul.MenuBarHorizontal a.MenuBarItemSubmenuHover, ul.MenuBarHorizontal a.MenuBarSubmenuVisible
{
	background-color: #ffcc66;  /*couleur de survol*/
	color: #FFF;
}

/*******************************************************************************

 SUBMENU INDICATION: styles if there is a submenu under a given menu item

 *******************************************************************************/

/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal a.MenuBarItemSubmenu
{
	background-image:url(etoile_off.gif);
	background-repeat: no-repeat;
	background-position: 05% 50%;
}
/* Menu items that have a submenu have the class designation MenuBarItemSubmenu and are set to use a background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal ul a.MenuBarItemSubmenu
{
	background-image: url(etoile_on.gif);
	background-repeat: no-repeat;
	background-position: 05% 50%;
}
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal a.MenuBarItemSubmenuHover
{
	background-image: url(etoile_on.gif);
	background-repeat: no-repeat;
	background-position: 05% 50%;
}
/* Menu items that are open with submenus have the class designation MenuBarItemSubmenuHover and are set to use a "hover" background image positioned on the far left (95%) and centered vertically (50%) */
ul.MenuBarHorizontal ul a.MenuBarItemSubmenuHover
{
	background-image: url(etoile_on.gif);
	background-repeat: no-repeat;
	background-position: 05% 50%;
}

/*******************************************************************************

 BROWSER HACKS: the hacks below should not be changed unless you are an expert

 *******************************************************************************/

/* HACK FOR IE: to make sure the sub menus show above form controls, we underlay each submenu with an iframe */
ul.MenuBarHorizontal iframe
{
	position: absolute;
	z-index: 1010;
}
/* HACK FOR IE: to stabilize appearance of menu items; the slash in float is to keep IE 5.0 from parsing */
@media screen, projection
{
		ul.MenuBarHorizontal li
	{
		display: inline;
		f\loat: left;
		background-color:transparent;
	}
	
	
	ul.MenuBarHorizontal li.MenuBarItemIE
	{
		display: inline;
		f\loat: left;
		background: #ffcc66;
		white-space: nowrap;
	}
	

}





Mon problème est que je n'arrive pas à faire en sorte que mes éléments 1 et 2 soit identiques aux éléments 3 ou 4, même si ils n'ont pas de sous menus.
Pour le moment, mes éléments 1 et 2 héritent des mêmes caractéristiques que les sous éléments 4.1,4.2,...
J'ai essayé de faire une classe spéciale pour élément 1 et 2 mais en vain.

Merci de votre aide.
<ul id="menubar8" class="MenuBarHorizontal">
<li><a href="#">Element 1</a></li>
<li><a href="#">Element 2</a></li>
<li><a class="MenuBarItemSubmenu" href="#">Element 3</a>
<ul>
<li><a href="#">element 3.1</a></li>
<li><a href="#">element 3.2</a></li>
<li><a href="#">element 3.3</a></li>
</ul>
</li>
<li><a class="MenuBarItemSubmenu" href="#">Element 4</a>
<ul>
<li><a href="#">element 4.1 </a></li>
<li><a href="#">element 4.2</a></li>
<li><a href="#">element 4.3</a></li>
</ul>
</li>
</ul>
<script type="text/javascript">
var menubar8 = new Spry.Widget.MenuBar("menubar8");
</script>

essaye ceci...