我们在点击超链接的时候,会发现
这四个状态,链接的文本会发生不一样的状态,这样的效果就是用CSS的伪类选择器来实现。
正确的CSS顺序应该是
Why?
因为这四个CSS的优先级是一样的,所有后者会覆盖前者。
从实现的步骤来分析,就应该是这样排列才对。
用户的操作步骤是
1. 还没有点击链接
那么只有 a:link 这一条样式生效,用户看到的是没有点击的样式。
2. 鼠标移上去悬浮在链接上
那么 a: link 和 a: hover 这两条生效,由于 a: hover 在后面,所以样式3覆盖了样式1,显示的是鼠标移上去悬浮在链接上这个样式
3. 鼠标按了下去
那么 a:link 、 a:hover 和 a:active 这三条生效, a:active 覆盖了前两者,显示出来的就是鼠标点击时候的样式。
4. 点击完发生链接之后
那么 a: visited 这一条永久生效,显示出来的就是链接后的样式。
总之,必须是,
css:层叠样式表是一种用来表现HTML或XML等文件样式的计算机语言。能够做到网页表现与内容分离的一种样式设计语言。但是想要有交互特效,比如点击、拖曳、失焦、聚焦等特效都是需要结合js、jq来实现的。因此没办法做到点击a标签达到显示a内部其他dom内容。
不过css有个hover能实现鼠标移动到a标签上展示其下内容。比如最常见的鼠标经过展示下拉框,使用纯css就能达到,主要原因就是使用hover经过将下面的ul.submenu给显示出来
例如
<a href="#" id="a1">xxx
<ul style="display:none/*一开始是隐藏的,为了说明直接写在节点上*/">
<li><a href="#">111</a></li>
......
</ul>
</a>
css:
#a1:hover ul{ display:block/*鼠标经过将ul显示出来*/}