CSS输入字段造型魔术

我试图以一致的方式设置输入字段和一些按钮的样式,但似乎有一些魔法正在进行.事件虽然输入与按钮完全相同,但它略高.此外,占位符文本与输入的文本垂直对齐(高一个像素).这可以通过跨浏览器解决方案来解决吗?

编辑:正如JanTotoň所指出的那样,行高已经解决了Webkit中的问题.现在,如果您检查Firefox中的codepen,您会注意到该元素仍然具有1px边框.如何摆脱它?

Thx,PS

Codepen

HTML

<form action="">
  <a href=""class="btn">Button</a>
  <input type="text" class="btn" placeholder="input"/>
  <button class="btn">Login</button>
  <a href=""class="btn">Button</a>
</form>

CSS

.btn, input, button {

  display: inline-block;
  vertical-align: middle;
  line-height: 15px;
  font-size: 15px;
  font-family: sans-serif;

  border: 0;
  padding: 0;
  margin: 0;

  cursor: pointer;
  cursor: hand;

  text-decoration: none;
  color: #f2f2f2;
  background-color: #1a1a1a;
  padding: 7px 12px 8px 12px;
  margin-right: 1px;
  margin-bottom: 1px;

}

最佳答案 行高不会缩小字体大小以下的输入高度加上一些像素
see the MDN info

On replaced inline elements, like buttons or other input element, line-height has no effect.

只需删除行高,即使不使用高度风格,也应该得到你想要的.将行高设置为130%似乎也有效.

点赞