Menambahkan jawaban lain untuk pertanyaan ini karena saya membutuhkan secara tepat apa yang diminta @derek dan saya sudah melangkah lebih jauh sebelum melihat jawabannya di sini. Secara khusus, saya membutuhkan CSS yang juga dapat menjelaskan kasus dengan tepat dua item daftar, di mana koma TIDAK diinginkan. Sebagai contoh, beberapa byline kepenulisan yang ingin saya buat akan terlihat seperti berikut:
Satu penulis:
By Adam Smith.
Dua penulis:
By Adam Smith and Jane Doe.
Tiga penulis:
By Adam Smith, Jane Doe, and Frank Underwood.
Solusi yang telah diberikan di sini berfungsi untuk satu penulis dan untuk 3 penulis atau lebih, tetapi lalai untuk memperhitungkan kasus dua penulis — di mana gaya "Oxford Comma" (juga dikenal sebagai gaya "Harvard Comma" di beberapa bagian) tidak berlaku - yaitu, tidak boleh ada koma sebelum konjungsi.
Setelah sore mengutak-atik, saya menemukan yang berikut:
<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>
Ini menampilkan bylines seperti yang saya dapatkan di atas.
Pada akhirnya, saya juga harus membuang spasi di antara lielemen, untuk menghindari gangguan: properti inline-block akan meninggalkan spasi sebelum setiap koma. Mungkin ada peretasan alternatif yang layak untuk itu tetapi itu bukan subjek pertanyaan ini jadi saya akan menyerahkannya kepada orang lain untuk menjawab.
Biola di sini: http://jsfiddle.net/5REP2/