简体   繁体   中英

Navigation UL/LI additional space

It's one of those days and I can not figure out why I'm getting a space to the left of each of the LI tags in the following code. If you hover over, the menu items you'll see what I mean.

http://jsfiddle.net/midnitesonnet/C2Dub/

<div id="wrapper">
    <div id="menu">
        <ul>
            <li><a href="#!1">Home</a></li>
            <li><a href="#!2">Home</a></li>
            <li><a href="#!3">Home</a></li>
        </ul>
    </div>
    <div id="content">Content</div>
    <div id="footer">Footer</div>
</div>

I can not figure out why I'm getting a space to the left of each of the LI tags

Because you format them with display:inline-block - and have whitespace between the tags. That's basic "HTML behavior", that any whitespace between two inline(-block) elements is condensed to one space character when displayed.

Either float the LI instead , or write them without whitespace between the tags , meaning ...</li><li>...

try this

http://jsfiddle.net/C2Dub/4/

/* CSS Document */

body { 
    font-family: Arial, Helvetica, sans-serif; 
    font-size: 0.9em;
    margin-top: 0px;
    background-color: #f5f5f5;
} 

#wrapper { 
    background-color: #ffffff;
    width: 1000px; 
    margin: auto; 
    -webkit-box-shadow: 0px 0px 6px rgba(50, 50, 50, 0.64);
    -moz-box-shadow:    0px 0px 6px rgba(50, 50, 50, 0.64);
    box-shadow:         0px 0px 6px rgba(50, 50, 50, 0.64);
    /*-webkit-border-radius: 15px;
    -moz-border-radius: 15px;
    border-radius: 15px;*/
} 

#menu { 
    background: #505050;
    background: -moz-linear-gradient(top,  #505050 0%, #343434 50%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#505050), color-stop(50%,#343434));
    background: -webkit-linear-gradient(top,  #505050 0%,#343434 50%);
    background: -o-linear-gradient(top,  #505050 0%,#343434 50%);
    background: -ms-linear-gradient(top,  #505050 0%,#343434 50%);
    background: linear-gradient(to bottom,  #505050 0%,#343434 50%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#505050', endColorstr='#343434',GradientType=0 );
    min-height: 26px;

    color: #CCC;
}
#menu ul {
    display: block;
    height: 39px;
    list-style: none outside none;
    margin: 0;
    padding: 0;
}
#menu li { 
    margin: 0;
    display: inline-block;
    height: 39px;
    border-right: 1px solid rgb(0, 0, 0);
    padding: 0px 20px !important;
    line-height: 39px;
    list-style: none;
    float:left;
} 

#menu li a { 
    display: inline-block;
    width: 99%;
    color: #CCC;
    text-decoration: none;
}
#menu li:hover { 
    background: #6b6b6b;
    background: -moz-linear-gradient(top,  #6b6b6b 0%, #4c4c4c 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#6b6b6b), color-stop(100%,#4c4c4c));
    background: -webkit-linear-gradient(top,  #6b6b6b 0%,#4c4c4c 100%);
    background: -o-linear-gradient(top,  #6b6b6b 0%,#4c4c4c 100%);
    background: -ms-linear-gradient(top,  #6b6b6b 0%,#4c4c4c 100%);
    background: linear-gradient(to bottom,  #6b6b6b 0%,#4c4c4c 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#6b6b6b', endColorstr='#4c4c4c',GradientType=0 );

} 

#content { 
    min-height: 600px;
    padding: 5px;
} 

#footer {
    min-height: 50px;
    background: #f4f7f5;
    background: -moz-linear-gradient(top, #f4f7f5 0%, #edf5f7 37%, #d3e8e6 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f4f7f5), color-stop(37%,#edf5f7), color-stop(100%,#d3e8e6));
    background: -webkit-linear-gradient(top, #f4f7f5 0%,#edf5f7 37%,#d3e8e6 100%);
    background: -o-linear-gradient(top, #f4f7f5 0%,#edf5f7 37%,#d3e8e6 100%);
    background: -ms-linear-gradient(top, #f4f7f5 0%,#edf5f7 37%,#d3e8e6 100%);
    background: linear-gradient(to bottom, #f4f7f5 0%,#edf5f7 37%,#d3e8e6 100%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f7f5', endColorstr='#d3e8e6',GradientType=0 );
    border-top: 1px #D2D2D2 solid;
} 

This seems to work, I floated your li's, removed some padding and changed the height of the menu: http://jsfiddle.net/C2Dub/5/

#menu { 
    background: #505050;
    background: -moz-linear-gradient(top,  #505050 0%, #343434 50%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#505050), color-stop(50%,#343434));
    background: -webkit-linear-gradient(top,  #505050 0%,#343434 50%);
    background: -o-linear-gradient(top,  #505050 0%,#343434 50%);
    background: -ms-linear-gradient(top,  #505050 0%,#343434 50%);
    background: linear-gradient(to bottom,  #505050 0%,#343434 50%);
    filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#505050', endColorstr='#343434',GradientType=0 );
    min-height: 39px;

    color: #CCC;
}
#menu ul { 
    display: block;
    padding: 0;
    margin: 0;
    list-style: none;
} 
#menu li { 
    margin: 0;
    float: left;
    height: 19px;
    border-right: 1px solid rgb(0, 0, 0);
    padding: 10px 20px !important;
    list-style: none;
} 

U have some whitespace characters between your HTML code try to put the li tags on eachtoher:

 <ul>
    <li><a href="#!1">Home</a></li>
    <li><a href="#!2">Home</a></li>
    <li><a href="#!3">Home</a></li>
</ul>

This solved the problem in the Fiddle.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM