23 sep 2011 kl. 08.45 skrev Omicron:

Hello to all,
I am completely stumped here and would appreciate any assistance you
folks could offer.
I have created a navigation bar which utilized an background image for
the buttons.
One image when there is no mouse rollover, and anther when there is a
mouse rollover.
The bar works as designed.
It is part of a web page that also houses a logo image above it and a
javascript-based slideshow below it.
All work as designed.

My problem is that I need to center the entire site, and every method
I have employed to do so, centers everything but the navigation bar.
The bar just sits flush to the left-hand side of the page.
Yes..I am using float:left in the CSS sections of the navigation
styling.
I'm assuming that this is what is causing me to have this issue. But I
do not know how else to code the navigation bar in order to get the 6
buttons to line up horizontally with each other.


ul#cssnav {
        margin:0 0 2em 17px;
        padding:0;
        list-style-type:none;
        float: left;
}
You're asking the whole nav bar to float "left" to the inner left side of the containing element which is exactly what it does. This rule does not affect the li-elements, so it can be exchanged for another placement technique. If you don't have a wrapper element the containing element is body. While you could set a width and use percentage padding values for body, the more sensible approach is usually to use a wrapper element for your page, like a div-element with id "#page" or something like that. This element does not have to use pixel width, it could use a percentage for instance. If the latter you center with a percentage value for the wrapper element on the left and right margins. If you do set a pixel width, you use 'auto' instead.

so for instance with not a fixed width:

#page {
width:99%;
margin:0 22% 2em; /*top left/right bottom*/
}

or with a fixed width

#page {
width:760px;
margin:0 auto 2em; /*top left/right bottom*/
}

with this element centered, your nav bar could keep all the code you have and be floated to the left if that's what you want. Personally I prefer to stick it to the bottom with absolute positioning, using my header element as positioning context with the rule "position:relative".

Anyway, it's the li-elements that would need the rule "float:left" in order for them to display horizontally. "display:inline" may also work fine depending on context, as other have suggested.

Check out this article for some background, at least the links:

http://coding.smashingmagazine.com/2009/12/11/styling-html-lists-with-css-techniques-and-resources/

and use the Listamatic site for inpiration and sample code:

http://css.maxdesign.com.au/listamatic/

Your rules for your nav bar seem quite strange otherwise, but I'm not getting into that now as centering was what you asked about.

ul#cssnav li    {
position:relative;
font-family: arial, verdana, helvetica, sans-serif;
background: url(../images/rollover2.gif) no-repeat;
float:left;
width: 11em;
height: 4em;
line-height:4em;
text-align:center;
margin-left:-17px;
}
#cssnav li a {
display:block;
width: 11em;
height: 4em;
/* display: block; */
color: #FFF;
text-decoration: none;
background: url(../images/rolloff2.jpg) no-repeat;
font-weight:bold;
}
#cssnav li a:hover,#cssnav li.current a
{background:transparent;color:#000}

/* #navlist li
{
display: inline;
list-style-type: none;
padding-right: 20px;
text-decoration: none;
} */

--
--
You received this because you are subscribed to the "Design the Web with CSS" at Google groups.
To post: [email protected]
To unsubscribe: [email protected]

/MiB




--
--
You received this because you are subscribed to the "Design the Web with CSS" 
at Google groups.
To post: [email protected]
To unsubscribe: [email protected]

Reply via email to