1.

Solve : IE Display Issue with Spry Widget Menu Bar Vertical?

Answer» HELLO, I am working with a Spry Widget Menu Bar that is  Vertical. I have been checking the display on different browsers. In IE the sub-menu will not sit next to the main menu like in the other browsers. I am new to using a CSS please let me know what I missed. Here is what I get for the menus:

Google Chrome:



IE:

Here is my CSS:

Code: [Select]charset "UTF-8";

/* SpryMenuBarVertical.css - version 0.6 - Spry Pre-Release 1.6.1 */

/* Copyright (c) 2006. Adobe Systems Incorporated. All rights reserved. */

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

 LAYOUT INFORMATION: describes box model, positioning, z-order

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

/* The outermost container of the Menu Bar, a fixed width box with no margin or padding */
ul.MenuBarVertical
{
margin: 0;
padding: 0;
list-STYLE-type: none;
font-size: 100%;
cursor: default;
width: 12.5em;

}
/* 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 same fixed width as parent */
ul.MenuBarVertical li
{
margin: 0;
padding: 0;
list-style-type: none;
font-size: 100%;
position: relative;
text-align: left;
cursor: pointer;
width: 12.5em;

}
/* Submenus should appear slightly overlapping to the right (95%) and up (-5%) with a higher z-index, but they are initially off the left side of the screen (-1000em) */
ul.MenuBarVertical ul
{
margin: 0% 0 0 100%;
padding: 0;
list-style-type: none;
font-size: 100%;
position: absolute;
z-index: 1020;
cursor: default;
width: 8.2em;
left: -1100em;
top: 0;
}
/* Submenu that is showing with class designation MenuBarSubmenuVisible, we set left to 0 so it comes onto the screen */
ul.MenuBarVertical ul.MenuBarSubmenuVisible
{
left: 0;
}
/* Menu item containers are same fixed width as parent */
ul.MenuBarVertical ul li
{
width: 8.2em;
}

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

 DESIGN INFORMATION: describes color scheme, borders, fonts

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

/* Outermost menu container has borders on all sides */
ul.MenuBarVertical
{
border: 1px solid #CCC;
}
/* Submenu containers have borders on all sides */
ul.MenuBarVertical ul
{
border: 1px solid #CCC;
}
/* Menu items are a light gray block with padding and no text decoration */
ul.MenuBarVertical a
{
display: block;
cursor: pointer;
background-color: #EEE;
padding: 0.5em 0.75em;
color: #333;
text-decoration: none;
}
/* Menu items that have mouse over or FOCUS have a blue background and white text */
ul.MenuBarVertical a:hover, ul.MenuBarVertical a:focus
{
background-color: #33C;
color: #FFF;
}
/* Menu items that are open with submenus are set to MenuBarItemHover with a blue background and white text */
ul.MenuBarVertical a.MenuBarItemHover, ul.MenuBarVertical a.MenuBarItemSubmenuHover, ul.MenuBarVertical a.MenuBarSubmenuVisible
{
background-color: #33C;
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.MenuBarVertical a.MenuBarItemSubmenu
{
background-image: url(SpryMenuBarRight.gif);
background-repeat: no-repeat;
background-position: 95% 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.MenuBarVertical a.MenuBarItemSubmenuHover
{
background-image: url(SpryMenuBarRightHover.gif);
background-repeat: no-repeat;
background-position: 95% 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.MenuBarVertical iframe
{
position: absolute;
z-index: 1010;
filter:alpha(opacity:0.1);
}
/* 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.MenuBarVertical li.MenuBarItemIE
{
display: inline;
f\loat: left;
background: #FFF;
}
}

Here is the code for the page its self.
Code: [Select]<head>
<meta http-equiv="CONTENT-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<!–[if IE]>
<style type=”text/css”>
body {word-wrap: break-word;}
</style>
<![endif]–>

<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarVertical.css" rel="stylesheet" type="text/css">

<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css">

</head>
<p style="font-family:Garamond, Georgia, serif;">
<body>
<table width="100%" height="25%" border="0" align="center">
  <tr>
    <td><p><img src="circle.jpg" alt="" width="200" height="200"></p>
    <p>&nbsp;</p></td>
    <td>
      <p align="center"><font size="+4">Title</font>      </p>
      <ul id="MenuBar2" class="MenuBarHorizontal">
        <li><a class="MenuBarItemSubmenu" href="">Test</a>
          <ul>
            <li><a href="#">Test A</a></li>
      <li><a href="#">Test B</a></li>
      <li><a href="#">Test C</a></li>
      <li><a href="#">Test D</a></li>
          </ul>
        </li>
        <li><a class="MenuBarItemSubmenu"href="#">test</a>
          <ul>
          <li><a href="#">Test A</a></li>
      <li><a href="#">Test B</a></li>
      <li><a href="#">Test C</a></li>
      <li><a href="#">Test D</a></li></a></li>
          </ul>
       
        <li><a class="MenuBarItemSubmenu"href="#">Test</a>
          <ul>
            <li><a href="#">Test A</a></li>
      <li><a href="#">Test B</a></li>
      <li><a href="#">Test C</a></li>
      <li><a href="#">Test D</a></li>
          </ul>
        </li>
    </ul></td>
  </tr>
</table>
<table width="100%" height="25%" border="0">
  <tr>
    <td width="34%"><ul id="MenuBar1" class="MenuBarVertical"><font size="">
      <li><a class="MenuBarItemSubmenu" href="#">Test 1<br><br></a>
    <ul>
      <li><a href="#">Test A</a></li>
      <li><a href="#">Test B</a></li>
      <li><a href="#">Test C</a></li>
      <li><a href="#">Test D</a></li>
    </ul>
  </li>
  <li><a href="#" class="MenuBarItemSubmenu">Test 2<br><br> </a>
    <ul>
      <li><a href="#">Test A</a></li>
      <li><a href="#">Test B</a></li>
      <li><a href="#">Test C</a></li>
      <li><a href="#">Test D</a></li>
    </ul>
  </li>
   
  <li><a class="MenuBarItemSubmenu" href="#">Test 3<br><br></a>
  <ul>
      <li><a href="#">Test A</a></li>
      <li><a href="#">Test B</a></li>
      <li><a href="#">Test C</a></li>
      <li><a href="#">Test D</a></li>
    </ul>
  </li>
  <li><a href="#" class="MenuBarItemSubmenu">Test 4<br><br></a>
    <ul>
      <li><a href="#">Test A</a></li>
      <li><a href="#">Test B</a></li>
      <li><a href="#">Test C</a></li>
      <li><a href="#">Test D</a></li>
    </ul>
  </li>
</ul></td>
    <td width="66%">&nbsp;</td>
  </tr>
</table></center>
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
var MenuBar2 = new Spry.Widget.MenuBar("MenuBar2", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});


</script>
</body>
</html>

Thank you in advance. The answer is to edit the CSS with:

Code: [Select]ul.MenuBarVertical,
ul.MenuBarVertical li {
     width: 12.5em;
}
ul.MenuBarVertical ul,
ul.MenuBarVertical ul li {
     width: auto;
     white-space: nowrap;
}


Discussion

No Comment Found