CSS属性を使用して、カスタムグラフィックを置換箇条書き文字に指定できることを理解しています。
list-style-image
そして、それにURLを与えます。
ただし、私の場合は、「+」記号を使用したいだけです。そのためのグラフィックを作成し、それを指す必要はありません。順不同リストにプラス記号を箇条書き記号として使用するよう指示するだけです。
これを行うことができますか、それとも最初にグラフィックにする必要がありますか?
以下は Taming Lists から引用されています:
リストはあるが、箇条書きが必要ない場合や、箇条書きの代わりに他の文字を使用したい場合があります。繰り返しますが、CSSは簡単なソリューションを提供します。リストスタイルを追加するだけです:なし。ルールに従って、LIを強制的にインデント付きで表示するようにします。ルールは次のようになります。
ul { list-style: none; margin-left: 0; padding-left: 1em; text-indent: -1em; }
パディングまたはマージンのいずれかをゼロに設定する必要があり、もう1つは1emに設定します。選択した「箇条書き」によっては、この値を変更する必要がある場合があります。負のtext-indentを指定すると、最初の行がその量だけ左に移動し、ぶら下がりインデントが作成されます。
HTMLには標準のULが含まれますが、リストアイテムのコンテンツの前にある箇条書きの代わりに使用する文字またはHTMLエンティティが含まれます。この例では、右二重引用符"を使用します。
"アイテム1
"アイテム2
"アイテム3
"アイテム4
"作成するアイテム5
もう少し長く
ラップします
これは遅い答えですが、私はこれに出くわしました...折り返す行のインデントを正しくするには、次のように試してください:
ul {
list-style: none;
margin-left: 0;
padding-left: 0;
}
li {
padding-left: 1em;
text-indent: -1em;
}
li:before {
content: "+";
padding-right: 5px;
}
非常に多くのソリューション。
しかし、まだ改善の余地があると思います。
利点:
ul {
position: relative;
list-style: none;
margin-left: 0;
padding-left: 1.2em;
}
ul li:before {
content: "+";
position: absolute;
left: 0;
}
<ul>
<li>Curabitur non nulla sit amet nisl tempus convallis quis ac lectus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec velit neque, auctor sit amet aliquam vel, ullamcorper sit amet ligula. Pellentesque in ipsum id orci porta dapibus.</li>
<li>Nulla porttitor accumsan tincidunt. Mauris blandit aliquet elit, eget tincidunt nibh pulvinar a. Aliquet quam id dui posuere blandit. Curabitur non nulla sit amet nisl tempus convallis quis ac lectus.</li>
</ul>
これがW3Cソリューションです。現時点では、これは少なくともFirefoxで機能します。
ul { list-style-type: "????"; }
/* Sets the marker to a ???? emoji character */
これが私がこれまでに見つけた最良の解決策です。それは素晴らしく機能し、クロスブラウザ(IE 8+)です。
ul {
list-style: none;
margin-left: 0;
padding-left: 1.2em;
text-indent: -1.2em;
}
li:before {
content: "►";
display: block;
float: left;
width: 1.2em;
color: #ff0000;
}
重要なことは、1行に収まらないほど長い場合にテキストが整列したままになるように、固定幅のフローティングブロックに文字を配置することです。 1.2emはキャラクターの幅です。必要に応じて変更してください。
:before
擬似セレクターを使用して、リストアイテムの前にコンテンツを挿入できます。 http://www.quirksmode.org/css/beforeafter.html でQuirksmodeの例を見つけることができます。これを使用して、ブロック引用の周りに巨大な引用を挿入します...
HTH。
私のソリューションは、位置合わせを使用して、ラップされた行を自動的に正しく整列させます。したがって、li:beforeでpadding-rightを設定することを心配する必要はありません。
ul {
margin-left: 0;
padding-left: 0;
list-style-type: none;
}
ul li {
position: relative;
margin-left: 1em;
}
ul li:before {
position: absolute;
left: -1em;
content: "+";
}
<ul>
<li>Item 1 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam</li>
<li>Item 2 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam</li>
<li>Item 3 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
Font-awesomeは、すぐに使用できる優れたソリューションを提供します。
<link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet" />
<ul class='fa-ul'>
<li><i class="fa-li fa fa-plus"></i> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</li>
<li><i class="fa-li fa fa-plus"></i> Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam</li>
</ul>
<li>
リスト項目に影響を与えないように、<ol>
のスタイルを修飾することをお勧めします。そう:
ul {
list-style: none;
margin-left: 0;
padding-left: 0;
}
ul li {
padding-left: 1em;
text-indent: -1em;
}
ul li:before {
content: "+";
padding-right: 5px;
}
.list-dash li, .list-bullet li {
position: relative;
list-style-type: none; /* disc circle(hollow) square none */
text-indent: -2em;
}
.list-dash li:before {
content: '— '; /* em dash */
}
.list-bullet li:before {
content: '• '; /*copy and paste a bullet from HTML in browser into CSS (not using ASCII codes) */
}
<ul class="list-dash">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
</ul>
興味深いことに、投稿されたソリューションはどれも十分ではありません。使用されているキャラクターが1em幅であるという事実に依存しているため、そうである必要はありません(ただし、物事を別の方法で複雑にします)。私の試みは次のとおりです。
ul {
list-style-type: none;
margin-left: 0;
padding-left: 30px; /* change 30px to anything */
text-indent: -30px;
}
ul li:before {
content: "xy";
display: inline-block;
width: 30px;
text-indent: 0;
text-align: center; /* change this for different bullet position */
}
<ul>
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3 Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam</li>
<li>Item 4</li>
<li>Item 5</li>
</ul>
これには次の利点があります(他のソリューションよりも)
text-align: center;
をお好みのものに置き換えてください。たとえば、color: red; text-align: right; padding-right: 5px; box-sizing: border-box;
を試すこともできますが、border-boxを使用したくない場合は、幅(この例ではwidth:25px)からパディング(5px)を引くだけです。多くのオプションがあります。楽しい。
負のマージンを使用することを好みます。
ul {
margin-left: 0;
padding-left: 20px;
list-style: none;
}
li:before {
content: "*";
display: inline;
float: left;
margin-left: -18px;
}
Emダッシュスタイル:
ul.emdash {
list-style-type: none;
list-style-position: inside;
text-indent: -1.25em;
}
ul.emdash > li:before {
content: "\2014\00A0"; /* em dash + space*/
}