CSS - Question About Using Z-index
I'm aware of what z-index does and that it can only work on positioned elements.
My question is this: for z-index to work properly does a position also need to be set for the element that will be below the element with a higher z-index? Similar TutorialsI have attached an image that encapsulates ideally how I would like the page to look. I'm having troulbe having left nav, body text lining up. Basically I want the background of the center box to be white, but the wrapper is not "clearing" all the divs in the center box. So the bg appears black. I would also like the body color and left nav color to ALWAYS line up at the bottom. However they need to be able to strecth when content grows. Any help would be greatly appreciated! I'm pretty new to CSS and love it, but this has really got me stumped. View how I would "like" it to look http://urbaneffect.com/test/layers_image.gif View Page here http://urbaneffect.com/test/ CSS FILE Code: /* this centers the content*/ #wrapper{ width: 765px; margin-left: auto; margin-right: auto; text-align: left; position: relative; background-color:#FFFFFF; } #headerBlock{ z-index:2; position:absolute; top:0px; margin-left:15px; } #bodyBlock{ position:absolute; top:70px; } #leftNav{ width: 182px; float: left; height: 300px; margin-right: 10px; background-color:#666666 } #innerContent { float: left; padding-left: 12px; padding-top: 20px; background-color:#FFCCCC; width:550px; } 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? 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> 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 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 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 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? 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. 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 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. 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? Hi I've got a popout menu that I've gotten quite close to where I want it. http://www.gamengai.com/main_beta_inv.php The main problem is that if I offset it too much, the navigation gets tricky. I can set it to where the popup looks like an extention of the original menu, but often the hover is deactivated -- a real pain. If I move it up a bit by fidgeting w/ the "top" element, it works, although there's some overlapping. My idea was to put the popout under the main menu to allevaite this a bit, but for the love of me cannot do it. This is the css sheet: http://www.gamengai.com/inv.css I've set top-level menu definitions w/ a z-index of 10, and the 2nd level w/ 1. But, the popout is still on top. I have an image and a popover when the mouse hovers over that image. I want the popover to show under the image. My code works in IE but not firefox. I've been trying to fix this for a couple hours but with no luck. Any help is greatly appreciated Code: #prefButton { font-size: 0.7em; display: inline; float: right; margin: 0.4em; margin-right: 1.0em; display: block; height: 30px; width: 30px; overflow: hidden; } #prefButton .title * { display: block; height: 30px; width: 30px; overflow: hidden; } #prefButton .title .image { background-image: url(pref.gif); background-repeat: no-repeat; background-position: top right; position: relative; top: -30px; z-index: 15; } #prefPopup { display: none; } #prefPopup span { display: block; margin: 0.5em 0; } #prefPopup.showPopup { font-size: 1em; border-style: solid; border-width: 1px; overflow: hidden; position: absolute; width: 10.0em; padding: 0.5em; display: block; z-index: 10; } <div id="prefButton"> <span class="title"><p></p><span class="image"></span></span> <div id="prefPopup">Some text goes here</div> </div> Im converting a website to tabless layout and have used BonRouge Fixed 2 column layout to achive this. In the header div I have a drop-down css navigation. I had some problems with the drop downs displaying so I messed with some z-index and got it to work fine in Firefox...but of corse IE doesnt want to play nicely. It doesnt even display the drop down. So I come to Devshed for help. Here is my messy CSS: Code: img { border: 0px none; } body { background-color: #ffffff; color: #000; background-image: url('http://www.properties-abroad.net/images/bg.jpg'); margin:10px; font-family: Verdana,sans-serif; font-size:10px ; padding: 0; height: 100%; } #nav, #nav ul { padding: 0; margin: 0; list-style: none; text-align: left; } #nav a { display: block; color: #fff; font-family: verdana; font-weight: bold; font-size: 8pt; text-decoration: none; } #nav a:hover { display: block; color: #FFFF00; font-family: verdana; font-weight: bold; } #nav li{ float: left; width: 120px; padding-top: 5px; padding-bottom: 5px; color: #fff; } #nav li ul{ position: absolute; left: -999em; width: 120px; margin-top: 0px; padding-top: 5px; text-align: left; z-index: 10; } #nav li ul li{ width: 120px; text-align: left; padding: 5px; background:#A3B3DE; z-index: 2; } #nav li ul li a{ width: 120px; text-align: left; color: #000; } #nav li:hover ul { left: auto; } #nav li:hover ul, #nav li.sfhover ul { left: auto; } #wrap { width:780px; margin:auto; position:relative; background: #ffffff; } #left { float:left; width:300px; text-align:center; background: #ffffff; margin: 0; border: 0; } #main { position:relative; margin: 0; padding: 0; margin-left: 300px; background: #ffffff; } * html #main { height:1px; } #navigation { background: #ffffff; padding: 0; margin: 0; } #header { padding:0; margin: 0; } #clearfooter { clear:both; height: 30px; overflow: hidden; } #footer { height: 100px; margin: 0; color: #000; text-align: center; width: 780px; margin: auto; font-size: 10px; background-image: url('images/div-foot.jpg'); background-position: bottom; background-repeat: no-repeat; } And here is my cleaner HTML: Code: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Properties Abroad - Discount Self Catering Accommodation</TITLE> <link title="blue" href="stylediv.css" type="text/css" rel="STYLESHEET"> </head> <body> <center> <div id="wrap"> <div id="header"> <img src="images/div-head.jpg" alt="Discounted Holidays Abroad"></div> <div id="navigation"> <ul id="nav" style="background-image: url(navbg.jpg); width: 738px; height: 23px;"> <li style="padding-left: 10px; width: 120px;"><a href="index.html">Home Page</a> <ul> <li><a href="newsletter.html">Free Newsletter</a></li> <li><a href="corporate.html">Corporate Events</a></li> <li><a href="landing.html">Overseas Property Sales</a></li> <li><a href="advertise.html">Advertise with us</a></li> <li><a href="http://www.simply-global.com/" target=_blank>Website Design & Management</a></li> </ul> </li> <li><a href="prop.html">View Properties</a> <ul> <li><a href="spain.html">Costa Blanca, Spain</a></li> <li><a href="majorca.html">Alcudia, Majorca</a></li> <li><a href="tenerife.html">Tenerife</a></li> <li><a href="lanzarote.html">Lanzarote</a></li> <li><a href="landing.html">Homes Abroad</a></li> <li><a href="gallery.html">Photo Gallery</a></li> </ul> </li> <li><a href=index.html>Quick Searches</a> <ul> <li><a href="flightsearch.html">Flights</a></li> <li><a href="hotelsearch.html">Hotels</a></li> <li><a href="http://onlineautorentals.at/propertiesabroad" target=_blank>Car Hire</a></li> <li><a href="flighthotel.html">Flights + Hotel</a></li> <li><a href="http://www.skyscanner.net/" target=_blank>European Flights</a></li> <li><a href="http://www.activehotels.com/servlet/search/index.jsp?searchCode=EU&trkref=SGL" target=_blank>European Hotels</a></li> </ul> </li> <li><a href=beach.html>Beach Holidays</a> <ul> <li><a href="accommodation-alcudia.html">Belle Vue Complex</a></li> <li><a href="accommodation-sands.html">Sands Beach Villas</a></li> </ul> </li> <li><a href=villa.html>Villa Holidays</a> <ul> <li><a href="accommodation-spain.html">Luxury Townhouse - Sleeps 6</a></li> </ul> </li> <li><a href=golf.html>Golfing Holidays</a> <ul> <li><a href="golf-spain.html">Costa Blanca</a></li> <li><a href="golf-alcudia.html">Majorca</a></li> <li><a href="corporate.html">Cororate Events</a></li> </ul> </li> </ul> </div> <div id="left">Left</div> <div id="main">Main Content</div> <div id="clearfooter"></div> <div id="footer"> <center> <a href="index.html" title="Discounted Holidays Abroad">Discounted Holidays Abroad</a> | <a href="landing.html" title="Homes Abroad">Homes Abroad</a> | <a href="http://www.skyscanner.net/" title="Cheap European Flights" target=_blank>Cheap European Flights</a> | <a href="http://www.activehotels.com/servlet/search/index.jsp?searchCode=EU&trkref=SGL" title="Eurpoean Hotel Accommodation" target=_blank>Eurpoean Hotel Accommodation</a> | <a href="flightsearch.html" title="Cheap Flight Search">Cheap Flight Search</a> | <a href="hotelsearch.html" title="Cheap Hotel Search">Cheap Hotel Search</a> | <a href="http://onlineautorentals.at/propertiesabroad" title="Cheap Car Hire Search" target=_blank>Cheap Car Hire Search</a> | <a href="newsletter.html" title="Holiday Newsletter">Holiday Newsletter</a> | <a href="accommodation-spain.html" title="Costa Blanca Holiday">Costa Blanca Holiday</a> | <a href="accommodation-alcudia.html" title="Majorca Holiday">Majorca Holiday</a> | <a href="accommodation-tenerife.html" title="Tenerife Holiday">Tenerife Holiday</a> | <a href="accommodation-sands.html" title="Lazarote Holiday">Lazarote Holiday</a> | <a href="villa.html" title="Villa Holidays">Villa Holidays</a> | <a href="accommodation-alcudia.html" title="Apartment Holidays">Apartment Holidays</a> | <a href="accommodation-spain.html" title="Costa Blanca Villa Holidays">Costa Blanca Villa Holidays</a> | <a href="accommodation-alcudia.html" title="Alcudia, Majorca">Alcudia, Majorca</a> | <a href="accommodation-alcudia.html" title="Holidays in Majorca">Holidays in Majorca</a> | <a href="accommodation-alcudia.html" title="Holidays in Alcudia">Holidays in Alcudia</a> | <a href="accommodation-tenerife.html" title="Holidays in Tenerife">Holidays in Tenerife</a> | <a href="accommodation-sands.html" title="Holidays in Lanzarote">Holidays in Lanzarote</a> | <a href="accommodation-sands.html" title="Sands Beach Villa Holidays">Sands Beach Villa Holidays</a> | <a href="landing.html" title="Homes Abroad">Homes Abroad</a> | <a href="accommodation-spain.html" title="Beach Holidays in Spain">Beach Holidays in Spain</a> | <a href="accommodation-alcudia.html" title="Beach Holidays in Alcuida">Beach Holidays in Alcuida</a> | <a href="accommodation-sands.html" title="Beach Holidays in Lanzarote">Beach Holidays in Lanzarote</a> | <a href="golf-spain.html" title="Golfing Holidays in Costa Blanca">Golfing Holidays in Costa Blanca</a> | <a href="golf-alcudia.html" title="Golfing Holidays in Majorca">Golfing Holidays in Majorca</a> | <a href="corporate.html" title="Corporate Events">Corporate Events</a> <br><br> <a href=sitemap.html>Site Map</a> | <a href=linkpartners.php>Link Partners</a> | <a href="http://www.simply-global.com/privacy.php?comp=Properties Abroad.net" target=_blank>Privacy Policy</a> | <a href="http://www.simply-global.com/antispam.php?comp=Properties Abroad.net" target=_blank>Anti-Spam Policy</a></font><br> <font size=1>Developed by <a href=http://www.simply-global.com/ target=_blank title=Simply Global>Simply Global Group</a> </center> </div> </div> </center> </body> </html> This is the look I am trying to achieve, the cocktail glass and green need a drop shadow. This is my html: <!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=iso-8859-1" /> <title>Untitled Document</title> <link href="css/main.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="wrapper"> <div id="logo"></div> <div id="headerbar"></div> <div id="masthead"></div> <p>this is a test</p> </body> </html> This is my .css: /* CSS Document */ body { background-image:url(../images/background.jpg); font-family: Arial, Helvetica, sans-serif; font-size: 76%; } p { font-size: 1.0em;line-height: 120%;color:#333333; margin-right:1em; } div#wrapper { width: 682px; margin: auto; background:#fff; border-color:#333; border: solid; border-width:1px;} #headerbar { position:relative; top:15px; left:7px; width: 668px; height: 46px; background: url(../images/headerbar.jpg) no-repeat; z-index:1;} #masthead { position:relative; top:15px; width: 668px; height: 204px; margin:auto; margin-top:5px; background: url(../images/masthead.jpg) no-repeat ;z-index:1;} #logo { position:relative; top:0px; left:0px; background-image: url(../images/glassandgreen.jpg) no-repeat; z-index:2;} #contentwrapper{ width: 668px; margin: auto; padding:.7em 0 .7em 0; background:#fff; border-color:#333333; border: solid; border-width:1px; } Heya people, i got this z-index problem thats driving me nuts! Am hopeing someone can help I first got this working in IE7, then the client came back say wtf beacuse hes running IE6 ... I have a basic html page that has a drop down Nav (positioned absolutly, which drops down over the content area...) i have used the; <!--[if IE]> <link rel="stylesheet" type="text/css" href="css/IE7.css" /> <![endif]--> Fix to fix the problems between IE7 and Firefox... The z-index of the drop down is 20... and the z-index of the content is 10 (for firefox...) For the IE7 Style sheet linked, the dropdown z-index is 20 and the content z-index is -1 ... (this seems to be the only way IE7 will register the conent area to actualy be under the dropdown nav, but this will cause the content area to not show in firefox, hence the ifIE statement.) It seems though that IE6 is reacting to the (i know illegal character) z-index:-1; and not displaying the content. Is there a way i can filter a css sheet so it is only read by IE6, still having IE7 reading the IE7.css ? I know this is probably a terrible way of doing it also... any suggestions on a better way please shoot! Thanks heaps for taking the time to read my "way to long post" Cheers ubila |