web-dev-qa-db-fra.com

Comment supprimer l'effet 'appuyer sur le bouton' et le rendre plat même lorsque vous cliquez

J'ai le bouton avec les styles suivants

button {
  background: none;
  border-color: #87db41;
  color: #87db41;
  padding: 5px 5px;
  width: 30%;
  text-align: center;
  &: active {
    border-color: @aviata-color;

  }
}
<button>Subscribe</button>

Et je veux supprimer l'effet 3D «appuyez sur le bouton». Comment puis-je faire cela? J'utilise également bootstrap sur mon site si cela peut aider

13
AmirM

Juste une suggestion.

Lorsque vous utilisez bootstrap, vous pouvez voir, dans le code bootstrap.css, ceci: 

.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: thin dotted;
  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-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btn-default:focus,
.btn-default.focus {
  color: #333;
  background-color: #e6e6e6;
  border-color: #8c8c8c;
}
.btn-default:hover {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  color: #333;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.btn-default:active:hover,
.btn-default.active:hover,
.open > .dropdown-toggle.btn-default:hover,
.btn-default:active:focus,
.btn-default.active:focus,
.open > .dropdown-toggle.btn-default:focus,
.btn-default:active.focus,
.btn-default.active.focus,
.open > .dropdown-toggle.btn-default.focus {
  color: #333;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
  background-image: none;
}
.btn-default.disabled,
.btn-default[disabled],
fieldset[disabled] .btn-default,
.btn-default.disabled:hover,
.btn-default[disabled]:hover,
fieldset[disabled] .btn-default:hover,
.btn-default.disabled:focus,
.btn-default[disabled]:focus,
fieldset[disabled] .btn-default:focus,
.btn-default.disabled.focus,
.btn-default[disabled].focus,
fieldset[disabled] .btn-default.focus,
.btn-default.disabled:active,
.btn-default[disabled]:active,
fieldset[disabled] .btn-default:active,
.btn-default.disabled.active,
.btn-default[disabled].active,
fieldset[disabled] .btn-default.active {
  background-color: #fff;
  border-color: #ccc;
}
.btn-default .badge {
  color: #fff;
  background-color: #333;
}
<button class="btn btn-default">BTN DEFAULT</button>

La première partie définit simplement les propriétés d'affichage de tous les éléments de classe "btn" . La seconde partie définit des paramètres d'affichage plus spécifiques pour les éléments "btn-default" (il existe également btn-success btn-warning et ainsi de suite ...) .

Si vous souhaitez personnaliser cela, copiez simplement le code et changez le nom en "btnCustom" et modifiez les paramètres. OR ajoute simplement un affichage spécifique à btn- *, tel que btn-pink, ou autre. Je l'utilise souvent pour créer plusieurs thèmes de couleur pour les boutons. Dans mes projets, j'ai parfois des choses comme btn-black, btn-purple, ...

Ci-dessous le code comme exemple de "btnCustom btnCustom-default", un bouton qui ne se déplacera pas, gardez simplement statique avec le thème de couleur "default" de bootstrap: 

.btnCustom {
  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;
  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;
}
.btnCustom:hover,
.btnCustom:focus,
.btnCustom.focus {
  text-decoration: none;
}
.btnCustom:active,
.btnCustom.active {
  background-image: none;
}
.btnCustom.disabled,
.btnCustom[disabled],
fieldset[disabled] .btnCustom{
  cursor: not-allowed;
  filter: alpha(opacity=65);
  opacity: .65;
}
a.btnCustom.disabled,
fieldset[disabled] a.btnCustom{
  pointer-events: none;
}
.btnCustom-default {
  color: #333;
  background-color: #fff;
  border-color: #ccc;
}
.btnCustom-default:focus,
.btnCustom-default.focus {
  color: #333;
}
.btnCustom-default:hover {
  color: #333;
}
.btnCustom-default:active,
.btnCustom-default.active,
.open > .dropdown-toggle.btnCustom-default {
  color: #333;
}
.btnCustom-default:active:hover,
.btnCustom-default.active:hover,
.open > .dropdown-toggle.btnCustom-default:hover,
.btnCustom-default:active:focus,
.btnCustom-default.active:focus,
.open > .dropdown-toggle.btnCustom-default:focus,
.btnCustom-default:active.focus,
.btnCustom-default.active.focus,
.open > .dropdown-toggle.btnCustom-default.focus {
  color: #333;
}
.btnCustom-default:active,
.btnCustom-default.active,
.open > .dropdown-toggle.btnCustom-default {
  background-image: none;
}
.btnCustom-default.disabled,
.btnCustom-default[disabled],
fieldset[disabled] .btnCustom-default,
.btnCustom-default.disabled:hover,
.btnCustom-default[disabled]:hover,
fieldset[disabled] .btnCustom-default:hover,
.btnCustom-default.disabled:focus,
.btnCustom-default[disabled]:focus,
fieldset[disabled] .btnCustom-default:focus,
.btnCustom-default.disabled.focus,
.btnCustom-default[disabled].focus,
fieldset[disabled] .btnCustom-default.focus,
.btnCustom-default.disabled:active,
.btnCustom-default[disabled]:active,
fieldset[disabled] .btnCustom-default:active,
.btnCustom-default.disabled.active,
.btnCustom-default[disabled].active,
fieldset[disabled] .btnCustom-default.active {
}
.btnCustom-default .badge {
  color: #fff;
  background-color: #333;
}
<button class="btnCustom btnCustom-default">BTNCUSTOM DEFAULT</button>

Cela semble assez compliqué, ou long . Mais cela vous permet de construire votre propre style de classes de type "bootstrap-like" css et il est ensuite réutilisable facilement, enregistrez vos modifications dans un fichier "customBootstrap.css" et ajoutez-les à votre projet.

J'espère que cela t'aides ;)

6
Julo0sS

Utilisez la règle CSS suivie:

:active { border-style: outset;}

button {
  background: none;
  border-color: #87db41;
  color: #87db41;
  padding: 5px 5px;
  width: 30%;
  text-align: center;
  outline: none;
}
button:active {
  border-style: outset;
}
<button>Subscribe</button>

Aussi, je supprime le contour du bouton activé.

5
vp_arth

Par défaut, button obtient la propriété -webkit-appearance: button ou toute autre propriété, en fonction du navigateur. 

Vous pouvez réinitialiser ce style de différentes manières.

Utiliser border: none; ou même border-style: outset; car cela transformera la appearance en none.

2
Joel Almeida

si vous utilisez bootstrap, veuillez utiliser la classe bootstrap btn , btn-primary , puis dans votre css, insérez ce code. J'espère que cela vous aidera.

.btn {
    -webkit-border-radius: 0px;
    -moz-border-radius: 0px;
    -ms-border-radius: 0px;
    -o-border-radius: 0px;
    border-radius: 0px;
    outline: none;
    border: none;

}
.btn:active {
  border-style: outset;
  border: none;
}


<button class="btn btn-primary">Subscribe</button>
1
Surendra Singh Rana

Il suffit de définir border-style sur solid et d'inclure certains états active/focus 

button {
  background: none;
  border-style: solid;
  border-color: #87db41;
  color: #87db41;
  padding: 5px 5px;
  width: 30%;
  text-align: center;
  &: active {
    border-color: @aviata-color;

  }
}

button.active.focus, button.active:focus,
button.focus, button:active.focus, 
button:active:focus, button:focus {
  outline: none;
  box-shadow: none;
  background-color: white;
}
<button>Subscribe</button>

1
CeeJay