tags:

views:

135

answers:

3

I have the following HTML;

li 
{
    list-style: none;
    border: solid 1px blue;
    display: inline;
    margin: 0px 0px 0px 0px;
}
...
<ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 2</li>
</ul>

When I add the list items on their own line they appear with a horizontal space between them, but when I do it as;

<li>Item 1</li><li>Item 2</li><li>Item 2</li>

they dont.

Is there anyway to stop the new line from showing up as the blank space, or do I need to use a negative margin?

+1  A: 

Apply float property to li's and use CSS reset or atleast:

* {
 margin:0;
 padding:0;
}
Nimbuz
+4  A: 

The reason there is space between them is because there is space between them. :-)

You can float the li's to the left and that'll get rid of it:

li { float: left; }

Ciao!

The Doctor What
To clarify the "...because there is space between them...":HTML will collapse all white-space into a single space element between words or elements. It will not remove all white-space altogether or else things would be a mess. :-)
The Doctor What
+2  A: 

That space is correct with inline content. You have two alternatives:

  1. Put them on the same line like you're doing; or
  2. Use floats.

For example:

ul { overflow: hidden; }
li { float: left; border: solid 1px blue; margin: 0px; }

The overflow: hidden ensures the containing <ul> won't collapse. Compare the difference with and without it if you add a red border to the <ul>.

cletus