Reputation: 6020
I want to create an order list with style like image shown below:
I have tried some methods with the code below:
body {
padding: 20px;
}
ol {
list-style-type: upper-roman;
list-style-position: inside;
}
ol li {
position: relative;
}
ol li span {
position: absolute;
left: 30px;
}
It looks like the style I want. However, when the content wrap, it will collapse together:
Is there any way to solve it?
This is the link I use to demo:
Upvotes: 3
Views: 80
Reputation: 130680
I would advise to do this using the dedicated CSS counter
since it was made especially for these situations, where you need a custom-looking counter.
Also, as you can see, the HTML is much simpler and does not require any wrapping span
inside each li
item.
ol {
counter-reset: list;
list-style:none;
}
ol li {
position: relative;
padding-left: 40px;
}
ol li::before {
position: absolute;
left: 0;
counter-increment: list;
content: counter(list, upper-roman)'.';
}
<ol>
<li>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quaerat, excepturi!</li>
<li>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat provident impedit id? Enim nihil aperiam modi? Laudantium vel maiores consequatur?</li>
<li>Lorem ipsum dolor sit amet consectetur adipisicing elit. Officiis illum natus impedit non ea animi?</li>
<li>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maxime consequuntur ea doloremque voluptatum, temporibus optio quis. Adipisci libero numquam laboriosam.</li>
<li>Lorem ipsum dolor sit amet consectetur adipisicing elit. Enim, magnam!.</li>
<li>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Pariatur, qui?</li>
<li>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolorem cum consectetur qui enim optio delectus.</li>
</ol>
Upvotes: 3
Reputation: 34924
Use div
instead span
, and change you css like below
body {
padding: 20px;
}
ol {
list-style-type: upper-roman;
list-style-position: inside;
display: initial;
}
ol li div {
padding-left: 40px;
margin-top: -19px;
}
<ol>
<li><div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quaerat, excepturi!</div></li>
<li><div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat provident impedit id? Enim nihil aperiam modi? Laudantium vel maiores consequatur?
</div></li>
<li><div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Officiis illum natus impedit non ea animi?</div></li>
<li><div>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maxime consequuntur ea doloremque voluptatum, temporibus optio quis. Adipisci libero numquam laboriosam.</div></li>
<li><div>Lorem ipsum dolor sit amet consectetur adipisicing elit. Enim, magnam!.</div></li>
<li><div>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Pariatur, qui?</div></li>
<li><div>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolorem cum consectetur qui enim optio delectus.
</div></li>
</ol>
Upvotes: 0
Reputation: 1715
Try list-style-position: inside;
body {
padding: 20px;
}
ol {
list-style-type: upper-roman;
list-style-position: inside;
}
ol li {
position: relative;
list-style-position: outside;
padding-left: 5px;
}
ol li span {
position: relative;
}
<ol>
<li><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Quaerat, excepturi!</span></li>
<li><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Repellat provident impedit id? Enim nihil aperiam modi? Laudantium vel maiores consequatur?
</span></li>
<li><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Officiis illum natus impedit non ea animi?</span></li>
<li><span>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Maxime consequuntur ea doloremque voluptatum, temporibus optio quis. Adipisci libero numquam laboriosam.</span></li>
<li><span>Lorem ipsum dolor sit amet consectetur adipisicing elit. Enim, magnam!.</span></li>
<li><span>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Pariatur, qui?</span></li>
<li><span>Lorem, ipsum dolor sit amet consectetur adipisicing elit. Dolorem cum consectetur qui enim optio delectus.
</span></li>
</ol>
Upvotes: 0