Css Float Overlapping

tdktank59

Gawd
Joined
Jan 23, 2007
Messages
590
I have no idea whats causing this.
I have tried setting z-index on the menu (the menu that is floating under the grid)
I have no idea if IE7+ fixes this problem...
Im guessing it has something to do with multiple css emelemts on the menu...

Broken (IE6)


Correct (FF)


Menu:
Code:
<ul class="sf-menu sf-vertical menu">

        		<?php if ($this->session->userdata('username')) { ?>
        		    <li><?php echo anchor('dashboard','Dashboard',array('title' => 'Dashboard')); ?></li>
                    <li><?php echo anchor('bug','Bug Reporting',array('title' => 'Bug Reporting')); ?>
                        <ul>
    						<li><?php echo anchor('bug/create','Create',array('title' => 'Create Bug')); ?></li>
    					</ul>
                    </li>
                    <li><?php echo anchor('brainstorms/grid','Problem Discovery',array('title' => 'Problem Discovery')); ?>
                        <ul>
    						<li><?php echo anchor('brainstorms/grid','Brainstorms',array('title' => 'View All Brainstorms')); ?>
                                <ul>
                                    <li><?php echo anchor('brainstorms/create','Create',array('title' => 'Create Brainstorm')); ?></li>
                                </ul>
    						</li>
    						<li><?php echo anchor('dqips/grid','DQIPs',array('title' => 'DQIPs')); ?>
                                <ul>
                                    <li><?php echo anchor('dqips/create','Create',array('title' => 'Create DQIP')); ?></li>
                                </ul>
                            </li>
    					</ul>
                    </li>
                    <li><?php echo anchor('problems/inbox','Problem Resolution',array('title' => 'Problem Resolution')); ?>
                        <ul>
    						<li><?php echo anchor('problems/inbox','Inbox',array('title' => 'Inbox')); ?></li>
    						<li><?php echo anchor('problems/outbox','Outbox',array('title' => 'Outbox')); ?></li>
    						<li><?php echo anchor('problems/assign','Assign Problems',array('title' => 'Assign Problems')); ?></li>
    					</ul>
                    </li>
                    <li><?php echo anchor('','Archives',array('title' => 'Archives')); ?></li>
                    <li><?php echo anchor('','Services',array('title' => 'Services')); ?></li>
                    <li><?php echo anchor('','Reports',array('title' => 'Reports')); ?></li>
                    <li><?php echo anchor('','Admin CP',array('title' => 'Admin Control Panel')); ?>
                        <ul>
    						<li><?php echo anchor('admin_permission/all_users','Users',array('title' => 'View Users')); ?>
                                <ul>
                                    <li><?php echo anchor('admin_permission/all_users','View',array('title' => 'View Users')); ?></li>
                                    <li><?php echo anchor('admin_permission/create_user','Create',array('title' => 'Create Users')); ?></li>
                                </ul>

    						</li>
    						<li><?php echo anchor('','Permissions',array('title' => 'View Users')); ?>
                                <ul>
                                    <li><?php echo anchor('','View',array('title' => 'View All Permissions')); ?></li>
                                    <li><?php echo anchor('','Create Role',array('title' => 'View Users')); ?></li>
                                    <li><?php echo anchor('','Create Team',array('title' => 'View Users')); ?></li>
                                    <li><?php echo anchor('','Assign Role',array('title' => 'View Users')); ?></li>
                                    <li><?php echo anchor('','Assign Team',array('title' => 'View Users')); ?></li>
                                </ul>
                            </li>
    					</ul>
                    </li>
                <?php } else { ?>
                    <li><?php echo anchor('bug','Bug Reporting',array('title' => 'Bug Reporting')); ?>
                        <ul>
    						<li><?php echo anchor('bug/create','Create',array('title' => 'Create Bug')); ?></li>
    					</ul>
                    </li>
                    <li><?php echo anchor('auth/login','Login',array('title' => 'Login')); ?></li>
                <?php } ?>
          		</ul>

CSS: (all css of elements involved...
Code:
/* Menu */
.menu {
	list-style: none;
	margin: 0;
	padding: 0;
}
.menu li {
	border-bottom: 1px dashed #ffffff;
	margin: 0;
	padding: 0;
}
.menu li a {
	display: block;
	padding: 14px 0 14px 10px;
	/* SETTING: menu border color */
	color: #FFFFFF;
	text-decoration: none;
	font-size: 11px;
}
.menu li a:hover {
	display: block;
	padding: 14px 0 14px 10px;
	/* SETTING: menu border color */
	color: #FFFFFF;
	text-decoration: none;
	background-color:#090;
}
#grid, td, th {
    color: #000000;
    vertical-align: top;
    z-index:-1;
}

#grid td{
    border-left: 1px solid #c4c4c4;
    border-bottom: 1px solid #c4c4c4;
    padding-right: 5px;
    padding-left: 5px;
}

#grid th{
    border-left: 1px solid #c4c4c4;
    border-bottom: 1px solid #c4c4c4;
    white-space: nowrap;
    border-top: 1px solid #c4c4c4;
    padding: 1px 5px 1px 5px;
}
/*** adding sf-vertical in addition to sf-menu creates a vertical menu ***/
.sf-vertical, .sf-vertical li {

	width: 150px;
}
/* this lacks ul at the start of the selector, so the styles from the main CSS file override it where needed */
.sf-vertical li:hover ul,
.sf-vertical li.sfHover ul {
	left:	150px; /* match ul width */
	top:	0;
	background-color: #294867;
}

/*** alter arrow directions ***/
.sf-vertical .sf-sub-indicator { background-position: -10px 0; } /* IE6 gets solid image only */
.sf-vertical a > .sf-sub-indicator { background-position: 0 0; } /* use translucent arrow for modern browsers*/

/* hover arrow direction for modern browsers*/
.sf-vertical a:focus > .sf-sub-indicator,
.sf-vertical a:hover > .sf-sub-indicator,
.sf-vertical a:active > .sf-sub-indicator,
.sf-vertical li:hover > a > .sf-sub-indicator,
.sf-vertical li.sfHover > a > .sf-sub-indicator {
	background-position: -10px 0; /* arrow hovers for modern browsers*/
}
/*** ESSENTIAL STYLES ***/
.sf-menu, .sf-menu * {
	margin:			0;
	padding:		0;
	list-style:		none;
}
.sf-menu {
	line-height:	1.0;
}
.sf-menu ul {
	position:		absolute;
	top:			-999em;
	width:			10em; /* left offset of submenus need to match (see below) */
}
.sf-menu ul li {
	width:			100%;
}
.sf-menu li:hover {
	visibility:		inherit; /* fixes IE7 'sticky bug' */
}
.sf-menu li {
	float:			left;
	position:		relative;
}
.sf-menu a {
	display:		block;
	position:		relative;
}
.sf-menu li:hover ul,
.sf-menu li.sfHover ul {
	left:			0;
	top:			2.5em; /* match top ul list item height */
	z-index:		99;
}
ul.sf-menu li:hover li ul,
ul.sf-menu li.sfHover li ul {
	top:			-999em;
}
ul.sf-menu li li:hover ul,
ul.sf-menu li li.sfHover ul {
	left:			10em; /* match ul width */
	top:			0;
}
ul.sf-menu li li:hover li ul,
ul.sf-menu li li.sfHover li ul {
	top:			-999em;
}
ul.sf-menu li li li:hover ul,
ul.sf-menu li li li.sfHover ul {
	left:			10em; /* match ul width */
	top:			0;
}

/*** arrows **/
.sf-menu a.sf-with-ul {
	padding-right: 	2.25em;
	min-width:		1px; /* trigger IE7 hasLayout so spans position accurately */
}
.sf-sub-indicator {
	position:		absolute;
	display:		block;
	right:			.75em;
	top:			1.05em; /* IE6 only */
	width:			10px;
	height:			10px;
	text-indent: 	-999em;
	overflow:		hidden;
	background:		url('../../images/superfish/arrows-ffffff.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */
}
a > .sf-sub-indicator {  /* give all except IE6 the correct values */
	top:			.8em;
	background-position: 0 -100px; /* use translucent arrow for modern browsers*/
}
/* apply hovers to modern browsers */
a:focus > .sf-sub-indicator,
a:hover > .sf-sub-indicator,
a:active > .sf-sub-indicator,
li:hover > a > .sf-sub-indicator,
li.sfHover > a > .sf-sub-indicator {
	background-position: -10px -100px; /* arrow hovers for modern browsers*/
}

/* point right for anchors in subs */
.sf-menu ul .sf-sub-indicator { background-position:  -10px 0; }
.sf-menu ul a > .sf-sub-indicator { background-position:  0 0; }
/* apply hovers to modern browsers */
.sf-menu ul a:focus > .sf-sub-indicator,
.sf-menu ul a:hover > .sf-sub-indicator,
.sf-menu ul a:active > .sf-sub-indicator,
.sf-menu ul li:hover > a > .sf-sub-indicator,
.sf-menu ul li.sfHover > a > .sf-sub-indicator {
	background-position: -10px 0; /* arrow hovers for modern browsers*/
}

/*** shadows for all but IE6 ***/
.sf-shadow ul {

	padding: 0 8px 9px 0;
	-moz-border-radius-bottomright: 10px;
	-moz-border-radius-topright: 10px;
	-webkit-border-top-right-radius: 10px;
	-webkit-border-bottom-right-radius: 10px;
}
.sf-shadow ul.sf-shadow-off {
	background: transparent;
}
 
Part of the issue is with IE6's dropdown lists. The dropdown control in IE6 is not a true HTML control, but rather a Windows Forms control. So it's taken out of context of any flows or z-indexes, thus the dropdowns sitting on top of the hover menus. Conventional solutions won't work for this. I've seen some hackish solutions from Google searches, but YMMV in terms of implementing them into your markup and stylesheet. I think multi-select listboxes also fall into this category, but I'm not 100% certain.

Another issue is that IE6 can't handle transparency that well. So if your images on the rounded corners are PNG files with layer transparency, there's another hurdle. There's a ton of free javascript "include" files that manage to get around the PNG transparency issue, and these are very simple to implement.

I believe both of these issues are corrected in IE7, which may or may not be feasible as an upgrade in your work environment.
 
Yeah,

Well first off IE6 is a must... Government environment and everything... (Why they haven't gone to 7 I do not know but what ever)

I don't care about the transparencies, those just make it look nicer...

And my solution to the select boxes at the moment is to hide them... I think ill end up having a box pop up when they want to filter and then close when they run the filters.
that way its not "on the page" during normal operation.
 
Back
Top