如何使用 :before pseudo class 制作跨度输入?

How can I make a Input with a span with :before pseudo class?

这是我在 Whosebug 中的第一个问题... 我有一个输入类型按钮,我想在这个动画之前添加一个 pseudo:class (http://codepen.io/anon/pen/emodKG)。我知道这是不可能的,因为输入不能包含任何东西。所以我尝试用我的输入添加一个跨度,这个跨度我从 CodePen 给 class "btn" ...

问题是跨度超过了我的输入,我有动画但无法点击。

<span class="btn"><input type="button"></span>

试试这个,我想这对你有帮助:)

.btn {
  position: relative;
  display: block;
  margin: 30px auto;
  padding: 20px;
  overflow: hidden;
  border-width: 0;
  outline: none;
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .6);
  background-color: #2ecc71;
  color: #ecf0f1;
  transition: background-color .8s;
  text-align: center;
}
.btn:hover,
.btn:focus {
  background-color: #27ae60;
}
.btn:before {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: 0;
  padding-top: 0;
  border-radius: 100%;
  background-color: rgba(236, 240, 241, .2);
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.btn:active:before {
  width: 100%;
  padding-top: 100%;
  transition: width .1s ease-out, padding-top .1s ease-out;
}
.btn input {
  display: none;
}
<label class="btn"><input type="button" />Button</label>