J'essaie d'ajouter des symboles de liste de contrôle au bord gauche des cellules du tableau. Jusqu'à présent, cela fonctionne. Quand j'essaye d'empiler un autre caractère au-dessus du symbole de liste de contrôle cependant, les choses deviennent moche. J'ai trouvé plusieurs façons d'obtenir le résultat que je recherche, mais aucune d'entre elles ne me semble particulièrement bonne. Est-ce que quelqu'un a une meilleure idée, de préférence une qui permettrait de se concentrer sur la sémantique?Manière sémantique d'empiler deux caractères dans un élément :: before?
.checklist::before {
content: "◯ ";
}
.checklistabs::before {
content: "◯ ";
position: absolute;
}
.check::before {
content: " ✘";
position: absolute;
font-size: 130%
}
.checked {
position: absolute;
font-size: 130%
}
.checklisttext {
margin-left: 1.5em;
}
<table>
<tr>
<td class="checklist">
perfect as long as nothing needs to be overlaid
</td>
</tr>
<tr>
<td>
<b class="checked">✘</b>
◯ Seems to work best, but has explicit bullet symbol as part of the text.
</td>
</tr>
<tr>
<td>
<div class="checklistabs" />
<div class="check" /> If the bullet symbol goes into another absolutely positioned item, we need to make space at the beginning of the text. ::before would have been much more elegant.
</td>
</tr>
<tr>
<td class="checklist">
<div class="check" /> why does this introduce a linebreak?
</td>
</tr>
<tr>
<td class="checklistabs">
<div class="check" /> Saving on divs
</td>
</tr>
<tr>
<td>
<div class="checklistabs" />
<div class="check" />
<div class="checklisttext">So this works...</div>
</td>
</tr>
<tr>
<td class="checklist check">
Looks preferrable from a semantic point of view but does not work - see http://stackoverflow.com/questions/11998593/can-i-have-multiple-before-pseudo-elements-for-the-same-element
</td>
</tr>
</table>
Une bien meilleure solution. – jbutler483
Cette solution semble parfaite, laissant le html lui-même aussi discret que possible. Et il se comporte bien même dans les tables à plusieurs colonnes, merci! –