Много лет в верстке, но, порой сталкиваюсь с непонятным поведением. Чаще всего такое встречается с родовой травмой css -- вертикальным выравниванием.
Собственно, сразу к делу:
https://jsfiddle.net/71e6h4n2/2По какой-то причине, высота кнопки, где применено vertical-align: middle - правило у дочернего элемента, увеличивает высоту родителя. Другие его значения (top, bottom ,baseline) такого не делают.
Также приведу код здесь:
<div>
<i>35px</i>
<button>
<span>default</span>
</button>
<button>
<span class="middle">middle</span>
</button>
<button>
<span class="bottom">bottom</span>
</button>
<button class="flex">
<span>flex</span>
</button>
</div>
* {
box-sizing: border-box;
}
div > * {
vertical-align: top;
}
div {
border: 1px solid #aaa;
background: #ffe;
}
button {
line-height: 15px;
padding: 10px;
outline: none;
border: none;
background; #ccc;
}
.middle {
vertical-align: middle;
}
.bottom {
vertical-align: bottom;
}
.flex {
display: inline-flex;
align-items: center;
justify-content: space-around;
}
i {
width: 35px;
height: 35px;
display: inline-block;
line-height: 35px;
text-align: center;
background: #cc8;
}
P.s. Может забить, и в кнопках тоже использовать flex? он вроде как стабильно работает