Мне нужно использовать селектор атрибутов в css, чтобы изменить ссылку на другой цвет и изображение, но это не работает.
У меня есть этот html:
<a href="/manual.pdf">A PDF File</a>
И этот css:
a {
display: block;
height: 25px;
padding-left: 25px;
color:#333;
font: bold 15px Tahoma;
text-decoration: none;
}
a[href='.pdf'] { background: red; }
Почему фон не красный?
html
css
css-selectors
Игорь Краскынлыков
источник
источник
element[attribute_name="attribute_value"]
.Ответы:
Используйте $ после вашего href. Это приведет к тому, что значение атрибута будет соответствовать концу строки.
JSFiddle: http://jsfiddle.net/UG9ud/
источник: http://www.w3.org/TR/selectors/
источник
Принятый ответ (использование
a[href$='.pdf']
) предполагает, что ссылка на PDF всегда будет заканчиваться на.pdf
. Это не обязательно так, поскольку ссылка может иметь строку запроса или хеш-фрагмент, например, с кодом отслеживания UTM или номером страницы, и в этом случае эти ссылки не будут сопоставлены. Фактически, в зависимости от вашего приложения это может иметь место для большинства ссылок.Если вы хотите убедиться, что ваше правило также применяется в этих случаях, вы можете сопоставить
.pdf
любое место в атрибуте, используяОднако тогда это будет соответствовать некоторым маловероятным, но непреднамеренным вещам, таким как субдомен
our.pdf.domain.com/a-page
. Но мы можем сузить его еще больше, так как мы знаем, что будем использовать его только для сопоставления PDF-файлов, которые имеют строку запроса или хеш-фрагмент. Если мы объединим 3 случая, мы должны сопоставить все ссылки в формате PDF.источник