Я думаю, немного о вашем HTML здесь. Предполагая, что в вашем теге A нет дополнительного HTML-кода, краткий ответ таков: текстовое оформление нельзя применить только к части тега A с помощью CSS. Это относится ко всем тегам А или нет. : Тег hover срабатывает для тега A. : Before не является действительно отдельным элементом DOM. A: hover запускается независимо от того, находитесь ли вы над частью: before или обычной частью, если это имеет смысл.
Однако, если вы не возражаете, добавив немного дополнительного HTML-кода в тег A, подчеркивание может быть применено только к этому элементу:
<a class="cancel" href="http://example.com"><i>http://example.com</i></a>
a.cancel:hover i {
text-decoration: underline;
}
Выше будет сказано, что следует подчеркивать только во внутреннем теге, а не во всем теге A. Вы можете использовать любой встроенный тег, например, span и т. Д. Это может быть не то, что вы хотите, но без какого-либо разделения, вы не можете применять A: hover только к тексту, а не к: before , Это все один элемент DOM. Если вы проверите его в Chrome (и других), вы увидите :: before внутри контейнера A.