Вы можете сделать это просто, используя псевдо.
- Для более старых браузеров используйте также
text-align
и установите margin
из центрального изображения.
#bannerTop {
position: relative;
/* show midlle on x & y axis */
background-image: linear-gradient(to left, transparent 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(to top, transparent 50%, rgba(0, 0, 0, 0.25) 50%);
background-color: #293038;
height: 2.5rem;
border-bottom-style: solid;
border-bottom-width: thin;
border-bottom-color: #293038;
/* css 2.1 method */
text-align: center;
line-height: 2.5rem;
}
a,
img,
#bannerTop:before {
vertical-align: middle;/* tells itself */
}
.center .center {
height: 1.5rem;
width: 4.8rem;
margin: 0 5rem /* set margin here */
}
/* create pseudo and reset line-height */
#bannerTop:before,
a {
content: '';
display: inline-block;
line-height: 0.5em
}
/* give pseudo same size as right image to balance equally */
.center a img,
#bannerTop:before {
height: 1.7143rem;
width: 1.75rem;
}
<div id="bannerTop" class="center">
<img src="http://dummyimage.com/100" style="" class="center">
<a href="#"><img src="http://dummyimage.com/100"></a>
</div>
- Для современных браузеров свойства
flex
подойдут
#bannerTop {
/* show middle */
background-image: linear-gradient(to left, transparent 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(to top, transparent 50%, rgba(0, 0, 0, 0.25) 50%);
background-color: #293038;
height: 2.5rem;
border-bottom-style: solid;
border-bottom-width: thin;
border-bottom-color: #293038;
/* css 3 mehod */
display: flex;
align-items: center;
justify-content: center;
}
.center .center {
height: 1.5rem;
width: 4.8rem;
margin: 0 5rem/* margins here */
}
/* create pseudo*/
#bannerTop:before {
content: '';
display: inline-block;
}
/* size pseudo too */
.center a img,
#bannerTop:before {
height: 1.7143rem;
width: 1.75rem;
}
<div id="bannerTop" class="center">
<img src="http://dummyimage.com/100" style="" class="center">
<a href="#"><img src="http://dummyimage.com/100"></a>
</div>
с комментариями CSS и ручкой для игры с