0

I have the following structure/code:

.navbar__brand, .navcontainer { 
float:left;
}

.navbar__brand img {
vertical-align:middle;}
          
.navbar__menu { 
display:inline-block;
}

.navbar__menu li {
display:inline-block;
list-style: none;

}
<div class="header">
    <div class="navbar">
        <div class="navbar__brand">
        <a href=#> <img src="../img/logo.png"> </a>
        </div>
        <div class="navcontainer">
          <ul class="navbar__menu">
              <li><a href=#>Item 1</a></li>
              <li><a href=#>Item 2</a></li>
          </ul>
        </div>
    </div>
</div>

I want the image in navbar__brand to be vertical align in the middle; At this moment is align at the top of the div.

I need to support old IE browser so please no flex.

Bhuwan
  • 16,525
  • 5
  • 34
  • 57
user3541631
  • 3,686
  • 8
  • 48
  • 115

2 Answers2

1

The easiest way to achive this is simulating a table

.asTable{
display:table;
}

.asTR{
display:table-row;
}

.asTD{
display:table-cell;
vertical-align:middle;
border:1px solid;
}
.asTD ul{
list-style:none;
}

.asTD ul li {
display:inline-block;
}
<div class="asTable">
    <div class="asTR">
        <div class="asTD">
          <a href=#> <img src="../img/logo.png"> </a>
        </div>
        <div class="asTD">
          <ul class="">
              <li><a href=#>Item 1</a></li>
              <li><a href=#>Item 2</a></li>
          </ul>
        </div>
    </div>
</div>
LPZadkiel
  • 561
  • 1
  • 3
  • 16
0

(Edit) Thanks @TemaniAfif for pointing out that you need to support old IE browsers. This answer won't work in old browsers.

As usual, what is a pain to achieve with classic CSS (floats, inline-block, clearfix, etc.) is a breeze with Flex :

.navbar {
  display: flex;
  align-items: center;
  border: blue dashed 2px;
}

ul.navbar__menu {
  display: flex;
}

.navbar__menu li {
  list-style: none;
  padding: 10px;
}
<div class="navbar">
  <div class="navbar__brand">
    <a href=#> <img src="../img/logo.png"> </a>
  </div>

  <ul class="navbar__menu">
    <li><a href=#>Item 1</a></li>
    <li><a href=#>Item 2</a></li>
  </ul>
</div>
Jeremy Thille
  • 26,047
  • 12
  • 43
  • 63