Nicer CSS Lists

Custom lists using CSS Counter and prevents text from wrapping under the list bullet.

by DemonTut

HTML

<div>
  <h3>Unordered List</h3>
  <ul class="nice-ul">
    <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
    <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
    <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla quam arcu, mattis eu sollicitudin a, porta sit amet justo. Nullam diam ex, elementum eu ante sed, pellentesque rutrum quam. Quisque varius iaculis lorem sit amet sodales. Maecenas eu dui
      fermentum, egestas velit at, rutrum orci. Suspendisse potenti. Duis placerat accumsan facilisis. In feugiat risus at ultricies semper. In tempus in sem ut vulputate.</li>
    <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
  </ul>
</div>

<div>
  <h3>Unordered List</h3>
  <ol class="nice-ol">
    <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
    <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
    <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla quam arcu, mattis eu sollicitudin a, porta sit amet justo. Nullam diam ex, elementum eu ante sed, pellentesque rutrum quam. Quisque varius iaculis lorem sit amet sodales. Maecenas eu dui
      fermentum, egestas velit at, rutrum orci. Suspendisse potenti. Duis placerat accumsan facilisis. In feugiat risus at ultricies semper. In tempus in sem ut vulputate.</li>
    <li>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</li>
  </ol>
</div>

CSS

div {
  position: relative;
  padding: 20px;
  margin: 10px;
  font: normal normal 15px/1.52 Arial, Helvetica, sans-serif;
  background: #fff;
}

h3 {
  margin-top: 0;
}

.nice-ul {
  position: relative;
  padding-left: 32px;
  list-style-type: none;
}

.nice-ul li {
  margin-bottom: 8px;
}

.nice-ul li:last-child {
  margin-bottom: 0;
}

.nice-ul li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  padding: 2px 8px;
  font-size: 1em;
  color: #1C90F3;
}

.nice-ol {
  position: relative;
  padding-left: 32px;
  list-style-type: none;
}

.nice-ol li {
  counter-increment: step-counter;
  margin-bottom: 8px;
}

.nice-ol li:last-child {
  margin-bottom: 0;
}

.nice-ol li::before {
  content: counter(step-counter);
  position: absolute;
  left: 0;
  padding: 3px 8px;
  font-size: 0.8em;
  color: white;
  font-weight: bold;
  background-color: #1C90F3;
  border-radius: 3px;
}