I'm currently working on an unordered list containing list items with taglines. I'm having a problem concerning one list item, which is long enough to take up two lines (See image)
I want it so that the second line is aligned with the first line. This is the HTML code i'm using. I used fontAwesome for the check images.
ul {
width: 300px;
}
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet"/>
<ul class="fa-ul custom-list">
<li><i class="fa fa-check fa-fw"></i>List item on 1 line</li>
<li><i class="fa fa-check fa-fw"></i>List item on 1 line</li>
<li><i class="fa fa-check fa-fw"></i>This is a list item that actually takes up 2 lines. Looks ugly</li>
</ul>
I already tried to enter multiple
in between '2' and 'lines' but that seems like a really bad practice to me. I hope someone can help me with this problem.
You can use "display:table" as style for li, and inside create a span with "display:table-cell" styling. Or create corresponding class. Like this:
you can just add this to your ul:
JSFIDDLE
I found this does not work reliably across all browsers and devices.
This code does:
Original answer
you can put your text in a
div
and givefloat:left
to your innerli
anddiv
.You could remove the check out of the page flow by setting them with
position:absolute
This is because the tick is inline content so when the text wraps it will continue to flow as usual.
You can stop this behaviour by taking advantage of
text-indent
:text-indent (https://developer.mozilla.org/en-US/docs/Web/CSS/text-indent)
By supplying a negative
text-indent
you can tell the first line to shift a desired amount to the left. If you then specify a positivepadding-left
you can cancel this offset out.In the following example a value of
1.28571429em
is used because it is thewidth
set on the.fa-fw
by font-awesome.