views:

38

answers:

2

I have a horizontal CFMENU inside of a DIV, and in IE7/IE7/FF/Chrome, the menu is floated to the right, as specified in my CSS, but in IE6, the menu shifts to the left of the DIV that contains it, and it's width expands beyond the boundaries of the containing DIV. I've included all the applicable HTML and CSS below:

HTML:

<body>
     <div align="center">
         <div id="bodyContainer">
             <div class="contentContainer">
                 <div id="middlenav">
                     <div class="linksContainer">
                         <cfmenu name="ajaxMenu"  type="horizontal">

                        ...

                         </cfmenu>

                    </div>
                 </div>
             </div>
         </div>
     </div>
 </body>

CSS:

body, img, div, p, a, form, fieldset, ol, ul, label {
    margin: 0px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    border: none;
    font-family: Helvetica, Arial, sans-serif;
    font-size: 15px;
    color: black;
}



body {
    background-color: #E6E6E6;
    background-repeat: repeat-x;
    width: 100%;
}



div {
    overflow: hidden;
}



p, form, table, ol, ul {
    padding-top: 10px;
}



ol ul {
    padding-top: 5px;
    list-style-type: disc;
}



ol, ul {
    margin-left: 30px;
}



li {
    padding-bottom: 5px;
}



a {
    text-decoration: none;
}



a:hover {
    text-decoration: underline;
}



.linksContainer {
    float: right;
    padding-top: 5px;
    padding-bottom: 5px;
}



.linksContainer a {
    font-size: 13px;
}



.contentContainer {
    background-color: white;
    border-color: #00338D;
    border-style: solid;
    border-width: 2px;
    border-top: none;
    border-bottom: none;
}



#ajaxMenu {
    width: 960px;
}



#ajaxMenu,
#ajaxMenu div.bd,
#ajaxMenu ul,
#ajaxMenu li.yuimenubaritem {
    margin: 0px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    background: white;
}



#ajaxMenu a.yuimenubaritemlabel {
    border-color: black;
    border-width: 0px 0px 0px 2px;
}



#ajaxMenu li.first-of-type .yuimenubaritemlabel {
    border-left-width: 0px;
}



#ajaxMenu ul {
    height: auto;
    width: auto;
    border-style: none;
}



/* Hide down arrow on CF_generated AJAX menus */
#ajaxMenu .submenuindicator {
    visibility: hidden;
    margin: 0px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    width: 0px;
}



#ajaxMenu li {
    height: auto;
    width: auto;
}



#ajaxMenu li.yuimenuitem {
    margin-bottom: -5px;
}



#ajaxMenu li.yuimenuitem a {
    padding: 5px 12px 5px 12px;
}



#ajaxMenu li a {
    font-size: 13px;
    padding: 1px 8px 1px 8px;
    text-decoration: none !important;
}
A: 

I believe your main issues are that IE6 does not acknowledge the existence of the cfmenu as a valid tag for css targeting (it is not valid HTML), and further, even if that is changed to a valid tag like div it needs to have the id set, not the name, for css to style it.

Scott
cfmenu is processed on server-side and produces valid(ish) HTML.
jarofclay
Okay, then Mr. Belair ought to post the generated HTML if this is going to be debugged.
Scott
A: 

IE6 usually gets thrown off by the "padding". Google "box model IE6". You can try zero-ing out the left and right padding and using margin's instead (if necessary) to fix the issue.

eapen