Hinzufügen einer weiteren Antwort auf diese Frage, da ich genau das brauchte, wonach @derek gefragt hatte, und bereits ein Stück weiter gekommen war, bevor ich die Antworten hier sah. Insbesondere brauchte ich CSS, das auch den Fall mit genau zwei Listenelementen berücksichtigen konnte , bei denen das Komma NICHT erwünscht ist. Als Beispiel würden einige Autoren-Bylines, die ich produzieren wollte, wie folgt aussehen:
Ein Autor:
By Adam Smith.
Zwei Autoren:
By Adam Smith and Jane Doe.
Drei Autoren:
By Adam Smith, Jane Doe, and Frank Underwood.
Die hier bereits angegebenen Lösungen funktionieren für einen Autor und für drei oder mehr Autoren, berücksichtigen jedoch nicht den Fall mit zwei Autoren, bei dem der "Oxford Comma" -Stil (in einigen Teilen auch als "Harvard Comma" -Stil bekannt) nicht gilt - dh vor der Konjunktion sollte kein Komma stehen.
Nach einem Bastelnachmittag hatte ich mir Folgendes ausgedacht:
<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>
Es zeigt die Bylines an, wie ich sie oben habe.
Am Ende musste ich auch Leerzeichen zwischen liElementen entfernen , um einen Ärger zu umgehen: Die Inline-Block-Eigenschaft würde sonst vor jedem Komma ein Leerzeichen lassen. Es gibt wahrscheinlich einen alternativen anständigen Hack dafür, aber das ist nicht das Thema dieser Frage, also überlasse ich das jemand anderem, um es zu beantworten.
Geige hier: http://jsfiddle.net/5REP2/