Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does UL have default margin or padding [duplicate]

This might seem like a dumb question, but I've added an UL to a basic page and the list seems to be off-centered. There's nothing special about the list. No specific css added: just a list. When I load live it's slightly off center.
Is there a default margin or padding on the left side?

<h3>Title Heading</h3>
   <ul id="listItems">
       <li>itemOne</li>
       <li>itemTwo</li>
       <li>itemThree</li>
   </ul>

The main body has all the css code for centering, aligning, float, etc. The 'Title Header' align perfectly. Just list is a little off.

Thank you.

Oh, don't know if this is important, but I added the 'id' cause... wanted to use 'first-of-type' to give 1st item em(bold).

like image 357
JZeig1 Avatar asked May 24 '15 13:05

JZeig1


People also ask

Does UL have default margin?

The <ul> and <ol> elements have a top and bottom margin of 16px ( 1em ) and a padding-left of 40px ( 2.5em ). The list items ( <li> elements) have no set defaults for spacing.

What is the default margin and padding?

Default margins, borders and padding are all 0, so when you wrap a div around some text, there is no space between its edges and the text. div elements obey the box model strictly, while adding padding etc. to table cells can be interpreted a bit more loosely by browsers.

What is the default padding of body?

Remember, by default the body element has 8px of margin on all sides.

How do you add padding to Li?

The you should decrease the height of the li. padding if you want to increase the top-padding, yet have it remain the same height as the plain list item. So to have a 25px high block with 3px padding-top, you should set the height to 22px with a padding of 3px.


2 Answers

The problem is that by default, browsers have custom css - in chrome for example:

ul, menu, dir {
   display: block;
   list-style-type: disc;
   -webkit-margin-before: 1em;
   -webkit-margin-after: 1em;
   -webkit-margin-start: 0px;
   -webkit-margin-end: 0px;
   -webkit-padding-start: 40px;
}

You'll have to use a custom rule for your ul:

element.style {
    margin-left: 0px;
    /* set to 0 if your not using a list-style-type */
    padding-left: 20px;
}
like image 114
Michael Wilson Avatar answered Oct 19 '22 17:10

Michael Wilson


Lists will always align so the text remains in line with the edge of the parent element. This means the bullet points will by default sit outside (to the left) of the element. You can force the alignment to happen to the bullet point, not the text like so:

ul {
  list-style-position: inside; }

Alternatively you can just add your own margin to push the entire list element like so:

ul {
  margin-left: 20px; }
like image 28
CaribouCode Avatar answered Oct 19 '22 15:10

CaribouCode