a [type ="application/pdf"] vs [href $ =".pdf"]

Jit*_*yas 6 css

是什么这两个选择之间的差异 a[type="application/pdf"]a[href$=".pdf"]

a[type="application/pdf"] { 
  background-image: url(/images/pdf.gif);
  padding-left: 20px;
}

a[href$=".pdf"] { 
  background-image: url(/images/pdf.gif);
  padding-left: 20px;
}
Run Code Online (Sandbox Code Playgroud)

Dis*_*oat 10

接受的答案并不完全正确.没有选择器执行"MIME类型匹配".

a[type="application/pdf"]将匹配"type"属性设置为"application/pdf"的所有链接.如果要显示PDF图标,则需要添加type="application/pdf"到所有approprite链接.

这正是type链接上的属性(参见规范),为MIME类型提供"提示".但是,在开始下载文件之前,浏览器实际上并不知道文件的类型.只想清除它.

另一个选择器a[href$=".pdf"]仅匹配链接的URL.它将匹配任何结尾的链接.pdf,无论它们实际上是否是PDF文件.当然,它不会匹配像file.pdf?v=2.

最好的办法是手动标记PDF文件的所有链接,或者使用type属性,或者因为你想要IE兼容性,只需要一个普通的类.


Del*_*ani 3

一个执行 MIME 类型匹配,另一个执行扩展名匹配。您可能应该使用第一个,因为并非每个人都使用文件扩展名。