Принятый ответ (использование a[href$='.pdf']
) предполагает, что ссылка на PDF всегда будет заканчиваться на .pdf
. Это не обязательно так, поскольку ссылка может иметь строку запроса или хеш-фрагмент, например, с кодом отслеживания UTM или номером страницы, и в этом случае эти ссылки не будут сопоставлены. Фактически, в зависимости от вашего приложения это может иметь место для большинства ссылок.
<a href="/manual.pdf?utm_source=homepage">A PDF File</a>
<a href="/manual.pdf#page=42">A PDF File</a>
Если вы хотите убедиться, что ваше правило также применяется в этих случаях, вы можете сопоставить .pdf
любое место в атрибуте, используя
a[href*='.pdf']
Однако тогда это будет соответствовать некоторым маловероятным, но непреднамеренным вещам, таким как субдомен our.pdf.domain.com/a-page
. Но мы можем сузить его еще больше, так как мы знаем, что будем использовать его только для сопоставления PDF-файлов, которые имеют строку запроса или хеш-фрагмент. Если мы объединим 3 случая, мы должны сопоставить все ссылки в формате PDF.
a[href$='.pdf'], a[href*='.pdf?'], a[href*='.pdf#'] {
background: red;
}