我正在尝试删除HTML Button元素上的所有效果。 HTML:
<div id="go">
<button onclick="load.update(true,cards.id);" type="submit"></button>
</div>
CSS:
#header #go button{
display:block;
border:0 none;
cursor:pointer;
outline:none;
vertical-align:top;
width:18px;
height:33px;
background:url('../images/cards/go.png'); //Just an image to replace it all.
}
在Chrome和Firefox中,这样可以正常工作,但在IE(至少8个)中,单击按钮时按钮的“推”效果仍然存在(EG偏移) 我可以使用任何技巧来消除这种效果吗? 提前致谢! Diesal。
答案 0 :(得分:8)
您需要添加背景样式:hover:active:focus。
#header #go button:hover {
border: none;
outline:none;
padding: 5px;
background:url('../images/cards/go.png');
}
#header #go button:active {
border: none;
outline:none;
padding: 5px;
background:url('../images/cards/go.png');
}
#header #go button:focus {
border: none;
outline:none;
padding: 5px;
background:url('../images/cards/go.png');
}
答案 1 :(得分:3)
我有类似的经历,能够在IE8中修复它,但不是IE7。看到它在这里工作: http://jsfiddle.net/GmkVh/7/
<强> HTML:强>
<button></button>
<强> CSS:强>
button {
color:#fff;
background:#000;
border: none;
outline:none;
padding: 5px;
cursor: pointer;
height: 25px;
}
/*
It hits this state (at least in IE) as you're clicking it
To offset the 1px left and 1px top it adds, subtract 1 from each,
then add 1 to the right and bottom to keep it the same width and height
*/
button:focus:active {
padding-top: 4px;
padding-left: 4px;
padding-right: 6px;
padding-bottom: 6px;
color: #ccc;
}
答案 2 :(得分:2)
用边框等完成任何你喜欢的事后,只需在文本周围的按钮内放一个跨度,如下所示:
<button class="button" type="submit"><span class="buttonspan">Blah</span></button>
然后CSS变为:
button {position:relative; width:40px; height:20px /* set whatever width and height */}
buttonspan {
height: 30px;
left: 0;
position: absolute;
top: 0;
width: 100%;
}
答案 3 :(得分:2)
<div class="calculation_button">
<button type="submit"><span>Count</span></button>
</div>
.calculation_button span {
position: relative;
left: 0;
top: 0;
}
在IE和FF中适合我
答案 4 :(得分:1)
以下内容对我在IE 10中有所帮助:
button:active {
position: relative;
top: -1px;
left: -1px;
}
它完美地固定了顶部,但是仍然有背景流血 - 尽管我的情况。如果用户开始点击然后将鼠标从按钮上移开,看起来仍然有点奇怪。显然,只启用相关IE版本的规则。
答案 5 :(得分:1)
职位相对似乎已经解决了这个问题
只需在按钮内设置一个包装器:
所以
<button>
<div class="content">Click Me</div>
</button>
并将DIV设置为相对于top的位置:0,left:0
以下示例:
答案 6 :(得分:1)
这是一种浏览器行为,一个简单的解决方案是使用链接标记而不是按钮(因为您正在调用javascript函数)。
<a href="#" onclick="myfunction()" role="button"><img src="myimg"/></a>
如果您仍想使用,我发现每个浏览器都有一些特性(通过简单的调试):
因此,要修复它们,您必须操纵按钮行为的伪选择器。对于IE,一个很好的解决方案是将文本包含在元素上,并使其相对定位。像这样:
<button type="button" class="button"><span>Buttom or Image</span></button>
<style>
button,
button:focus,
button:active{
border:1px solid black;
background:none;
outline:none;
padding:0;
}
button span{
position: relative;
}
</style>
答案 7 :(得分:0)
一种方法是完全删除<button>
标记,并在其位置使用<a href=".." />
标记,以您希望的方式设置样式。
让链接执行javascript回发。
更新(来自评论):
一个例子:
<a href="#" onclick="document.formName.submit();">Click Here</a>
当然,这需要启用javascript并被某些人视为滥用锚标记。
如果您使用.net webforms或jQuery,则有备用版本。