Я должен признать, что понятия не имею, почему это происходит, но, по крайней мере, я нашел способ исправить это.
Я думал, что смогу использовать box-shadow: 0 0 0 1px black;
и удалить границу, но это масштабируетэлемент по-другому (и IE действительно плохо отображает тонкие тени, даст более неожиданные результаты, чем этот).Установка внешнего div на overflow: hidden;
и использование зеленой тени-рамки на внутренней для заполнения промежутка тоже не сработало, box-shadow была обрезана.Даже flexbox и плавающие вещи не помогли, и это, похоже, не похоже на размер блока или высоту строки.
Единственное, что сработало, это замена границы на outline: 1px solid black;
Это также изменяет масштаб элемента, но его можно перенастроить, добавив отступ 1px + подход box-shadow, чтобы заполнить пробел:
.outer {
padding: 1px;
background-color: yellow;
outline: 1px solid black;
outline-offset: -1px;
overflow: hidden;
}
.inner {
background-color: green;
box-shadow: 0 2px 0 green;
}