you need to use the following:
#top-menu{
width: 100%;
height: 100px;
position: relative;
border: 1px solid black;
background-color: #A3238E;
}
#logo{
width: 50%;
float:left;
height: 100px;
position: relative;
display: inline-block;
background: orange;
}
#menu-top{
width: 49%;
float:left;
height: 100px;
position: relative;
display: inline-block;
background: green;
left: 0;
}
Noticed I added float:left;
to the two divs that you want side by side. Then on your html use the following:
<div id="top-menu">
<div id="logo"></div>
<div id="menu-top"></div>
<div style="clear:both;"></div>
</div>
Notice I added <div style="clear:both;"></div>
which will clear the float:left;
. You can use <div style="clear:left;"></div>
to do the same thing if you would like.