現在、タグライン付きのリストアイテムを含む順序付けられていないリストで作業しています。 1つのリスト項目に関して問題があります。これは2行を使用するのに十分な長さです(画像を参照)
2行目が1行目に揃うようにします。これは私が使用しているHTMLコードです。チェック画像にはfontAwesomeを使用しました。
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>
私はすでに「2」と「行」の間に複数の
を入力しようとしましたが、それは私にとって本当に悪い習慣のようです。誰かがこの問題を解決してくれることを願っています。
これは、目盛りがインラインコンテンツであるため、テキストが折り返されても通常どおりフローが継続するためです。
text-indent
を利用して、この動作を停止できます。
Text-indentプロパティは、要素のテキストコンテンツの最初の行の先頭の前に残す水平スペースの量を指定します。
text-indent( https://developer.mozilla.org/en-US/docs/Web/CSS/text-indent )
負のtext-indent
を指定することにより、最初の行に希望の量を左にシフトするように指示できます。その後、正のpadding-left
を指定すると、このオフセットをキャンセルできます。
次の例では、1.28571429em
の値が使用されます。これは、font-awesomeによって.fa-fw
に設定されたwidth
であるためです。
ul {
width: 300px;
}
li {
padding-left: 1.28571429em;
text-indent: -1.28571429em;
}
<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>
position:absolute
で設定することにより、ページフローからチェックアウトを削除できます。
ul {
width: 300px;
}
.fa-fw {
position: absolute;
left: -22px;
}
<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>
Liのスタイルとして「display:table」を使用でき、内部で「display:table-cell」スタイルのスパンを作成できます。または、対応するクラスを作成します。このような:
<li style="display:table"><span style="display:table-cell">text with
all lines indented</span></li>
テキストをdiv
に入れて、float:left
を内側のli
およびdiv
に追加します。
ul li{
padding: 10px 0 10px 20px;
text-indent: -1em;
}
パディングとテキストインデントを追加します-テキストをli:beforeから移動します。