Кажется, что атрибут display: none;
класса .make-invisible
сбивает с толку Edge.
Я думал, что обновление специфичности класса .make-visible
до уровня, подобного .foo.make-visible
, приведет кустранить проблему, но даже в этом случае проблема сохраняется в Edge.
Самое простое решение IMO - удалить класс .make-invisible
из элемента div, потому что я не вижу причины, по которой вам нужноиметь одновременно классы .make-invisible
и .make-visible
на одном элементе.
Обновление
После рассмотрения вашего обновления я смог придуматьне слишком уродливый взлом.Это не только решает проблему в Edge, но и не влияет на поведение в Chrome или FF.
Что вам нужно будет сделать, это определить класс дважды для каждого свойства в отдельном классе, например:
.foo {
display: block;
}
.foo {
display: var(--display-var, block);
}
Вот рабочая версия вашего демо: https://jsfiddle.net/sbr29yo6/