skip to Main Content

I have this nested Ul li element

Lists can be nested (list inside list)

The first level of li elements Coffee, Tea and Milk taking default Padding and Margin. How to remove the first level of li elements left margin and padding.

<ul>
  <li>Coffee</li>
  <li>Tea
    <ul>
      <li>Black tea</li>
      <li>Green tea</li>
    </ul>
  </li>
  <li>Milk</li>
</ul>

2

Answers


  1. If you have some parent for this first ul element (for example some div), you can use direct child selector >:

    div > ul {
      margin: 0;
      padding: 0;
    }
    

    but if you have only this structure you posted above, you can use :not selector:

    ul:not(li ul) {
      margin: 0;
      padding: 0;
    }
    

    you can also reset padding and margin for the first ul element and in the next CSS rule overwrite it for ul nested in ul:

    ul {
      margin: 0;
      padding: 0;
    }
    
    ul ul {
      margin: revert;
      padding: revert;
    }
    

    revert will reset margin and padding to the previous value, but you can also use just some value, like 10px instead of revert

    Login or Signup to reply.
  2. .first-ul{display: inline;}
    add this class

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search