在旁边随便点一下,按钮就恢复到饱满的转态了。我看很多用了bootstrap的网站在按钮按下去都会这样,但马上就恢复了,我的就一直陷下去了。
这是因为浏览器默认给button
按下后有一个outline
,这并不是bootstrap
控件特意添加的。 如果要去掉这个效果可以把浏览器默认样式覆盖掉:
button, input {
outline: none;
}
这是 :active 和 focus 的区别:
:active:
点击某个元素(鼠标释放之前)之后,这个元素就是 active
:foucs:
点击某个元素,这个元素就是 focus
至于说陷下去的效果,可以使用 CSS3 的 box-shadow : inset xxx xxx xxx; 来设置。
<button type="button" class="btn btn-primary">登录</button>
这样会出现所说的问题,换用< a >标签就不会,<a class="btn btn-primary" href="#" role="button">登陆</a>
box-shadow:none; 应该可以解决你的问题。
.btn:focus, .btn.focus, .btn:active:focus,.btn:active.focus, .btn.active:focus, .btn.active.focus, input:focus, input:active, select:focus, select:active:focus{outline:none; box-shadow:none;}
这个状态和2各css伪类有关:
其一为:active
匹配被用户激活的元素。它让页面能在浏览器监测到激活时给出反馈。当用鼠标交互时,它代表的是用户按下按键和松开按键之间的时间。
其二为:focus
在一个元素成为焦点时生效,用户可以通过键盘或鼠标激活焦点
所以,鼠标完成一次点击后需要恢复原样的,使用:active伪类
鼠标完成一次点击后不恢复原样,直到失去叫焦点(如点击其他区域)才恢复,使用:focus伪类