You probably already solved your problem in one way or another, but since the message is raised by the Spirit of the community, I can not participate.
All that is required is to add an additional wrapper for the logo (in HTML) and add styles to it that stretch this wrapper to the full height and width and then center the inner element.
header { display: flex; padding: 15px; border: 1px solid #ccc; justify-content: space-between; position: relative; } menu, button { position: relative; z-index: 1; } .logo { position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; width: 100%; height: 100%; display: flex; } .logo a { margin: auto; }
<header> <button>button</button> <span class="logo"> <a href="/">LG</a> </span> <menu> <a href="#">menu 1</a> <a href="#">menu 2</a> <a href="#">menu 3</a> <a href="#">menu 4</a> </menu> </header>