CSS - Navbar Completely In Css?
Well I trying to build a navbar and I want it to be completely in CSS so I can have it in my styling sheet and only have to edit it once when I add a new page to the navbar. I have it figured out so the formatting for it is in the CSS but the actual items and links to pages are in the HTML, and I want the format and items in the CSS.
Here's my CSS for the navbar formatting: Code: #navbar ul { margin: 10px auto auto auto; padding: 6px; list-style-type: none; text-align: left; background-color: #000; font-family: arial; } #navbar ul li { display: inline; font-family: arial; } #navbar ul li a { text-decoration: none; padding: .2em 1em; color: #ffffff; background-color: #000000; font-family: arial; } #navbar ul li a:hover { color: #000000; background-color: #ffffff; font-family: arial; } And here's the code I have in the body of my HTML that adds each of the items to the navbar: Code: <div id="navbar"> <ul> <li><a href="index.html">Home</a></li> <li><a href="gallery.html">Gallery</a></li> <li><a href="irc.html">IRC</a></li> <li><a href="about.html">About</a></li> <li><a href="contact.html">Contact</a></li> </ul> </div> Anyone have any ideas on how I would do this? Thanks. Similar Tutorialshttp://energetic.bluekazoo.eu/ Hi all. Hope someone can help. The above site has a strange quirk with there being a 20px gap to the right of the image which try as I might, I cannot seem to resolve. Been looking at it so long now that I reckon I can't see the wood for the trees. All help would be gratefully appreciated. Mark. I've been doing a bit of professional work for just a little while now (about a month and a half) as a summer job, but I'm just completely lost at this point and I have a clue as to how to handle this problem. Programming and styling works fine on my main computer (which has no special mods as far as I know) as well as one of my laptops (well family laptop) However, on my father's work laptop, Both macs as well as the computers for both my clients, the CSS stylesheets aren't working properly at all, almost as if certain commands from the stylesheet are ignored. On my dad's work laptop, one of my DIV tabs (the menu bar) width properties (15%) is almost completely ignored. The width of the DIV is actually extended to the point where it's pushed underneath the main content page. Changing the width value to 0 actually does nothing. I'm at a loss. On both my clients computers the main body DIV min-height value doesn't load properly, creating a small space of colour at the top of the page, while the rest of the actual content is properly placed below it. This div holds the background and "boundaries" for the nav bad and the main content. Both of which are not present. Both my father's work laptop and my clients computers use the latest version of IE.and I get these strange errors. I also get the second error when using Safari on both macs. God I love Firefox... it loads everything properly.... Either way, I'm confused as confused can be. HELP!!!! I'm completely stuck with my current web design. Pretty sure I'm not doing this the most efficient way, so any suggestions are helpful. My intention is to have the following: 1) an overall pg wrapper that sets width and centering 2) header 3) nav/links area 4) main content 5) footer My probs are all over the place. First, I have wrapper divs that aren't showing up. The content that is supposed to be inside these divs doesn't appear to be in them, so I guess the divs are empty. But I have no idea why this is happening. There is supposed to be a blue bg behind my links section. It's not showing up in IE6. The #main div --which should be a wrapper that contains all the thumbnails of the page -- is empty and showing up mid-way down the page behind all the thumbnails in IE6. If someone can start with these issues and help me, I would be forever grateful! XHTML is attached in a txt file and CSS is posted below. (I added the obnoxious bg colors & borders to divs intentionally to see where things are showing up.) Code: * {margin:0;padding:0} #wrapper { border: #f09 dashed 3px; background-color: yellow; text-align: left; margin: 50px auto; padding: 0; width: 810px; } #header { border: blue dashed 1px; background-color: pink; padding: 0px; margin: 5px; } #header p { display: inline; } #intro { border: 1px solid black; background-color: purple; } #intro p{ font: bold 80% arial; position: absolute; left: auto; top: 85px; color: #fff; padding: 15px 0 0 435px; margin: 0 0 25px 0; width: 350px; line-height: 1.4em; border: 1px red solid; } #nav { background-color: #09f; border: solid red 1px; min-height: 30px; } ul { float: right; list-style-type: none; margin: 10px 0; } li { font: bold 12px arial; display: inline; padding: 0 17px 0 17px; border-right: 1px solid white; } span { position:absolute; top: -100000px; } #main { border: thin green solid; padding: 25px 25px 0 25px; background-color: #eee; min-height: 1000px; } div.work { float: left; padding: 10px; /*border: thin red solid;*/ -moz-border-radius: 15px; -webkit-border-radius: 15px; background-color: white; margin: 0 0 25px 0; } div.work img { display: inline; border: 4px black solid; float: left; } div.work p { margin: 0; padding: 10px 0 0 25px; line-height: 1.3em; font: 100% arial; float: left; border: thin purple solid; width: 400px; } div.work h1 { margin: 25px 0 0 0; padding: 10px 0 0 25px; display: inline; font: 125% arial; color: #ff8529; width: 400px; float: left; border: thin green solid; } div.work h2 { display: inline; margin: 0; padding: 10px 0 0 25px; font: 85% arial; width: 400px; float: left; border: thin black solid; } Code: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "removed link"> <html xmlns="removed link" xml:lang="en" lang="en"> <head> <title>Page Title here</title> <link rel="stylesheet" type="text/css" href="divtest.css" media="screen"/> </head> <body> <!--begin overall page wrapper; sets width and centering--> <div id="wrapper"> <!--begin header--> <div id="header"> <p><img src="assets/logoHolder.jpg" alt="Logo alt text here" /><span>Logo description here</span></p> <div id="intro"> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do ei usmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit.</p> </div> </div> <!--end header--> <!--begin nav--> <div id="nav"><ul><li><a href="#">Link 1 goes here</a></li><li><a href="#">Link 2 goes here</a></li></ul></div> <!--end nav--> <!--begin main content area--> <div id="main"> <div class="work"> <img src="assets/placeholder.gif" /> <h1>Heading goes here</h1> <h2>Subhead goes here</h2> <p>Supporting information goes here.</p> </div> <div class="work"> <img src="assets/placeholder.gif" /> <h1>Heading goes here</h1> <h2>Subhead goes here</h2> <p>Supporting information goes here.</p> </div> <div class="work"> <img src="assets/placeholder.gif" /> <h1>Heading goes here</h1> <h2>Subhead goes here</h2> <p>Supporting information goes here.</p> </div> <div class="work"> <img src="assets/placeholder.gif" /> <h1>Heading goes here</h1> <h2>Subhead goes here</h2> <p>Supporting information goes here.</p> </div> <div class="work"> <img src="assets/placeholder.gif" /> <h1>Heading goes here</h1> <h2>Subhead goes here</h2> <p>Supporting information goes here.</p> </div> <div class="work"> <img src="assets/placeholder.gif" /> <h1>Heading goes here</h1> <h2>Subhead goes here</h2> <p>Supporting information goes here.</p> </div> </div> <!--end of main container--> </div> </body> </html> Please look at this page in Firefox: http://www.pacunionsonoma.com/real-estate-listings.asp?city=Santa-Rosa Notice the links up to the top area that read Showing Appointment, Listing Images, etc. No matter what I do I can't get them to appear within the respective property listing div. It must be some inheritance issue but I just can't figure it out. Thanks. http://loganagency.com/temp/index.php Please click there and view in IE and then in Firefox. The div is completely shifted upward and the baber overlaps the text in FF but looks fine in IE. What is wrong and how can I avoid this in the future? While we are on the subject, what gives with IE vs FF web design? Everyone posts errors here. Is there a tutorial or post that describes the reasons they process code so differently and ways to prevent it? You would need to look in Internet Explorer (probably on windows) for the bug to show up. I've posted in css, because I assume it's something to do with css, but I guess it could be something else. The stylesheet for the page can be found here... http://estore.e-av.co.uk/stylesheet.css I realise there are various other errors on these pages still, but hey, it's a work in progress. It's really weird, if you click around through the pages, about 50% of the time, a white block seems to get drawn over the left and right hand menus (actually, I'm assuming it's over everything, but behind the main content). It follows no pattern, and if you move your cursor over it, it will redraw. It's so weird, and if it was any other browser, I would ignore it - but it's i.e. on windows, the most heavily used browser out there, so I've got to fix it somehow. Has anyone come across this before and managed to fix it?? Anyone got any ideas at all?? Any advice at all would be very much appreciated. Thanks in advance... I've done these types of thing before myself, and the pages actually loaded faster, it was easier to edit and find things I wanted. This layout is completely table based, too much positioning for me to do. I would like the layout to preserve it's flexiblity yet still look quite the same. I need a great CSS Guru to completely CSSfy my site. This includes positioning, changing images to texts and small taggies and stuff. Since it's only one page and it'll take half hour at the most, I will pay $7 whoever asks me first. Nadalitian@VFEmail.net April 18th, 2004 Hi all, I use an background image for a menu. Code: #menu a, #menu a:hover { height: 20px; width: 150px; text-decoration: none; padding-left: 40px; padding-top: 3px; padding-right: 3px; font-weight: bold; font-family: Arial, Helvetica, sans-serif; font-size: 11px; margin-bottom: 10px; background-position: 0px; vertical-align: middle; } #menu a { color: #9E007F; background-image: url(../imgs/nav/subNav/subNav_bg.gif); background-repeat: no-repeat; } #menu a:hover { color: #FFF; background-image: url(../imgs/nav/subNav/subNav_bg_over.gif); background-repeat: no-repeat; } It works fine in IE but not in firefox. Somehow the background image is not completely shown. It stops after the last letter. Any suggestions?? Grtz, A friend of mine recently explained to me how css can be used to write webpages without use of any tables whatsoever. I was very sceptical and asked him to show/write me some examples. I immediately noticed that if you use absolute positioning you'll mess up the page presentation on differrent monitor resolutions. Also, for the same reason I found CSS to be unhandy when you have dynamically loaded content. Still, the idea to use div tags and css and abolish tables sounds very tempting, but I want to ask people with more experience than me: Should I stop using tables, is all previous functionality still available without tables, and if not, in what cases, theoretically, it is better to use css and where it is better to use tables? I'm at a loss because I'm not very familiar with css... this page www.centerpointpilates.com/index.html has pricing formatted by line 42 of the code at the very bottom of this post, printed out here by itself: Code: #main #plans { position: relative; float: right; width: 220px; background-color: transparent; border: 1px solid #6B9D98; margin: 0px 0px 10px 10px; left: 428px; top: 29px; } I've done something but I'm unaware of what! The text within the div using this now goes off the screen, all the way to the right! Can anyone tell me why? I'm printing the whole css sheet below, the above code is line 42. If I can't figure this out tonight I'm going to just redo the page using tables until I can find what is wrong. Code: body { background-color: #F6EEC2; margin: 10px; padding: 0px; } #bannerBox { background-color: transparent; background-image: url(gfx/cpp_banner2.jpg); background-repeat: no-repeat; border: none; padding-left: 5px; height: 80px; margin: 0px; } #leftNav { position: absolute; left: 10px; top: 100px; width: 130px; background-color: transparent; } #navBlock { position: relative; left: 7px; width: 110px; background-color: transparent; border: 1px solid #6B9D98; } #main { background-color: transparent; position: relative; margin-top: 5px; margin-left: 138px; margin-right: 0px; border-left: 1px solid #6B9D98; voice-family: "\"}\""; voice-family: inherit; margin-left: 137px; margin-right: 0px; } html>body #main { margin-left: 139px; margin-right: 0px; } #main #plans { position: relative; float: right; width: 220px; background-color: transparent; border: 1px solid #6B9D98; margin: 0px 0px 10px 10px; left: 428px; top: 29px; } #tagLine { background-color: transparent; border: none; margin: 0px; padding-top: 10px; padding-bottom: 50px; } IMG { position: relative; float: right; border: 0px; padding-left: 20px; padding-top: 0px; padding-right: 10px; padding-bottom: 10px; } P,H1,H2 { margin: 0px 10px 0px 10px; } H1 { font: bold 16px "arial"; color: #6B9D98; letter-spacing: 0px; padding-left: 5px; padding-top: 3px; padding-bottom: 10px; } H2 { font: bold 14px "arial"; color: #6B9D98; letter-spacing: 0px; padding-top: 10px; padding-bottom: 13px; } #leftNav P { padding-top: 6px; margin: 0px 10px 0px 10px; } #leftNav P.spacer { padding-bottom: 15px; } #navBlock P { font: bold 11px arial; color: #6B9D98; padding-top: 1px; padding-bottom: 1px; } #main P { text-align: justify; font: 11px arial; color: #6B9D98; line-height: 17px; padding-left: 10px; padding-bottom: 10px; } #main P.head { font: bold 12px arial; color: #6B9D98; padding-left: 10px; padding-bottom: 3px; } #plans P { font: 12px "arial"; color: #6B9D98; padding-left: 10px; padding-bottom: 3px; } #plans P.list { text-align: justify; font: bold 10px arial; color: #6B9D98; width: 150px; padding-left: 15px; padding-bottom: 5px; } #plans P.list2 { text-align: justify; font: bold 10px arial; color: #6B9D98; width: 180px; padding-left: 15px; padding-bottom: 5px; } #plans P.price { font: 11px arial; color: #6B9D98; padding-left: 15px; padding-bottom: 1px; } #tagLine P { font: italic 11px arial; color: #6B9D98; padding-bottom: 3px; } #tagLine P.copy { font:11px "lucida console"; color: #6B9D98; padding-top: 5px; } A.nav:link { text-decoration: none; background-color: transparent; color: #6B9D98; font: bold 11px arial; } A.nav:visited { text-decoration: none; background color: transparent; color: #6B9D98; font: bold 11px arial; } A.nav:hover { text-decoration: none; background-color: transparent; color: #6B9D98; font: bold 11px arial; } A.reg:link { text-decoration: none; background-color: transparent; color: #6B9D98; border-bottom: 1px solid #8DBFBA; } A.reg:visited { text-decoration: none; background-color: transparent; color: #8DBFBA; border-bottom: 1px solid #8DBFBA; } A.reg:hover { text-decoration: none; background-color: transparent; color: #8DBFBA; border-bottom: none; } I found a horizontal Dropdown menu I really want to emulate he Austin360.com What I like about it is that the widths of the top level list items adjust to the widths of their text -- rather than all being the same width. Also the top level list appears to "stretch" horizontally, filling up the entire width of the container. (Although I can't see any widths anywhere in the stylesheet!) How'd they do that? Hi all, I recently started making a site is css and I had no problems until I came to making the navigation bar. Now I want to have like a button effect on the text so I made this: Code: a.navbar:link { display:block; position:absolute; height:25px; width:150px; background-color:#FFCC99; top:40px; left:0px; z-index:1; } The only problem is that if I apply this to all my navbar links they overlap each other because the positioning is always the same. Any help much appreciated! Jack. Firstly I'm a new member here so hi to everyone. I am fairly new to css. I am trying to create a navbar menu with css, I have used ul and li for the links and its positioned on the left hand side of the page, just where i want it, but my problem is I cant seem to get my text paragraphs to lie at the side of the navbar, they either are above it or below it, obviously im doing something wrong but not sure what. Many Thanks. I'm very new to CSS, and I'm learning to use div tags for my layout. My navbar is a div within my header div, and it's not lining up the way I'd like. Here's a link for an example: www . cooperworkskilns . com The Home button should be at the bottom left of the header. Here's the pertinent css: #header{ margin:0px 0px 10px 0px; padding:0px; width: 700px; height: 125px; border-bottom: 1px solid #666; background-image:url(../img/header.gif); } #navbar{ margin:0px 0px 0px 0px; padding:0px; width: 700px; } www. cooperworkskilns.com The CSS worked well for a vertical navbar, but I haven't gotten it to work horizontally. I added a float:left to see if it would do it. This isn't working in IE. Lol, its created a rather interesting stairstep effect. Is there a way to make it span evenly across the page without adjusting the width of each <li>? Also, for some reason the footer <div> margin isn't working in FF. If you look at IE vs FF, there is much more space above the Copyright line. #navbar ul { margin: 0; padding: 0; list-style-type: none; } #navbar li { margin: 0 0 0 0; } #navbar a { float:left; display: block; text-align:center; color: #000; background-color: #FFF; width: 9em; padding: .2em .8em; text-decoration: none; border-top: 1px solid #fff; border-left: 0px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; } #navbar a:hover { background-color: #003366; color: #FFF; border-top: 1px solid #fff; border-left: 0px solid #000; border-right: 1px solid #000; border-bottom: 1px solid #000; } Hello, This is my first post here, so hi everyone. I'm relatively new at css or any of it. I been working on a navbar with a javascript fader. Anyway... I finally got my buttons to work! It's time for the Smirnoff! But my button are still giving me ...! Anyway I was wondering if someone...anyone could please help me before I slam this laptop against the wall! Just joking... Everything checks out with W3C except my buttons. Here's the html: Code: <div> <span id="navcontainer1" class="button1"> <ul> <li> <a href="guardian_angel_figurines.html"><img src="images/homebuttonlight.jpg" alt="Takes You to Home Page" style="filter:alpha(opacity=0)" onmouseover="pWidgets(this,100,50,5)" onmouseout="pWidgets(this,0,50,5)" /></a> </li> </ul> </span> <span id="navcontainer2" class="button2"> <ul> <li> <a href="#"><img src="images/aboutusbuttonlight.jpg" alt="Our Policies, Mission, and Company Information" style="filter:alpha(opacity=0)" onmouseover="pWidgets(this,100,50,5)" onmouseout="pWidgets(this,0,50,5)" /></a> </li> </ul> </span> <span id="navcontainer3" class="button3"> <ul> <li> <a href="#"><img src="images/aboutfigurinesbuttonlight.jpg" alt="For More Information About Figurines" style="filter:alpha(opacity=0)" onmouseover="pWidgets(this,100,50,5)" onmouseout="pWidgets(this,0,50,5)" /></a> </li> </ul> </span> <span id="navcontainer4" class="button4"> <ul> <li> <a href="about_angels.html"><img src="images/aboutangelsbuttonlight.jpg" alt="For Angelic Understandings, Mysteries and More" style="filter:alpha(opacity=0)" onmouseover="pWidgets(this,100,50,5)" onmouseout="pWidgets(this,0,50,5)" /></a> </li> </ul> </span> <span id="navcontainer5" class="button5"> <ul> <li> <a href="policy.html"><img src="images/contactusbuttonlight.jpg" alt="To Contact Us with Your Questions, Sugestions, Ect" style="filter:alpha(opacity=0)" onmouseover="pWidgets(this,100,50,5)" onmouseout="pWidgets(this,0,50,5)" /></a></li> </ul> </span></div> Don't laugh...they work! Here's the stylesheet: Code: .button1 { position: relative; bottom: 100px; right: 40px; } #navcontainer1 ul li { display: block; float: left; background: url("images/homebuttondark.jpg"); } #navcontainer1 a { display: block; width: 140px; height: 30px; } .button2 { position: relative; bottom: 100px; right: 40px; } #navcontainer2 ul li { display: block; float: left; background: url("images/aboutusbuttondark.jpg"); } #navcontainer2 a { display: block; width: 140px; height: 30px; } .button3 { position: relative; bottom: 100px; right: 40px; } #navcontainer3 ul li { display: block; float: left; background: url("images/aboutfigurinesbuttondark.jpg"); } #navcontainer3 a { display: block; width: 140px; height: 30px; } .button4 { position: relative; bottom: 100px; right: 40px; } #navcontainer4 ul li { display: block; float: left; background: url("images/aboutangelsbuttondark.jpg"); } #navcontainer4 a { display: block; width: 140px; height: 30px; } .button5 { position: relative; bottom: 130px; <-----this is weired! all the other buttons lined up with the same coordinates but this strange one. left: 520px; } #navcontainer5 ul li { display: block; float: left; background: url("images/contactusbuttondark.jpg"); } #navcontainer5 a { display: block; width: 140px; height: 30px; } W3C Validation says there is something wrong with the <ul> tag on each button html. I've tried a million different combinations but this is the only way I can get them to work. Only thing is they create empty space around them and unless I put something "above" them they disappear all together (where the go I have know idea!) I was just thinking if they could somehow "validate" then maybe they would be more predictable. Any suggestions? Thanks ive been at this for a while now. i have a navleft.gif, navbody.gif, and navright.gif. what i want to do is make an expandable nav bar with the body repeating on the x axis. every attempt ive made doesnt work. im still fairly new to css. should i have a <div id="nav"> and within this div put a another div with id=navleft and another with navright? no idea how to go about this. any help would be appreciated. Hi, Am editing a template within dreamweaver as it saves a lot of time for me but I can figure out how to move the right nav bar down. Am trying to include a screenshot but i can't figure out how as I am a new user and it won't let me link.. Basically, it is a two column layout with a picture under the heading and the nav bar up to the height of the picture. Am looking to expand the picture out right and center meaning the nav bar will have to come down just below the picture if you know what i mean? I have tried with design view, won't let me. Had a look at the code but nothing really there that I picked up on (considering am only a beginner).. any thoughts? Thanks to the forum I've worked out a prior issue but 2 remain in regards to the secondary navigation bar. 1. Width - If I use a value of 25% for the pages with 4 sub-links (i.e. "The Music" main) it spans the full width of the right column but in IE6 it pushes the box below it down abot 10px. In OP7, NS6, NS7 & Mozilla1.7 it displays properly. 2. a:hover - I can't seem to figure how to make the hover effect respond to mousing over all parts of the box. It only activates when hovering over the text portion. Works properly in the main-nav but not for the sub-nav (note - this is also ONLY IE related). Really not important unless it is an easy fix. I have tested this site in IE6, NS6.2, NS7.1, OP7.5, Moz1.7. I know v4 browsers are a lost cause but if you could confirm success/failure in others I would appreciate it. Regards, Golem2 |