CSS - Z-index Issues [i Think!]
Hi, I'm building a simple holding page - and using jQuery to handle two drop down panels - one for some text and one with a contact form.
I'm having real issues with the ordering of the components that make up these panels - see for yourself at http://tomlinson.dj/thornsett/wheston/index.html. Tab A behaves beautifully -expands divA to open - covering tab b as it drops, and bringing tab A with it so you can click it to close up. Tab B opens div B, but pushes tab A AND tab B down with it. Clicking on tab A causes div A to accordion out from the open div B. The pertinent css looks like this Code: /* contact divs and css */ #contactArea { z-index: 10; height: 225px; border-bottom: 5px solid #006293; overflow: hidden; background-color: #006293; } #container { z-index: -3; position: absolute; right: 0px; width: 460px; margin: 0 auto; } a.contact { z-index: -3; position: absolute; right: 10px; height: 48px; width: 250px; display: block; text-indent: -9999px; background: url(../images/register.png) no-repeat 0 0; } /* 'about' divs and css */ #informationArea { z-index: 15; height: 225px; border-bottom: 5px solid #8FCFF3; overflow: hidden; background-color: #8FCFF3; } #container2 { z-index: -4; position: absolute; left: 0px; width: 460px; margin: 0 auto; } a.contact2 { z-index: -4; position: absolute, left: 10px; height: 48px; width: 250px; display: block; text-indent: -9999px; background: url(../images/about.png) no-repeat 0 0; } * { margin: 0; padding: 0; outline: 0; } body { background-color: #fff; overflow:hidden; padding:0; margin:0; height:100%;width:100%; } and the html using it looks like this... Code: <body> <!-- This is the background image --> <img id="bgimg" src="images/whestonweboptimised.jpg" /> <div id="contactArea"> <!-- form code stripped out here for clarity --> </div> <div id="container"> <div id="header"> <a class="contact" href="#">About Wheston</a> </div> </div> <div id="informationArea"> some holding text </div> <div id="container2"> <div id="header"> <a class="contact2" href="#">Contact Us</a> </div> </div> Any thoughts, guidance will be most welcome, thanks in advance, and... rgds bdjt Similar TutorialsHi everyone. I have a site that has a flash dropdown navigation on it. I have the navigation in a relatively positioned <div> tag so that I could absolutely position an <h2> tag "under" the navigation so that the dropdown navigation would go over the <h2> tag. When I play with the z-index is when I have the issues. In FF it works well in the example below but not in IE. Does anyone know what I can do to remedy this? Here's the markup ... Code: <div id="intwrap"> <div id="intflash"> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="752" height="100" id="nav" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="f/nav.swf" /> <param name="loop" value="false" /> <param name="quality" value="best" /> <param name="wmode" value="transparent" /> <param name="bgcolor" value="#ffffff" /> <embed src="f/nav.swf" loop="false" quality="best" wmode="transparent" bgcolor="#ffffff" width="752" height="100" name="nav" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /> </object> </div> <!-- end intflash --> <div id="pdname"> <h2>Product Name</h2> </div> <!-- end pdname --> </div> <!-- end intwrap --> and the css... Code: /* -- interior page wrap -- */ #intwrap { position: relative; width: 752px; float: left; margin: 0; padding: 0; } /* -- interior flash navigation -- */ #intflash { positin: absolute; top: 0; left: 0; width: 752px; margin: 0; padding: 0; z-index: 1000 /* -- detail page -- */ #pdname { position: absolute; top: 30px; left: 0; margin: 5px 0 0 0; padding: 0; text-align: left; z-index: 0; } Any help with this would be greatly appreciated. I worked at it for quite some time without prevailing. Thanks! -Brian I cannot figure this out. I've tried adding clear: both in several places, I've tried overflow: hidden and I've tried cursing. Nothing works! How can this be fixed so that in IE6 the divs are not staggered vertically?? Code: <div style="height: 38px; margin: 0px; padding: 0px; width: 140px;"> <div style="float: left; height: 38px; width: 38px;"><img style="border: 1px solid #444444; vertical-align: middle" src="http://www.diversifieddesigns.com/GRAPHICS/Spacer.gif" alt="" width="38" height="38" border="0"></div> <div style="float: right; height: 38px; width: 102px;">copy</a><br>copy</a></div> </div> <div style="height: 38px; margin: 0px; padding: 0px; width: 140px;"> <div style="float: left; height: 38px; width: 38px;"><img style="border: 1px solid #444444; vertical-align: middle" src="http://www.diversifieddesigns.com/GRAPHICS/Spacer.gif" alt="" width="38" height="19" border="0"></div> <div style="float: right; height: 38px; width: 102px;"><img style="border: 1px solid #444444; vertical-align: middle" src="http://www.diversifieddesigns.com/GRAPHICS/Spacer.gif" alt="" width="38" height="8" border="0"></div> </div> Hey, I came across this forum and hopefully somebody can help me. Here is my website: http://www.jmuelectricmotorcycle.tk When the page is in firefox, If you page zoom out, the navbar goes under the content instead of staying on the right. I think it has something to do with padding and the sidebar not having enough room so it drops down. When I set the content to 1005 instead of 1000, it works, but there's a giant 5 pixel gap between my side bar and my content container. Also, does anybody know how to style called data from ssi.php in SMF forums? I want my login boxes to look like my main page. Thanks. Here is my css: Code: html { font: normal 12px verdana, arial; background-color: #000 } body { text-align: center } #fw-container { margin: 0 auto; width: 1000px; text-align: left } .hasSidebar #fw-container { width: 1000px; } a, a:visited { text-decoration: none; } a:hover { text-decoration: underline; } /* --- Header --- */ #fw-head { position: relative; height: 196px; background: #242424; } #fw-title { font: bold 26px verdana; letter-spacing: -1px; position: absolute; top: 20px; left: 20px; padding: 0; margin: 0; z-index: 10; } #fw-title a, #fw-title a:visited, #fw-title a:hover { color: #fff; } .fw-logo { width: 760px; height: 196px; position: absolute; } .hasSidebar .fw-logo { width: 1000px; } /* --- Navigation --- */ #fw-mainnavwrap { background: #242424; padding: 10px 20px; font-family: arial; font-weight: normal; border-top: 1px solid #000; border-bottom: 1px solid #000; } #fw-mainnavwrap ul { margin: 0; padding: 0; background: transparent; list-style-type: none; } #fw-mainnavwrap li { margin: 0px 15px 0px 0px; display: inline; } /* --- Content --- */ #fw-bigcontain { width: 760px; float: left; } .fw-paragraph { background: #242424 url('../Waveform/img/bg-p.gif') repeat-x top left; border-bottom: 1px solid #000; padding: 15px 20px 10px; overflow: hidden; } .fw-title { margin: 0px 0px 10px; font: 18px verdana; color: #fff; } .fw-text { margin-bottom: 10px; } /* --- Sidebar stuff --- */ .hasSidebar #fw-sidebar { width: 239px; float: right; font-size: 12px; clear: right; border-left: 1px solid #000; } #fw-sidebar .fw-title a, #fw-sidebar .fw-title a:visited, #fw-sidebar .fw-title a:hover { color: #fff; text-decoration: none; } #fw-sidebar .fw-title { font-size: 1.3em; font-weight: normal; } /* --- Footer --- */ #fw-footer { font: normal 10px verdana, sans-serif; background: #242424; margin: 0px; padding: 11px 0px 1px; color: #999; clear: both; width: 760px; } .fw-footertext { background: #161616; border-bottom: 1px solid #000; border-top: 1px solid #000; margin: 0px; padding: 6px 0px 6px 20px; } Hi everyone, I'm currently busy on a website which is viewable here The problem is the 'Top' image on the right side. It's supposed to be below the #shadow div (look at my source code) I tried changing the z-indexes to different levels but the top div keeps staying on top. If I turn it into a negative z-index, the mouseover doesn't work anymore.. Hope anyone can help Wouter An old site, http://www.naausa.org, doesn't work properly in IE7 as the hover links don't go over the changing image. It seems to be because of the IE bug: http://therealcrisp.xs4all.nl/meuk/IE-zindexbug.html The site and code is ugly (inline CSS, tables, etc.), but I don't want to reinvent the wheel; I just want to solve the problem and get it over with. I've tried several things with no luck. Can anyone take a gander at the source code and give me a hint? Thanks, Jeremy [sorry for any duplication... I just submitted this to the HTML list but suddenly realized it's really a CSS problem] I have a couple web pages that include relatively long pop-up "help" fields... implemented with the display and index style elements. With Netscape or Safari they look fine, but with IE or Opera, some underlying elements "bleed through"; that is, some elements from a div with a lower z-index, which should be behind, seem to float off the rear document and appear in front of the front document. All of the problem elements seem to be within forms and (probably more importantly) they all seem to be in a DIV other than the DIV containing the pop up. That is each structure looks something like: <div> <div> ... the pop up </div> <div> the rest of this section </div> </div> <div> ... some more stuff </div> the proplems are in the area in which the pop up overlaps later divisons. (not all items so conflict) ... any ideas? I am not sure why this is not working but I am trying to nest a div and overlay them. Code: <style> .txtImg { posistion: relative; z-index: 99; height: 72px; width: 100%; background: url(../../images/roycity-gpl-01.png) no-repeat left; } .logo { position: relative; z-index: 1; height: 72px; width: 100%; background: no-repeat right; } </style> <div id="txt" class="txtImg" align="left"> <div id="bg-img" class="logo" align="right"></div> </div> Having an issue with a drop down menu in firefox. I have a nav bar with drop down menus. Just below that is an embedded video. Everything works fine except for the drop down menu is behind the video on firefox. Looks fine in IE. I adjusted the z-index properties to make sure that the nav bar sits on top, but it still sits behind. ??? Is it a glitch of some sort? I have an object on my page with the following settings: Code: #myEmail { position:absolute; left:400px; top:50px; z-index:2; display:none; } and i have a video player in my form that looks like this: Code: <object id="Player" height="400" style="border:solid 1px black; z-index:1;" width="500" classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"> <param name="URL" value="<% =GetPlayerUrl() %>" /> <param name="autoPlay" value="true" /> </object> Problem is, when the video starts to play, it moves to the top layer. What am i doing wrong? I have two elements. One has a z-index of 9999 and the other has 9000. Both elements are positioned. It is a modal popup window. When I open it, the element with a poistion of 9000 is on top of the one with 9999. I even checked to confirm that the z-index properties were the same once the popup completed. What could cause this? Hi all, I've got a little request. Does anybody know how I could solve this issue: I want to have a menu hover on the left, and a menu hover at the top, while visitors can move the google map around in the background. I do this by setting my map div to z-index: -1, and it works good. Except it won't let people click on the map and move it around, even though there isn't a div ontop of it. http://pw.mmogm.com/0.0.5/frame.html The only other way I can think of it set the menu's to z-index: 1, but that would cause them to lag, and they're position would be fixed so when I "toggle" the menu, the top menu won't slide left. It's much nicer the first way, besides the clicking problem. http://pw.mmogm.com/0.0.5/frame2.html I greatly greatly any advice you might be able to shed on this issue. Thanks in advance if you can On a site I'm trying to setup I have a header arrangement with a centrally placed image/logo (it's a png8). 1. It looks a bit decimated in IE6. Anyone know why? 2. The image is supposed to be absolute and on top but in fact the menu bar stays on top. All a problem in IE but not firefox. I'm obviously missing something basic! Help appreciated. Does IE not support z-index attributes? I set some z-indexes and it seems to have fixed my issues in firefox, but not in IE. I am making a list of arrangements, and want a div containing further info to pop up, when you click the arrangement. To make sure the info-box is on top of the other DIVs, i have set z-index to 1. But i have a couple of scripts on the page, and they are allways places on top. I there a way to go around this? + Is it possible with a few simple changes to this script: Code: <script type="text/javascript"><!-- function showHide(boxName) { theBox = document.getElementById(boxName); if (theBox.className == "boxVisible") { theBox.className = "boxHidden"; } else { theBox.className = "boxVisible"; } } //--> </script> <body> <a href="news" onclick="showHide('news'); return false;">News</a> </body> So the target changes back, when the link is inactive. I've tried this: Code: <body> <a href="news" onmouseover="showHide('news'); return false;">News</a> </body> But then i have to pass the link again, to close the window again. I'm wanting to put three items together with different z-indexes. The first div contains another div and a paragraph, all are positioned absolutely. I want the 2nd div to be higher than the p. The html is as follows: Code: <div id="sticker"> <div></div> <p>Text</p> The css is as follows: Code: div#sticker {width:146px; height:140px; background:url("stickerbase.png") no-repeat top left; position:absolute; top:20px; left:20px; z-index:10;} div#sticker div {width:115px; height:67px; background:url("stickerflap.png") no-repeat top left; z-index:20;} div#sticker p {position:absolute; top:40px; left:20px; z-index:15; background-color:#06c;} An example is at www.wattersisere.co.uk/devshed I want the text with the blue background to be behind the flap of the sticker! I even tried it out with an online z-index checker and couldn't get their code to do it. Thanks, Watters I worked it out, I had missed the position:absolute off the 2nd div. hi, i've been reading extensively about the z-index issue that IE 7 suffers from (when using the "position" property) but i cannot for the life of me fix my problem. Basically i have a #menu that is positioned relative to a #wrapper. The dropdown menu works fine in all browsers except that in IE 7, the grey shadow that should appear behind the dropdown menu itself appears on top of the actual dropdown menu. If you view the same page using Firefox, the dropdown menu appears above the grey shadow as it should do. This is the EXACT behaviour i need. I need the dropdown menu and its shadow to appear above the "#content .box" below it, but i also need the shadow to appear behind the dropdown menu. I just need to replicate this exact behaviour you see in Firefox in IE 7. I need to keep the IE7 compatibility mode and the DOCTYPE as they are otherwise the other styles on my site will be affected. Please find the attached folder with all necessary code contained in it. Ignore the jquery.js file as its merely used for effects and is not causing the issue. BTW: its essential that the #menu is positioned relative to the #wrapper as i want it to appear further down in the HTML code for SEO purposes. Thanks in advance Hi, I am trying to position a logo at the foot of http://www.root.lamtha2.co.uk/cssproblem/ If you look at the source it shows, <div id="footer" class="navTextBottom"> <br /> <!-- #BeginLibraryItem "/Library/bottom_nav_bar.lbi" --><a href="index.html">Home</a> | <a href="#">Terms & Conditions</a> | <a href="#">Links</a> | <a href="#">Contact Us</a><!-- #EndLibraryItem --><br /> <span class="copyrightText">Copyright Apex Verhicle Rentals 2006</span><br /> <div id="lamtha2logo"><a href="http://www.lamtha2.com" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Lamtha2logo','','index_images/designed_by_l2_on.jpg',1)"><img src="index_images/designed_by_l2_off.jpg" alt="Lamtha2 Web Design" name="Lamtha2logo" width="89" height="29" border="0" id="Lamtha2logo" /></a> </div> <!-- end lamtha2logo --> </div> <!-- end footer --> Here is the css #footer { width:760px; font-size:12px; background-image: url(index_images/footer.gif); text-align: center; background-repeat: no-repeat; z-index: -2; } #lamtha2logo { height: 29px; width: 89px; background-repeat: no-repeat; z-index: 2; float: left; padding-left: 10px; margin-bottom: -35px; } Can anyone help me resolve why div #lamtha2logo is beneath div #footer thanks Hi, I thought this would be a no brainer, but for some reason my z-indexes aren't working. I have a wrapper div, and inside this div I have about 3 other divs. Each div has to be layered in a specific order. I thought that the lower the z-index, the lower the stacking order? But for some reason, Here's my CSS:: Code: #header { z-index:300; position:absolute; margin;0, 0, 0, 167px; float:right; background-image:url("images/common/Catsheader.gif"); } #footer { margin-top:315px; z-index:998; height: 87px;} .push { height:87px; clear:both; } #content{ z-index:1; position:absolute; margin: 0 0 0 0; padding:0 0 0 0; width: 770px; height: 602px; } Here's the site so far :: link The flash movie should be behind the footer and header, but it is showing up on top. Please tell me what I am doing wrong. thanks Using javascript, I have been trying to make a semi-transparent page with a login form on appear ontop of my website. It works fine in FF and Opera and worked fine in IE too, but now it does not anymore. It seems to refuse to recognize the fixed div for some reason. Hopefully someone can spot something I have missed. If you want to see it, go to zeff.biz/jsenabled.php and type "admin". The box should then appear. View it in FF to see what it is meant to look like and in IE to see what my problem is. The CSS: Code: #admin_login { position: fixed; top: 0px; bottom: 0px; left: 0px; right: 0px; z-index: 2; display: none; } #fade { position: absolute; top: 0px; bottom: 0px; left: 0px; right: 0px; background-color: #000000; opacity: 0.15; filter:alpha(opacity=15); khtml-opacity: 0.15; moz-opacity: 0.15; z-index: 1; } #admin_box { position: absolute; top: 50%; left: 50%; z-index: 2; } #admin { position: relative; top: -75px; left: -100px; height: 150px; width: 200px; background-color: #FBFF9F; border: 1px solid #000000; z-index: 2; } #admin_form { position: relative; height: 150px; width: 140px; margin-top: auto; margin-bottom: auto; margin-left: auto; margin-right: auto; text-align: left; line-height: 30px; } #username { position: relative; right: -20px; width: 120px; } #password { position: relative; right: -20px; width: 120px; } #submit { position: relative; right: -95px; width: 50px; } #admin_fill { position: absolute; top: 0px; left: 0px; z-index: 1; height: 150px; width: 200px; } The HTML: Code: <div id="admin_login"> <div id="fade" onclick="exit_admin()"> </div> <div id="admin_box"> <div id="admin"> <form id="admin_form" action=""> <div>Username:</div> <div><input type="text" name="username" id="username" onkeyup="check()" /></div> <div>Password:</div> <div><input type="password" name="password" id="password" onkeyup="check()" /></div> </form> </div> <div id="admin_fill" onclick="exit_admin()"> </div> </div> </div> Hi, I'm currently having this problem. What i want is i want the box 3 to overlay on top of box 1 and box 2. The real challenge is i cannot touch the css nor add for box 1 and box 2. Also, I can not modify any html code outside of the box 3 block. In other words, i can only add mark up within the box 3 div tag. I've exhausted my options in solving this but can not find a solution. Can anyone share some light? Thank in advanced Here is the code: Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Untitled Document</title> </head> <body> <style type="text/css"> /** Preset Start **/ #box1{width:200px;height:200px;background-color:#0f0;position:relative;z-index:1} #box2{width:200px;height:200px;background-color:#f0f;position:relative;z-index:2} /** Preset End **/ #box3{width:100px;height:200px;background-color:#000;position:absolute;z-index:10;top:30px;} </style> <div id="box1"> <div id="box3"></div> </div> <div id="box2"></div> </body> </html> |