Ich muss die Attributauswahl in CSS verwenden, um den Link für verschiedene Farben und Bilder zu ändern, aber es funktioniert nicht.
Ich habe dieses HTML:
<a href="/manual.pdf">A PDF File</a>
Und diese CSS:
a {
display: block;
height: 25px;
padding-left: 25px;
color:#333;
font: bold 15px Tahoma;
text-decoration: none;
}
a[href='.pdf'] { background: red; }
Warum ist der Hintergrund nicht rot?
html
css
css-selectors
Igor Kraskynlykov
quelle
quelle
element[attribute_name="attribute_value"]
.Antworten:
Verwenden Sie das $ nach Ihrem href. Dadurch wird der Attributwert an das Ende der Zeichenfolge angepasst.
JSFiddle: http://jsfiddle.net/UG9ud/
Quelle: http://www.w3.org/TR/selectors/
quelle
Die akzeptierte Antwort (mit
a[href$='.pdf']
) setzt voraus, dass ein Link zu einem PDF immer mit endet.pdf
. Dies ist nicht unbedingt der Fall, da der Link eine Abfragezeichenfolge oder ein Hash-Fragment haben könnte, beispielsweise mit einem UTM-Tracking-Code oder einer Seitenzahl. In diesem Fall würden diese Links nicht übereinstimmen. Abhängig von Ihrer Anwendung kann dies bei den meisten Links der Fall sein.Wenn Sie sicherstellen möchten, dass Ihre Regel auch in diesen Fällen angewendet wird, können Sie eine
.pdf
beliebige Stelle im Attribut verwendenDies entspricht dann jedoch einigen unwahrscheinlichen, aber unbeabsichtigten Dingen, wie z. B. einer Subdomain
our.pdf.domain.com/a-page
. Wir können es jedoch weiter eingrenzen, da wir wissen, dass wir es nur für pdfs verwenden würden, die eine Abfragezeichenfolge oder ein Hash-Fragment enthalten. Wenn wir die 3 Fälle kombinieren, sollten wir alle PDF-Links abgleichen.quelle