left跟right为什么还是居中?

left和right为什么还是居中???
<body>
<div class="border mass">
   <div id="nav">
      <div class="left">left</div>
      <div class="right">right</div>
   </div>   
</div>
</body>


body{
height:100%;
width:100%;
border:none;
font:Arial, Helvetica, sans-serif;
font-size:12px;
color:black;
background-color:#FFF;
margin:0;
padding:0;
text-align:center;
}
.mass{
width:951px;
}
.border{
border:#906 solid 1px;
}
#nav{
width:auto;
}
#nav.left{
float: left;
width: 371px;
}
#nav.right{
float: right;
width: 580px;
}
------解决思路----------------------
#nav和.left之间要有空格
#nav .left{
#nav .right{