Я пытаюсь добавить символы контрольного списка в левый край ячеек таблицы. Пока это работает. Когда я пытаюсь выложить еще один символ поверх символа контрольного списка, все же все становится некрасиво. Я нашел несколько способов добиться результата, которого я добился, но никто из них не выглядит особенно хорошо для меня. Есть ли у кого-то лучшая идея, желательно такая, которая позволила бы сосредоточиться на семантике?Семантический способ укладки двух символов в элемент :: 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>
Гораздо лучшее решение. – jbutler483
Это решение выглядит идеально, оставляя сам html максимально незабитым. И он хорошо себя ведет даже в многоколоночных таблицах, спасибо! –