try these styles:
.main:after {content:' '; display:block; height:0px; overflow:hidden; clear:both;}
.main {
background-color:red;
width:auto;
padding-left:300px;
}
.main aside {
float:left;
width:240px;
margin-left:-300px;
background-color: aqua;
}
.right {
float:right;
width:100%;
}