이 질문에 대한 또 다른 답변을 추가하는 이유는 @derek이 요청한 것이 정확히 필요했기 때문이며 여기에서 답변을보기 전에 이미 조금 더 나아갔습니다. 특히, 내가 CSS를 필요로 그 수 또한 쉼표가 원하지 않는 정확히 두 개의 목록 항목의 경우를 설명합니다. 예를 들어, 제가 제작하고자하는 저자별 바이 라인은 다음과 같습니다.
한 명의 저자 :
By Adam Smith.
두 명의 저자 :
By Adam Smith and Jane Doe.
세 명의 저자 :
By Adam Smith, Jane Doe, and Frank Underwood.
여기에 이미 제공된 솔루션은 한 명의 작성자와 3 명 이상의 작성자에게 적용되지만 "Oxford Comma"스타일 (일부에서는 "Harvard Comma"스타일이라고도 함)이 적용되지 않는 두 명의 작성자 사례를 고려하지 않습니다. -즉, 접속사 앞에 쉼표가 없어야합니다.
오후에 땜질을 한 후 다음을 생각해 냈습니다.
<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성가심을 피하기 위해 요소 사이의 공백도 제거해야했습니다 . 그렇지 않으면 인라인 블록 속성이 각 쉼표 앞에 공백을 남길 것입니다. 대체 괜찮은 해킹이있을 수 있지만이 질문의 주제는 아니므로 다른 사람이 대답하도록 남겨 두겠습니다.
여기 바이올린 : http://jsfiddle.net/5REP2/