Вы должны поместить обоих в div и поместить их влево и вправо, если вы хотите, чтобы они были выровнены таким образом. Вот что я хотел бы изменить в CSS.
.card {
display:block;
}
.op {
margin-top: 1em;
float:left;
}
.meta li:after {
content:"";
clear:both;
display:inline-block;
width:1px;
height:1px;
}
и положить их в свой div
<div class="card">
<div class="op">
<a href="#"><img src="avatar.png" alt="" />Josh</a>
</div><!--.op-->
<ul class="meta">
<li class="fav">
<a href="#" title="See fans of this screenshot">304</a>
</li>
<li class="cmnt
">
<a href="#" title="View comments on this screenshot">35</a>
</li>
</ul>
</div>
Четкое исправление с :after
сделает так, чтобы родительский объект не рухнул за ним.