CSS - Border Problem, Only Horizontal Or Vertical
This might be a dumb question ... but here it is. I have a red background on my page and a simple table with one cell. I applied, via CSS, a 5 px border in white (border: 5px #fff solid and I want the bottom border to be black (border-bottom: 5px #000 solid but I didn't expected that result : the bottom border gets angular delimitation on both sides (see the link below).
Sample of the table Here is the code used; CSS Code: <style> body { margin: 0; padding: 0; } div.main { background-color: red; height: 100%; width: 100%; } .maintable { border: 5px #fff solid; border-bottom: 5px #000 solid; } </style> HTML Code: <body> <div class='main'> <br /><br /> <center> <table border='0' cellspacing='0' cellpadding='0' class='maintable'> <tr> <td>Cell #1</td> </tr> </table> </center> </div> </body> What I want, is a clean table that, if the border-bottom is declared AFTER the border statement, it will color ALL the bottom white to black, and if border-bottom is declared BEFORE the border statement, it will color the bottom border black except both sides (left and right) that will remain white. I don't want angular sides like the one in the link, I want horizontal or vertical sides only, is that possible? Thanks a lot. Similar TutorialsThis is sort of an addendum to my earlier post on CSS, but with a new problem, now the problem is with IE. I am trying to get the SuckerFish drop downs to work and have been successful in Firefox, but IE is giving me problems. The best thing to do is look at it in action: http://www.forma3.com/stuff/css/index-v1.2.html http://www.forma3.com/stuff/css/css/index-v1.2.css I am guessing it is related to the parent child relationship in IE, namely the drop down is adopting the style (float: left) that is set for the horizontal menu. I had to put in an underscore for the "#nav li" since it was causing problems in Mozilla. Unfortunately, this causes a validation error. PHP Code: echo "<div class=\"tbody2\">"; echo "<div class=\"client\">Client<div class=\"clientname\">Client Name</div></div>"; echo "</div>"; Using the above code it displays Client on top of Client Name. How do I make Client name appear to the right of Client using only css? Hello everyone, I'm trying to center a fixed size div both vertically and horizontally. Everything would work, but, as usual ... IE doesn't know how to handle it properly. Let me explain: 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 name="robots" content="ALL, INDEX, FOLLOW" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <title>Title</title> <style type="text/css"> body, html { width: 100%; height: 100%; margin: 0; padding: 0; } .d1 { width: 1px; height: 1px; position: absolute; left: 50%; top: 50%; } .d2 { width: 700px; height: 300px; background-color: black; position: relative; left: -350px; top: -150px; } </style> </head> <body> <div class="d1"><div class="d2"></div></div> </body> </html> If you copy and paste it to explorer, everything might even look good. But if you resize the browser to be just a little bit larger than the black div, you'll notice that both vertical and horizontal scrollbars appear. Why is this happening? How do i prevent IE from acting stupid? I've tested with ie6 and ie7. Hi, I would like to center a div inside another div (both vertical and horizontal) in such a way that the inner div would move/reside depending on the content inside it. In other words I have two divs; outerDiv and innerDiv. InnerDiv will have more html inside it and I would like innerDiv to always be in the middle of outerDiv regardless of its content. I did some research on the internet and I managed to achieve the following: Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style type="text/css"> div#mbBackground{ display:block; position: fixed; top: 0px; left: 0px; width: 100% !important; height: 100% !important; margin: 0 auto; z-index: 2; background-color: #c00; } div#mbBackground div#mbWindow{ position:fixed; top: 40%; left: 40%; z-index: 2; margin: 0 auto !important; margin-left: 40%; margin-top: 40%; height: 200px; width: 200px; background-color: #fff; color: #000000; } </style> </head> <body> <!-- start: message box --> <div id="mbBackground"> <div id="mbWindow"> Please Wait </div> </div> <!-- end: message box --> </body> </html> However with the above code, innerDiv does not re-position it-self correctly based on its content. Is what I need possible? Regards, Sim085 hi all, need help to change this from vertical to horizontal menu. code: <html> <head> <title>Test</title> <script language="JavaScript" type="text/javascript"> // JavaScript Document startList = function() { if (document.all&&document.getElementById) { navRoot = document.getElementById("nav"); for (i=0; i<navRoot.childNodes.length; i++) { node = navRoot.childNodes[i]; if (node.nodeName=="LI") { node.onmouseover=function() { this.className+=" over"; } node.onmouseout=function() { this.className=this.className.replace(" over", ""); } } } } } window.onload=startList; </script> <style type="text/css"> body { font: normal 11px verdana; } ul { margin: 0; padding: 0; list-style: none; width: 150px; /* Width of Menu Items */ border-bottom: 1px solid #ccc; } ul li { position: relative; } li ul { position: absolute; left: 149px; /* Set 1px less than menu width */ top: 0; display: none; } /* Styles for Menu Items */ ul li a { display: block; text-decoration: none; color: #777; background: red; /* IE6 Bug */ padding: 5px; border: 1px solid #ccc; border-bottom: 0; } /* Fix IE. Hide from IE Mac \*/ * html ul li { float: left; height: 1%; } * html ul li a { height: 1%; } /* End */ ul li a:hover { color: #E2144A; background: green; } /* Hover Styles */ li ul li a { padding: 2px 5px; } /* Sub Menu Styles */ li:hover ul, li.over ul { display: block; } /* The magic */ </style> </head> <body> <ul id="nav"> <li><a href="#">Home</a></li> <li><a href="#">About</a> <ul> <li><a href="#">History</a></li> <li><a href="#">Team</a></li> <li><a href="#">Offices</a></li> </ul> </li> <li><a href="#">Services</a> <ul> <li><a href="#">Web Design</a></li> <li><a href="#">Internet Marketing</a></li> <li><a href="#">Hosting</a></li> <li><a href="#">Domain Names</a></li> <li><a href="#">Broadband</a></li> </ul> </li> <li><a href="#">Contact Us</a> <ul> <li><a href="#">United Kingdom</a></li> <li><a href="#">France</a></li> <li><a href="#">USA</a></li> <li><a href="#">Australia</a></li> </ul> </li> </ul> </body> </html> any help would be appreciated! Thanks!! We are redesigning and I have a CSS menu I like that runs vertically. I need a version that would also work running horizontal, with the drop downs underneath. Is this possible by tweaking my existing code? I got the code I am using from alistapart and I am not really too familiar with it. You can see it here http://www.caribbean-on-line.com/tables.html Thanks - Anthony Hi guys I'm having trouble trying to convert a CSS navbar, which renders vertically, into an horizontal navbar. Look, here is the HTML Code, and following, the CSS code Code: <div id="menutoolbar"> <ul> <li><a href="link1.html">Opcion1</a></li> <li><a href="link2.html">Opcion2</a></li> <li><a href="link3.html">Opcion3</a></li> </ul> </div> The CSS Code Code: div#menutoolbar { height: auto; width: auto; } div#menutoolbar li { height: 21px; width: 32px; margin: 0px; font-family: Tahoma; font-size: small; text-align: center; line-height: 65px; list-style-type: none; background-image: url(http://alf.openu.ac.il/www_eng/icon/button.gif); background-position: center top; background-repeat: no-repeat; } div#menutoolbar li a { font-weight: bold; display: block; width: 100%; height: 100%; text-decoration: none; } div#menutoolbar li a:link { color: blue: } div#menutoolbar li a:visited { color: #900; } div#menutoolbar li a:hover { font-weight: bold; color: red; } div#menutoolbar li a:active { color: black; } Does any1 know which code I have to modify to transform this vertical toolbar into horizontal ? Or maybe to point me to an easy example for doing an horizontal set of css buttons like this example... Thanks... see he http://www.christiancouriernewspaper.com/blogbase/contactpage.php What I want is for 7 fields (Name-State) on the Left just how they are Then I want the remaining fields (Country- the spam question) on the right I would like to have it so it all fits on one page without having to scroll any ideas/suggestions? the .css file is below Code: /* ---------------------------------------------------------------- GBCF-V3 BLUE STYLE SHEET - MIKE CHERIM HTTP://GREEN-BEAST.COM ---------------------------------------------------------------- To use for testing, this stylesheet must be named default.css */ /* === form div and elements ======================================= */ #form-div { font-family : verdana, helvetica, palatino sans, tahoma, arial, sans-serif; width : 70%; margin : auto; color : #FF8C00 ; line-height : 1.2em; } #form-div p.form-footer { margin : -35px 2px 20px 13px; } #form-div p.form-footer a { color : #003366; } #form-div p.form-footer a:hover, #form-div p.form-footer a:focus, #form-div p.form-footer a:active { color : #000; text-decoration : none; } #form-div p.form-footer a:focus, #form-div p.form-footer a:active { background-color : #eee; } /* === form div link styles ======================================== */ #form-div a { color : #FF6600; } #form-div a:hover, #form-div a:focus, #form-div a:active { color : #000; text-decoration : none; } #form-div a:focus, #form-div a:active { background-color : #eee; } /* === success and error message/results box ======================= */ #form-div p.success, #form-div p.error, #form-div p.center { color : #fff; /* color : #000; (lite colors option - uncomment to use) */ padding : 1px 4px; border : 1px solid #000; background-color : #003366; /* background-color : #bfccd9; (lite colors option - uncomment to use) */ margin : 10px 3px; text-align : center; } #form-div p.error { background-color : #bb0000; /* background-color : #edbaba; (lite colors option - uncomment to use) */ } #form-div p.error a, #form-div p.success a { color : #ffff7f; } #form-div p.center { text-align : center; background-color : #edbaba; color : #000; margin-top : -3px; padding : 0px 4px; } #form-div p.error a:hover, #form-div p.error a:focus, #form-div p.error a:active, #form-div p.success a:hover, #form-div p.success a:focus, #form-div p.success a:active { color : #eee; background-color : #bb0000; } #form-div p.success a:hover, #form-div p.success a:focus, #form-div p.success a:active { background-color : #003366; } /* === structural form elements ==================================== */ form#gbcf-form { } fieldset.main-set, fieldset.req-set, fieldset.opt-set { border : 1px solid #eee; padding : 5px; } /* === textural form elements ====================================== */ #form-div legend { font-weight : bold; } #form-div legend span { } legend.main-legend { color : #777; font-size : 100%; } legend.req-legend, legend.opt-legend { color : #777; font-size : 60%; } legend.main-legend span { } legend.main-legend { } legend.req-legend span { } legend.req-legend { margin-left : -2px; } legend.opt-legend span { } legend.opt-legend { margin-left : -2px; } label.req-label, label.opt-label { color : #FF6600; font-size : 60%; } label.opt-label.check { float : right; padding : 0; margin : 1px 4px; cursor : pointer; } label.opt-label.main-label { margin : 0 2px; font-weight : bold; font-size : 75%; } label.opt-label.main-label span { font-weight : normal; color : #FF6600; font-sze : 60%; } label.opt-label.main-label span.req, label span.req { font-weight : bold; color : #c70000; } label.req-label.explain { color : #666; font-size : .8em; } label.req-label.explain:hover { color : #000; } /* === control and interface form elements ========================= */ /* note: In this section you will see the hover/focus styles for the inputs. For example: input:hover, input:focus. You will also see these names applied as classes: input.hover, input,focus, for example. This is not done by mistake. Those classes are needed for the JavaScript focus script (files/focus.js) for IE 7 and older. */ input.text-long.address, input.text-long.address:hover, input.text-long.address:focus, input.text-long.address.hover, input.text-long.address.focus { border-bottom : 0; margin-bottom : 0; padding-bottom : 2px; border-bottom : 1px dotted #bbb; } input.text-long.address2, input.text-long.address2:hover, input.text-long.address2:focus, input.text-long.address2.hover, input.text-long.address2.focus { border-top : 0; margin-top : 0; padding-top : 2px; border-top : 1px dotted #bbb; } input.checkbox { border : 1px solid #999; width : .9em; height :.9em; padding : 0; margin : 0; cursor : pointer; } input.checkbox:hover, input.checkbox.hover, input.checkbox:focus, input.checkbox.focus { border : 1px solid #666; } input.text-short, input.text-med, input.text-long, select.select, textarea.textarea { font : 0.6em verdana, helvetica, palatino sans, tahoma, arial, sans-serif; border : 1px solid #999; background-color : #fffffe; cursor : text; padding : 1px 2px; } select.select { padding : 1px 0; } input.text-short { width : 75px; } input.text-med, select.select { width : 150px; } input.text-long { width : 175px; } textarea.textarea { width : 220px; height : 100px; } select.select, select.select option { cursor : pointer; } input.text-short:focus, input.text-short.focus, input.text-med:focus, input.text-med.focus, input.text-long:focus, input.text-long.focus, select.select:focus, input.select.focus, textarea.textarea:focus, textarea.textarea.focus { border : 1px solid #666; background-color : #ffe; } input.button { font : 0.9em verdana, helvetica, palatino sans, tahoma, arial, sans-serif; font-weight : bold; margin-top : 8px; padding : 1px 10px; cursor : pointer; float : right; clear : both; color : #003366; } input.button:hover, input.button.hover, input.button:focus, input.button.focus { color : #333; } /* because IE6 sucks - if you have a conditionally served IE6 style sheet add this to it */ * html input.button { border : 1px solid #666; } /* EOF - Created by Mike Cherim @ http://green-beast.com =========== */ thanks ahead of time!!! Hi there, Is it possible to set a border's width? when I say width I mean it's horizontal width not height. Many thanks Hi. Have created some simple tabs using table cells. Active tab should have bottom-border color equal to page background-color. Non-active tabs should have bottom-border=black. Works fine in IE, but does not work very well in Firefox. If I remove the border-collapse:collapse on the table, then firefox also work... but I would like to be able to keep the 1px border between each table cell. So is there a way to make this work in both IE and Firefox... and hopefully most other browsers... See code below: Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd"> <html> <head> <style type="text/css"> a.menu_top:link {color: #000000; text-decoration: none;} a.menu_top:visited {color: #000000; text-decoration: none;} a.menu_top:hover {color: #000000; text-decoration: none;} a.menu_top:active {color: #000000; text-decoration: none;} td.menu_top_passive { background-color: #777; border-left: 1px #000000 solid; border-right: 1px #000000 solid; border-top: 1px #000000 solid; border-bottom: 1px #000000 solid; text-align: center; cursor:pointer; font-weight: bold; padding: 5px 20px 5px 20px; margin: 0; } td.menu_top_active { background-color: #bbb; border-left: 1px #000000 solid; border-right: 1px #000000 solid; border-top: 1px #000000 solid; border-bottom: 1px #bbb solid; text-align: center; cursor:pointer; font-weight: bold; padding: 5px 20px 5px 20px; margin: 0; } </style> <script language="JavaScript"> function change(id, url) { for (i=1; i<6; i++){ eval("document.getElementById("+i+").className='menu_top_passive'"); } eval("document.getElementById("+id+").className='menu_top_active'"); } </script> </head> <body style="margin:0; padding:0; background-color:#bbb;"> <br><br> <center> 1. Load the page.<br> 2. Click Item 4.<br> 3. Click Item 2.<br><br> Why is the bottom border of the menuelements (table cells) not getting correct in Firefox?<br> None-active menuelements should have a border-bottom = black, active should have same bottom-border as page.<br> Notice that I use border-collapse on the table in order to get the cell-border 1px thick between the menuitems.<br> If I remove border-collapse, then there is no strange behaviour in Firefox.<br> Any way to get this working in Firefox without breaking it in IE? </center> <br><br><br> <table border="0" cellpadding="0" cellspacing="0" align="center" style="border-collapse:collapse;"> <tr> <td id="1" nowrap class="menu_top_active" onClick="change('1');"><a href="javascript:;" class="menu_top">Item 1</a></td> <td id="2" nowrap class="menu_top_passive" onClick="change('2');"><a href="javascript:;" class="menu_top">Item 2</a></td> <td id="3" nowrap class="menu_top_passive" onClick="change('3');"><a href="javascript:;" class="menu_top">Item 3</a></td> <td id="4" nowrap class="menu_top_passive" onClick="change('4');"><a href="javascript:;" class="menu_top">Item 4</a></td> <td id="5" nowrap class="menu_top_passive" onClick="change('5');"><a href="javascript:;" class="menu_top">Item 5</a></td> </tr> </table> </body> </html> Hi, Why there is such a big vertical space between table and element (div class="frm_container) in Internet Explorer 6. There is no space like that in Mozilla Firefox. What can I do about it? Thank you. Code: <head> <title>Title</title> <style type="text/css"> .frm_container { padding: 0px; margin: 0px; border: 1px solid #000; background-color: #fff; } </style> </head><body><div class="frm_container"> <form name="register" enctype="multipart/form-data" method="post" > <table><tr> <td align="right">Username:</td><td><input type="text" name="user" /></td> </tr></table> </form></div></body></html> Hi guys, I've got a table cell in which I want to display two pieces of text - one aligned top left, one aligned bottom right. Now, I can't for the life of me get the one to align to the bottom right. I can align the first bit of text to the top left fine, just not the second to to the bottom right. At the moment I've got this code: Code: <html> <head> </head> <body> <table width="350" height="112" cellspacing="0" cellpadding="0"> <tr> <td style="vertical-align: top" background="templates/<?=$templatedir?>/images/domain_box_05.gif" width="350" height="112"> <div style="height: 56px; padding: 10px 0px 0px 20px; border: 1px; border-style: solid"> test1 </div> <div style="height: 56px; border: 1px; border-style: solid"> [<a href="pricing.php" target="_blank" onClick='window.open("/pricing.php","pricing","width=475,height=415,status=yes,scrollbars=1,resizable=1");return false;'> test2</a>] </div> </form> </td> </tr> </table> </body> </html> I've just got the borders on there at the moment to see exactly where the div's are for debug purposes. I've tried using vertical-align: bottom, but it just doesn't do anything. Any help would be greatly appreciated, thanks I would like a column to span the entire page vertically. When I browse my website on firefox, the page spans twice as long as the page. (www.skysupplyusa.com/a.php) Any advice? Code: #sidebar { float: left; background-color:#000; width: 20%; height: 100%; } #content{ background-color:#FFF; width: 80%; min-height: 100%; height:auto; float: right; text-align:left; } /* Hack for IE */ * html #Content { height: 100%; } /* End IE Hack */ body { top:0; height: 100%; width: 100%; margin: 0; padding:0; text-align:left; font-family: Arial, Helvetica, sans-serif; font-size:14px; line-height:1.5em; background-color: #DDD6CC; } Hi. So I'm trying to get the image div to vertical-align against the text div, within a wrapper div. It currently works fine in Firefox and IE8, but in IE7 and below it displays wrong. I tried to make it work on IE using some workarounds I found but I managed to make it worse. Can anyone help me adapt this code so it works on both firefox AND IE6+ ? Much appreciated! Thanks! Code (since I can't link to it...): Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Test</title> <style type="text/css"> div { border: solid 1px black; } .wrapper { padding: 10px; display: table; } .image { width: 100px; vertical-align: middle; display: table-cell; } .text { margin-left: 100px; padding-left: 10px; display: table-cell; } </style> </head> <body> <div class="wrapper"> <div class="image"> <img src="" alt="Test Image"> </div> <div class="text"> Foo bar Foo bar Foo bar Foo bar Foo bar<br> Foo bar Foo bar Foo bar Foo bar Foo bar<br> Foo bar Foo bar Foo bar Foo bar Foo bar<br> Foo bar Foo bar Foo bar Foo bar Foo bar<br> Foo bar Foo bar Foo bar Foo bar Foo bar<br> </div> </div> </body> </html> Hi there! I recently decided to start designing in Web 2.0 to the best of my ability... including appearance, organization, and all of that good stuff. However, I am running into a rather annoying problem. At the top of my website, I have a horizontally-aligned list for navigation. Unfortunately, as my code is... organized... Firefox (Not IE8-- gasp!) is treating my line breaks as an extra . As a result, the little separators aren't aligned correctly. HTML Code: Original - HTML Code <div id="bannerNav"> <ul> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> </ul> </div> <div id="bannerNav"> <ul> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> <li><a href="#">Link</a></li> </ul> </div> CSS Code: Original - CSS Code #bannerNav { background: #000 url('images/topNav.gif') repeat-x; border-bottom: 1px solid #FFF; font-size: 18px; color: #EEE; line-height: 40px; height: 40px; width: 100%; } #bannerNav ul { list-style: none; display: inline; } #bannerNav li { background: transparent url('images/topNavLinkSeparator.gif') no-repeat right; display: inline; } #bannerNav li a { padding: 5px 20px 5px 20px; }
Does my problem make any sense? Because an extra space is being added, all of my links are being shifted to the right one space's width, so separators aren't centered anymore. Any help would be greatly appreciated! Thanks! Hi people. In need of some help with this horizontal navigation. IE7 positions everything correctly, but when testing in firefox, chrome and safari the issues then arise. Got two images of the working styled in IE7 which is the way I was planning on having it and then the non working menu in other browsers... Live example: please click here for live example Code Code: /* Start Menu */ #topmenu { height: 32px; margin-bottom:20px; background: #FFFFFF url(menu_bg.png) repeat-x top; width: 100%; overflow: hidden; float: left; } #topmenu li { border-left: 1px solid #dedbd1; float: left; line-height: 32px; } #topmenu li a { color: #333333; display: block; margin: 0 1px 0 0; padding: 0 15px; } #topmenu li a:hover, #topmenu li.active a { color: #425775; text-decoration: none; } #nav, #nav ul { padding: 0; float:left; list-style: none; } #nav { padding: 0; } #nav a { display: block; } #nav li { float: left; line-height:32px; } #nav li a:hover { background: none; background: #FFFFFF url(menu_bgmo.png) repeat-x top; } #nav li ul { position: absolute; width: 100%; left: -999em; padding-top:1px; overflow: hidden; } #nav li:hover ul, #nav li.sfhover ul { left: auto; z-index:1000; } #nav li ul li { border-bottom:1px solid #dedbd1; border-left:1px solid #dedbd1; border-right:1px solid #dedbd1; line-height:32px; width: 100%; overflow: hidden; } #nav li:hover, #nav li.hover { position: static; } #nav li ul ul { margin: -29px 0 0 100%; overflow: hidden; } #nav li:hover ul ul, #nav li.sfhover ul ul { left: -999em; } #nav li:hover ul, #nav li li:hover ul { left: auto; } #nav li:hover ul ul, #nav li:hover ul ul ul { left: -999em; } #nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul { left: auto; overflow: hidden; } /* Finish Menu */ Any help would be great. Thanks very much in advance! terra Hi Everyone! Here is a quick problem for any CSS gurus out there! I have created a horizontal navigation bar which has a horizontal drop down subnav on roll over of the top nav links The top nav don't link to a page but only act to display the subnav - dont worry I have posted the code below! I am having real trouble with one aspect - when you navigate to a page on the subnav (e.g. the "webcam" page) I want the subnav links for that section (eg "watch") to be displayed rather than only appearing when you roll over one of top navs links. Has anyone got any ideas of if this is possible with the way that I have structured the nav currently? Any help would be much appreciated! Thanks in advance! Here is the code Code: <style type="text/css"> * { margin: 0; padding: 0; } html {height:100%;} body{ background-color: #42530D; font-family: Arial, Helvetica, sans-serif; font-size: 0.75em; height:100%; } p { padding:5px; list-style: inside disc; font-size: 1em; } #wrap{ width: 784px; margin: 0 auto; border: 0; margin-bottom: 10px; } #top_text{ color:#FFFFFF; padding: 6px 78px 5px 0; font-size: 11px; text-align: right; } /* Here is the code for the nav! */ #container { position: relative; font-size: 1.2em; background-color:#5F5C47; position: relative; height:52px; } #navbar { background-color: #C1C1B0; position: absolute; float: left; padding: 0; width:100%; text-transform:capitalize; } #navbar li { list-style: none; float: left; text-transform:capitalize; } #navbar li a { display: block; text-decoration: none; color: #333333; padding:5px 10px 5px 10px; font-weight: normal; text-transform:capitalize; } #navbar li a:hover { color: #FFFFFF; background-color:#5F5C47; } #navbar li ul { display: none; } #navbar li:hover ul, #navbar li.hover ul { color: #FFFFFF; position: absolute; display: inline; left: 0; width: 100%; margin: 0; padding: 0; } #navbar li:hover li, #navbar li.hover li { float: left; } #navbar li:hover li a, #navbar li.hover li a { color: #FFFFFF; } #navbar li li a:hover { color: #333333; background-color: #C1C1B0;} </style> <script> //Here is the javascript for the nav! sfHover = function() { var sfEls = document.getElementById("navbar").getElementsByTagName("li"); for (var i=0; i<sfEls.length; i++) { sfEls[i].onmouseover=function() { this.className+=" hover"; } sfEls[i].onmouseout=function() { this.className=this.className.replace(new RegExp(" hover\\b"), ""); } } } if (window.attachEvent) window.attachEvent("onload", sfHover); </script> </head> <body> <div id="wrap"> <div id="top_text"></div> <div id="bodywrap"> <div id="navwrap"> <div id="container"> <ul id="navbar"> <li><a href="#">HOME</a> </li> <li><a href="#">WATCH</a> <ul> <li><a href="webcam/index.htm">WEBCAM</a></li> <li><a href="index.htm">GALLERY</a></li> </ul> </li> <li><a href="#">EXPLORE</a> <ul> <li><a href="projects/index.htm">PROJECTS</a></li> <li><a href="tours/index.htm">VIRTUAL TOURS</a></li> <li><a href="games/index.htm">GAMES</a></li> </ul> </li> <li><a href="#">LISTEN</a> <ul> <li><a href="podcasts/index.htm">PODCASTS</a></li> </ul> </li> <li><a href="#">LEARN</a> <ul> <li><a href="blog/index.htm">BLOG</a></li> <li><a href="about">ABOUT</a></li> <li><a href="projects/index.htm">PROJECTS</a></li> </ul> </li> <li><a href="#">PARTICIPATE</a> <ul> <li><a href="get-involved.htm">GET INVOLVED</a></li> <li><a href="user-gallery.htm">USER GALLERY</a></li> <li><a href="forum/index.htm">FORUM</a></li> <li><a href="../send-a-postcard/index.htm">SEND A POSTCARD</a></li> </ul> </li> <li><a href="#">SUPPORT</a> <ul> <li><a href="support/index.htm">DONATE</a></li> <li><a href="other-ways-of-helping.htm">OTHER WAYS OF HELPING</a></li> </ul> </li> </ul> </div> </div> </div> </div> </body> </html> here is the code that I have based my menu on, http://www*dynamicdrive*com/style/csslibrary/item/suckertree-menu-horizontal . What I changed was the ".suckertreemenu ul li a" style width to auto instead of 90px. I need the style to auto so that the width of each button is proportionate to the text in the button. My problem is that in IE6 each button stretches across the entire area. Does anyone have a hack for this? Any help is greatly appreciated. Thanks See the last post for the solution. Before I get to the CSS and the markup, some background info: I am rebuilding a web-based database to be all-CSS (except for the tabular data, of course). I want to make it accessible in Safari, Firefox/Mac and Firefox/Win. Anything else would be a plus but is not necessary. The markup relies heavily on PHP. The problem lies with a horizontal nav bar I have at the top of every page. I'm using a modified version of the Suckerfish Dropdown that you can find on either HTML Dog or A List Apart. In Safari, this works to perfection. In Firefox/Mac, the alignment is a little off (which I'll fix later), but other than that works pretty well. In Firefox/Win, this absolutely blows up all over the place. There are a lot of symptoms to describe, so for now I'll provide the CSS and the markup, and if more description is necessary, I'll provide it as best I can. Without further ado, here's the CSS for the menu: Code: #main_menu { top: 0; left: 0; position: fixed; width: 100%; background: #D8DCEF; margin: 0; padding: 1px 0; text-align: left; border: 1px dotted #446CB4; border-width: 0 0 1px 1px; } #nav, #nav ul { float: left; list-style: none; padding: 0; margin: 0 2px; font-weight: bold; } #nav a { color: #111; } #nav li, #nav li.search { float: left; padding: 1px 4px; margin: 0 2px; border: 1px solid transparent; background: transparent; text-align: center; } #nav li.search { padding: 0 4px; border: 0; } #nav li:hover { border-color: #3466B1; background: #fff; } #nav li.search:hover { background: transparent; } #nav li span { font-size: 9px; line-height: 11px; } #nav li ul { position: absolute; left: -999em; width: 150px; font-weight: normal; border: 1px solid #3466B1; margin: 1px 0 0 0; } #nav li li { width: 142px; margin: 0; padding: 0 4px; line-height: 1.5em; border: 0; background: #fff; text-align: left; } #nav li li a { display: block; width: 142px; text-decoration: none; padding: 0; } #nav li li a:hover { color: blue; } #nav li ul ul { margin: -1.6em 0 0 150px; } #nav li:hover ul ul, #nav li:hover ul ul ul, #nav li.sfhover ul ul, #nav li.sfhover ul ul ul { left: -999em; } #nav li:hover ul, #nav li li:hover ul, #nav li li li:hover ul, #nav li.sfhover ul, #nav li li.sfhover ul, #nav li li li.sfhover ul { left: auto; } #nav li li:hover, #nav li.sfhover { background: #D8DCEF; } #nav ul.end { width: 300px; } #nav ul.end li, #nav ul.end li a { width: 292px; } #nav ul.long { width: 165px; height: 300px; overflow: auto; } #nav ul.long li, #nav ul.long li a { width: 142px; } #nav li.flyout { background: url(../images/icons/arrow.gif) center right no-repeat #fff; } #nav li.flyout:hover { background: url(../images/icons/arrow.gif) center right no-repeat #D8DCEF; } #nav li.separate { border-top: 1px solid #3466B1; background: #EFF1F9; font-style: italic; } And here's an anonymized version of the markup: Code: <div id="main_menu"> <ul id="nav"> <li>Menu 1<ul> <li><a href="#">Choice 1</a></li> <li><a href="#">Choice 2</a></li> </ul> </li> <li>Menu 2<ul> <li><a href="#">Choice 1</a></li> <li class="flyout">Submenu 2a<ul class="end"> <li><a href="#">Subchoice 1</a></li> <li><a href="#">Subchoice 2</a></li> <li><a href="#">Subchoice 3</a></li> </ul> </li> <li><a href="#">Choice 2</a></li> </ul> </li> <li>Menu 3<ul> <li><a href="#">Choice 1</a></li> <li><a href="#">Choice 2</a></li> <li><a href="#">Choice 3</a></li> </ul> </li> <li>Menu 4<ul> <li><a href="#">Choice 1</a></li> <li><a href="#">Choice 2</a></li> </ul> </li> <li class="search"><form name="search" action=""><input name="name_search" type="text" onFocus="if(this.value=='Search')value=''" onBlur="if(this.value=='')value='Search';" value="Search" size="25"> <input type="submit" name="Submit" value="Go"></form></li> </ul> </div> When I comment out the main menu, the pages load just fine, so it has to be somewhere in the code for the main menu (or that means it's somewhere else entirely). Thanks in advance for taking the time to look at my code, and any help at all is extremely appreciated. Hi, I am wanting a site that is vertically and horizontally centered. I have achieved to vertically center in both FF and IE but now I am having horizontal centering problems which is usually the easy part. I have tried many different methods and I am not able to center it in FF but I am able to center in IE. If someone could help me that would be great. Here my page: jacenta.com/TESTING/ Here is the code: Code: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <title>Welcome Canada - Immigration Services Inc.</title> <style type="text/css"> body, html { height:100%; } body { background-color:#dddddd; } #outer { display:table; height:100%; #position:relative; overflow:visible; } #inner { #position:absolute; _top:50%; display:table-cell; vertical-align: middle; text-align:center; } #inner2 { #position:relative; #top:-50%; } #container { width:100%; } #box { background-color:#FFFFFF; width:700px; height:500px; text-align:left; } </style> </head> <body> <div id="outer"> <div id="inner"> <div id="inner2"> <div id="container"> <div id="box"> Text </div> </div> </div> </div> </div> </body> </html> |