順序付きリストの数値部分にのみスタイルを付加するCSSセレクターはありますか?
私は次のようなHTMLを持っています:
<ol>
<li>a</li>
<li>b</li>
<li>c</li>
</ol>
出力するもの:
1.a
2.b
3.c
1.、2.、3にする必要があります。bold、a、b、cは通常のままにします。
私は<span>
回避策を知っています...
CSS
ol {
margin: 0 0 1.5em;
padding: 0;
counter-reset: item;
}
ol > li {
margin: 0;
padding: 0 0 0 2em;
text-indent: -2em;
list-style-type: none;
counter-increment: item;
}
ol > li:before {
display: inline-block;
width: 1em;
padding-right: 0.5em;
font-weight: bold;
text-align: right;
content: counter(item) ".";
}
約1年後ですが、これは将来ここに来る他の人にとっても興味深いかもしれません。
もう1つの簡単な方法は、リストアイテムのコンテンツを<p>
にラップし、<li>
を太字に、<p>
を通常のスタイルに設定することです。これは、IAの観点からも、特に<li>
sにサブリストを含めることができる場合に適しています(テキストノードとブロックレベル要素の混在を避けるため)。
あなたの便宜のための完全な例:
<html>
<head>
<title>Ordered list items with bold numbers</title>
<style>
ol li {
font-weight:bold;
}
li > p {
font-weight:normal;
}
</style>
</head>
<body>
<ol>
<li>
<p>List Item 1</p>
</li>
<li>
<p>Liste Item 2</p>
<ol>
<li>
<p>Sub List Item 1</p>
</li>
<li>
<p>Sub List Item 2</p>
</li>
</ol>
</li>
<li>
<p>List Item 3.</p>
</li>
</ol>
</body>
</html>
より一般的なアプローチを好む場合(<li>
以外の子孫を持つ<p>
sなどの他のシナリオもカバーする場合、li > *
の代わりにli > p
を使用することもできます。
<html>
<head>
<title>Ordered list items with bold numbers</title>
<style>
ol li {
font-weight:bold;
}
li > * {
font-weight:normal;
}
</style>
</head>
<body>
<ol>
<li>
<p>List Item 1</p>
</li>
<li>
<p>Liste Item 2</p>
<ol>
<li>
<p>Sub List Item 1</p>
</li>
<li>
<p>Sub List Item 2</p>
</li>
</ol>
</li>
<li>
<p>List Item 3.</p>
</li>
<li>
<code>List Item 4.</code>
</li>
</ol>
</body>
</html>
(ここでol/li/codeでありol/li/p/codeではないリスト項目4を確認してください。必要な場合は、li > *
ではなくセレクタli *
を使用してください通常のスタイルブロックレベルの子孫ですが、「foo <strong>
bold Word</strong>
foo」のようなインラインもありません。
ol {
counter-reset: item;
}
ol li { display: block }
ol li:before {
content: counter(item) ". ";
counter-increment: item;
font-weight: bold;
}
ニュースレターの作成中に同様の問題が発生しました。そのため、この方法でスタイルをインライン化する必要がありました。
<ol>
<li style="font-weight:bold"><span style="font-weight:normal">something</span></li>
<li style="font-weight:bold"><span style="font-weight:normal">something</span></li>
<li style="font-weight:bold"><span style="font-weight:normal">something</span></li>
</ol>
Bootstrap 4を使用している場合:
<ol class="font-weight-bold">
<li><span class="font-weight-light">Curabitur aliquet quam id dui posuere blandit.</span></li>
<li><span class="font-weight-light">Curabitur aliquet quam id dui posuere blandit.</span></li>
</ol>
これはdcodesmithの答えの更新です https://stackoverflow.com/a/21369918/16682
提案されたソリューションは、テキストが長い場合にも機能します(つまり、行を折り返す必要があります):pdated Fiddle
グリッドシステムを使用している場合は、次のいずれかを実行する必要があります(少なくとも、これはFoundation 6に当てはまります-Fiddleで再現できませんでした)。
box-sizing:content-box;
をリストまたはそのコンテナーに追加しますtext-indent:-2em;
を-1.5em
に変更します追伸:これを元の回答の編集として追加したかったのですが、拒否されました。
前の回答には、すべてのタイプのリストを数値にする副作用があります。 <ol type="a">
は、aではなく1、2、3、4と表示されます。 b。 c。 d。
ol {
margin: 0 0 1.5em;
padding: 0;
counter-reset: item;
}
ol > li {
margin: 0;
padding: 0 0 0 2em;
text-indent: -2em;
list-style-type: none;
counter-increment: item;
}
ol > li:before {
display: inline-block;
width: 1em;
padding-right: 0.5em;
font-weight: bold;
text-align: right;
content: counter(item) ".";
}
/* Add support for non-numeric lists */
ol[type="a"] > li:before {
content: counter(item, lower-alpha) ".";
}
ol[type="i"] > li:before {
content: counter(item, lower-roman) ".";
}
上記のコードは、小文字、小文字のローマ数字のサポートを追加します。執筆時点では、ブラウザは型の大文字と小文字を区別しないため、代替ol型には大文字または小文字しか選択できません。
これは古いことは知っていますが、<li>
をまったく使用しない「迅速で汚い」方法もあります。
<!-- <ul> is used for indentation only -->
<ul>
<p> <b>1.</b> item text </p>
<p> <b>2.</b> item text </p>
</ul>
また、a、b、cを囲み、CSSのulを太字にすることもできます。
例
ul {
font-weight:bold;
}
<ul><li><span style="font-weight:normal">a</span></li></ul>
かなり遅い回答ですが、うまくいけば誰かがこれを役に立つと思うでしょう
私はこのような状況がありました:
リストアイテム
a。リストアイテム
最初の項目が<strong>
である場合、サブ要素は通常の重みであり、「1」です。ただない太字。
私の解決策はjQuery経由でした:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
if ($('ol').has('li').has('strong')) {
$('ol ').css('font-weight', 'bold');
$('ol > li > ol').css('font-weight', 'normal');
}
});
</script>
これが誰かの助けになることを願っています!
新しい::marker
疑似要素セレクターが CSS疑似要素レベル4 に追加されました。
ol > li::marker {
font-weight: bold;
}
残念ながら、現時点では Firefox 68以降でサポート のみです。 (Chrome/Blinkステータスについては Chrome Bug 457718 を参照してください。)