css line-height 多出 1px

代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <style>
    #btn {
      background: #f00;
      margin: 0;
      border: 0;
      padding: 0 15px;
      
      display: block;
      line-height:55px;
    }
    #icon {
      background: #000;
      color: #fff;
      
      line-height: 55px;
      display: inline-block;
      vertical-align: middle;
    }
  </style>
  <button id="btn"><span id="icon">hello<span></button>
</body>
</html>

最终的效果却是下面这样:

clipboard.png

仔细观察,父元素顶部多了1px

这是什么原因导致的。

其实我不太关心这个问题怎么可以解决,而是关心这个问题出现的原因。

阅读 6.5k
3 个回答

内联元素自带的间距,解决办法

inline-block => block

block元素font-size:0px
inline-block元素font-size:具体大小

两种方法任选其一
1:把#btn{line-height:55px;}去掉,让#icon 里的line-height去撑开它的父元素;
2:把#icon {display: inline-block}改为icon {display:block};

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题