この質問に別の回答を追加します。これは、@ derekが求めていることを正確に必要としていたため、ここで回答を見る前に、もう少し先に進んでいたためです。具体的には、カンマが不要なリストアイテムが2つだけあるケースにも対応できるCSSが必要でした。例として、私が作成したいいくつかの著者の署名欄は次のようになります。
一人の著者:
By Adam Smith.
2人の著者:
By Adam Smith and Jane Doe.
3人の著者:
By Adam Smith, Jane Doe, and Frank Underwood.
ここですでに示した解決策は、1人の著者と3人以上の著者に対して機能しますが、2人の著者の場合を考慮に入れないでください。 -つまり、接続詞の前にコンマがあってはなりません。
いじくり回した午後の後、私は次のことを思いつきました:
<html>
<head>
<style type="text/css">
.byline-list {
list-style: none;
padding: 0;
margin: 0;
}
.byline-list > li {
display: inline;
padding: 0;
margin: 0;
}
.byline-list > li::before {
content: ", ";
}
.byline-list > li:last-child::before {
content: ", and ";
}
.byline-list > li:first-child + li:last-child::before {
content: " and ";
}
.byline-list > li:first-child::before {
content: "By ";
}
.byline-list > li:last-child::after {
content: ".";
}
</style>
</head>
<body>
<ul class="byline-list">
<li>Adam Smith</li>
</ul>
<ul class="byline-list">
<li>Adam Smith</li><li>Jane Doe</li>
</ul>
<ul class="byline-list">
<li>Adam Smith</li><li>Jane Doe</li><li>Frank Underwood</li>
</ul>
</body>
</html>
上に書いた通り、署名欄が表示されます。
最後に、li煩わしさを回避するために、要素間の空白もすべて削除する必要がありました。そうしないと、inline-blockプロパティは、各カンマの前にスペースを残します。おそらく代替のまともなハックがあるでしょうが、それはこの質問の主題ではないので、他の誰かが答えるようにしておきます。
ここでフィドル:http : //jsfiddle.net/5REP2/