我正在使用css :before
和:hover
的组合在按钮中添加图片。
我遇到的问题是,当我将鼠标悬停在:before
元素上时,它会正确触发图像位置更改,但不会触发创建li:hover
元素的:before
。
我猜这是因为:before
元素位于li
之上的方式,导致:hover
无法触发。
这是一张图片,可以更好地解释发生的事情:
这是我的css:
.columnStat ol li {
list-style: none;
margin-right: 3px;
display: inline-block;
}
ol, ul {
list-style: none;
}
#page .columnStat ol {
margin: 0px 8px;
padding-top: 8px;
}
body {
line-height: 1;
}
html, body {
height: 100%;
}
body {
margin: 10px 10px;
color: rgb(35, 35, 35);
font-family: Verdana, Helvetica, Sans-Serif;
font-size: 0.75em;
}
a {
}
a:link {
color: rgb(0, 102, 204);
text-decoration: underline;
}
a:visited {
color: rgb(0, 102, 204);
text-decoration: none;
}
.columnStat ol > li > a, .columnStat ol > li > span {
padding: 6px 7px 6px 20px;
border-radius: 4px;
border: 1px solid rgb(190, 190, 190);
border-image: none;
color: rgb(89, 89, 89);
text-decoration: none;
}
.columnStat ol li a:hover{
background-color:#7c7c7c !important;
border:1px solid #717171;
color:#fff;
cursor:pointer;
background-image:none;
}
.vbt_true:before, .vbt_false:before {
display: inline-block;
content: "";
width: 15px;
height: 28px;
background: transparent url(http://i.stack.imgur.com/0Chc7.png) no-repeat;
float:left;
margin-right:-15px;
margin-top:-4px;
position:relative;
}
.vbt_false:before {
background-position: 3px -1px;
}
.vbt_true:before {
background-position: -14px -1px;
}
.vbt_false:hover:before, .vbt_false.act:before {
background-position: 3px -31px;
}
.vbt_true:hover:before, .vbt_true.act:before {
background-position: -14px -31px;
}
和HTML:
<div id="containerAdmin">
<div id="page">
<div class="columnStat">
<ol>
<li class="vbt_true"><a href="#">Button Text</a>
</li>
<li class="vbt_false"><a href="#">Button Text</a>
</li>
</ol>
</div>
</div>
</div>
这是一个有效的小提琴 http://jsfiddle.net/wf_4/B42SH/
答案 0 :(得分:8)
您需要使用pointer-events: none;
,这样即使您悬停 :before
生成的伪内容,它的行为就像您正在悬停正常按钮一样。
.vbt_true:hover:before, .vbt_true.act:before {
background-position: -14px -31px;
pointer-events: none;
}
除了表明该元素不是鼠标的目标 事件,值
none
指示鼠标事件进入&#34;通过&#34;该 元素和目标是&#34;在&#34;下面&#34;而是那个元素。
您可能会发现对IE (通常情况下) ...
的支持不那么令人印象深刻
致谢:Mozilla开发者网络
但我们总是polyfills可用