<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> <style> body { color: green; } .red { color: red; font-size: 50px; } </style> </head> <body> <div class=""> <a href="#">这是a标签,有href</a> <a>这是a标签,没有href</a> <span>这是文字</span> <div class="red"> <h2>我是标题</h2> </div> </div> <p>下面,我理一理有哪些状况</p> <ul> <li>1. 设置body的颜色为red, a标签颜色不改变, 缘由是由于user agent的a自带有 ':any-link'.权重为10,覆盖了a标签继承a标签的样式。为何是user agent的样式高于了开发者定义的样式呢? 其实这里,a继承来的颜色和user agent的a的颜色不是同一级别的。由于它的颜色是继承来的(也就是说,并非user agent的样式高于了开发者定义的样式, 若是要比较,是指定了a的color而不是从其余地方继承过来的color)。因此不能单纯的比较样式的优先级。若是要比较user agent 和 user 以及 author的优先级,是创建在同一元素以及同一级别。</li> <li>2. 若是直接设置a的颜色,a标签颜色要改变, 缘由是author优先级比user agent优先级高.</li> <li>3. 若是没有href, 那么a标签颜色要改变。缘由是没有user-agent里的':any-link'</li> </ul> </body> </html>