::after
元素有CSS效果。例如:
.wrapper a:hover:after, footer.main-footer a:hover:after {
background:#ff0000;
}
在Chrome开发者控制台中,我注意到里面有一些链接标记::after
,会显示效果
<a href="test.com" data-term="event">Event::after</a>
虽然有些人没有它
<a class="back-to-portfolio" href="test2.com">All</a>
该元素没有显示效果。问题是,如何将::after
添加到链接标记或::after
将显示的条件下?
答案 0 :(得分:3)
基本上,要使:after
元素起作用或存在,应匹配整个选择器。在下面的代码段中,您可以看到只有作为a
元素后代的.wrapper
元素或footer.main-footer
元素的后代才会获得:after
元素。位于a
和div.wrapper
之外的其他footer.main-footer
未获得:after
元素。
需要注意的另一件事是data mapper pattern。因此,在下面的代码段中,:after
元素仅在a
悬停时生成。
.wrapper a:hover:after,
footer.main-footer a:hover:after {
background: #ff0000;
}
/* just for demo */
.wrapper,
footer {
position: relative;
height: 40px;
}
.wrapper a:hover:after,
footer.main-footer a:hover:after {
position: absolute;
content: ''; /* this is important */
height: 100%;
width: 100%;
left: 0px;
top: 0px;
z-index: -1;
}
&#13;
<div class='wrapper'>
<a href="test.com" data-term="event">Event::after</a>
</div>
<footer class='main-footer'>
<a href="test.com" data-term="event">Event::after</a>
</footer>
<a class="back-to-portfolio" href="test2.com">All</a>
&#13;
另一方面,在以下代码段中,:after
即使在a
没有悬停时也存在。
.wrapper a:after,
footer.main-footer a:after {
background: #ff0000;
}
/* just for demo */
.wrapper,
footer {
position: relative;
height: 40px;
}
.wrapper a:after,
footer.main-footer a:after {
position: absolute;
content: ''; /* this is important */
height: 100%;
width: 100%;
left: 0px;
top: 0px;
z-index: -1;
}
&#13;
<div class='wrapper'>
<a href="test.com" data-term="event">Event::after</a>
</div>
<footer class='main-footer'>
<a href="test.com" data-term="event">Event::after</a>
</footer>
<a class="back-to-portfolio" href="test2.com">All</a>
&#13;
关于为什么某些锚点/链接标记有:after
而另一些其他人没有问题的问题,原因应该是因为锚点/链接标记没有{ {1}}元素与设置:after
属性的选择器不匹配。
(我认为必须将内容属性设置在页面的某个位置,因为您提到它正在显示某些元素。)
答案 1 :(得分:1)
像这样添加content
属性:
.wrapper a:hover:after, footer.main-footer a:hover:after {
width: 30px;
height: 30px;
background:#ff0000;
content: "";
display: inline-block;
}