看看小提琴http://jsfiddle.net/joplomacedo/UPjQL/3/
.button-rendered-as-a-link {
position: relative; <-------------
border: none;
padding: 0;
margin: 0;
background: none;
-moz-border-radius: none;
-webkit-border-radius: none;
border-radius: none;
-moz-box-shadow: none;
-webkit-box-shadow: none;
box-shadow: none;
color: #8A89BA;
font-weight: bold;
left: 2em; <-------------
}
.button-rendered-as-a-link:hover {
text-decoration: underline;
cursor: pointer;
}
.button-rendered-as-a-link:before {
content:" — ";
position: absolute; <-------------
right: 100%; <-------------
padding: 0 5px;
color: grey;
cursor: default !important;
pointer-events: none; <-------------
}
箭头代表我添加的内容。
我基本上通过使用 position: absolute 从流中删除了伪元素。这使得按钮的宽度等于没有伪元素的宽度,因此,它的下划线不超过该宽度。left 和 right 属性将它们放回原处。
然后,为了不触发按钮悬停,我将伪元素的指针事件设置为无。你可以在这里阅读更多关于它的信息https://developer.mozilla.org/en/CSS/pointer-events/。