Muszę użyć selektora atrybutów w css, aby zmienić link na inny kolor i obraz, ale to nie działa.
Mam ten html:
<a href="/manual.pdf">A PDF File</a>
A ten css:
a {
display: block;
height: 25px;
padding-left: 25px;
color:#333;
font: bold 15px Tahoma;
text-decoration: none;
}
a[href='.pdf'] { background: red; }
Dlaczego tło nie jest czerwone?
html
css
css-selectors
Igor Kraskynlykov
źródło
źródło
element[attribute_name="attribute_value"]
.Odpowiedzi:
Użyj znaku $ po href. Spowoduje to, że wartość atrybutu będzie zgodna z końcem ciągu.
JSFiddle: http://jsfiddle.net/UG9ud/
źródło: http://www.w3.org/TR/selectors/
źródło
Przyjęta odpowiedź (za pomocą
a[href$='.pdf']
) zakłada, że link do pliku PDF zawsze będzie kończył się na.pdf
. Niekoniecznie tak jest, ponieważ link może zawierać ciąg zapytania lub fragment z krzyżykiem, na przykład z kodem śledzenia UTM lub numerem strony, w którym to przypadku te linki nie zostaną dopasowane. W rzeczywistości, w zależności od aplikacji, może tak być w przypadku większości linków.Jeśli chcesz mieć pewność, że reguła jest również stosowana w takich przypadkach, możesz dopasować
.pdf
dowolne miejsce w atrybucie za pomocąJednak będzie to pasowało do niektórych mało prawdopodobnych, ale niezamierzonych rzeczy, takich jak subdomena
our.pdf.domain.com/a-page
. Ale możemy to jeszcze bardziej zawęzić, ponieważ wiemy, że użylibyśmy go tylko do plików PDF, które mają ciąg zapytania lub fragment z krzyżykiem. Jeśli połączymy te 3 przypadki, powinniśmy dopasować wszystkie linki pdf.źródło