Кнопка остается сфокусированной (при наведении) после нажатия - PullRequest
0 голосов
/ 21 сентября 2018

Я использую bootstrap и vue 2.0.

Работает нормально, когда я не нажимаю кнопку.Он фокусируется на @mouseenter и не фокусируется на @mouseleave следующим образом.

enter image description here
enter image description here

Но когдаЯ нажал кнопку, она оставалась сфокусированной, пока я не сделаю еще один щелчок в любом месте, даже в другом окне.

enter image description here

Как это исправить?Вот HTML и CSS код.

Кнопка HTML:

 <button class="btn btn-primary" v-on:click="search()"
                          type="button">{{$lang.ticketsSearch}}</button>

Кнопка CSS:

.btn {
  display: inline-block;
  padding: 6px 12px;
  margin-bottom: 0;
  font-size: 14px;
  font-weight: normal;
  line-height: 1.42857143;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  -ms-touch-action: manipulation;
      touch-action: manipulation;
  cursor: pointer;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  background-image: none;
  border: 1px solid transparent;
  border-radius: 4px;
}
.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
  outline: 5px auto -webkit-focus-ring-color;
  outline-offset: -2px;
}
.btn:hover,
.btn:focus,
.btn.focus {
  color: #333;
  text-decoration: none;
}
.btn:active,
.btn.active {
  background-image: none;
  outline: 0;
  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
          box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
}
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
  cursor: not-allowed;
  filter: alpha(opacity=65);
  -webkit-box-shadow: none;
          box-shadow: none;
  opacity: .65;
}
a.btn.disabled,
fieldset[disabled] a.btn {
  pointer-events: none;
}        
.btn-primary {
  color: #fff;
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #286090;
  border-color: #122b40;
}
.btn-primary:hover {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  color: #fff;
  background-color: #286090;
  border-color: #204d74;
}
.btn-primary:active:hover,
.btn-primary.active:hover,
.open > .dropdown-toggle.btn-primary:hover,
.btn-primary:active:focus,
.btn-primary.active:focus,
.open > .dropdown-toggle.btn-primary:focus,
.btn-primary:active.focus,
.btn-primary.active.focus,
.open > .dropdown-toggle.btn-primary.focus {
  color: #fff;
  background-color: #204d74;
  border-color: #122b40;
}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
  background-image: none;
}
.btn-primary.disabled:hover,
.btn-primary[disabled]:hover,
fieldset[disabled] .btn-primary:hover,
.btn-primary.disabled:focus,
.btn-primary[disabled]:focus,
fieldset[disabled] .btn-primary:focus,
.btn-primary.disabled.focus,
.btn-primary[disabled].focus,
fieldset[disabled] .btn-primary.focus {
  background-color: #337ab7;
  border-color: #2e6da4;
}
.btn-primary .badge {
  color: #337ab7;
  background-color: #fff;
}

1 Ответ

0 голосов
/ 21 сентября 2018

Когда эта кнопка нажата, она принимает состояние: focus.Если вы не хотите, чтобы он вел себя так, вам придется перезаписать состояние фокуса, но это, вероятно, не очень хорошая идея.Вы можете посмотреть программно, сфокусировавшись на чем-то другом.

В этом конкретном случае, чтобы убрать «зелёный», когда вы щелкаете и уходите, вам нужно всего лишь сделать:

.btn-primary:focus,
.btn-primary.focus {
  color: #fff;
  background-color: #000; /*this is where the colour was green*/
  border-color: #122b40;
}
...