I run into a strange thing. To see is really to understand, so I've made an example jsfiddle. I got a html list with an icon. One list renders as plain html. The other exact-same-list is appended with javascript. Although the elements are exactly the same, the css is the same. One of them has right (and left) spacing and the other not. I played around with the markup heigh, width and element type, but nothing seems to get them right. Who knows what I'm missing and why this happens. And how to use the icons in a consistent way?
the markup (see fiddle for css and other icon set)
<div id="content1">
<ul class="list-horizontal">
<i class="fa fa-bars"></i>
<li>
<a href="#">A new thing</a>
</li>
</ul>
</div>
<div id="content2"></div>
/* string is the same as markup above */
var stringAwsome = '<ul class="list-horizontal"><i class="fa fa-bars"></i><li><a href="#">A new thing</a></li></ul>';
var div = document.getElementById('content2');
div.innerHTML = div.innerHTML + stringAwsome;