last-child/last-of-type 和 [attr|=value]/[attr^=value]

last-child/last-of-type And [attr|=value]/[attr^=value]

例如 p:last-child 选择器和 p:last-of-type 选择器有什么区别?

还有什么区别,例如 p[class|"hello"] 和 p[class^="hello"]

如您所料,p:last-child 匹配最后一个子元素,p:last-of-type 匹配该类型的最后一个元素。
p[class|"hello"]p[class^="hello"] 的区别在于前者不是有效的选择器,而后者是。
另外,请参阅对您的问题的评论。