css如何编写可读性及可维护性比较高?

编写方式1:全部使用class加id选择器,且每个class都自己写全部样式,就算有部分样式跟别的class一样。

 .nav_main{
    line-height:35px;
    background:url(../pic/nav_bg.gif);
    border-radius:2px;} 

.nav_main ul li{
    float:left;
    margin:0px 23px;
    font-size:16px;
    color:#FFF;
    line-height:35px;}
.nav_main ul li a{
    color:#FFF;}

.nav_son{
    background:#eee;
    padding:0px 22px;}
.nav_son ul li{
    float:left;
    line-height:25px;

编写方式2:利用后代,子代,相邻,第一,最后等等选择器,且相同的样式写在一起,例如下面:

 .top .topin ul li,.nav ul li,
.nav_son ul li,.hot_l table ul li,
.bottom ul li,.logo ul li,.ad_l,.ad_r,
#ad1,#ad2,#ad2,.hot_l,.hot_r,
.women_l,.women_r,#women1,#women2{
    float:left;
}

请各位前辈,应该选择哪种?或者有没有更好的方法?

使用less 实现对css的管理,由于less 可以做到和html结构一致,所以管理起来相当方便。在开发环境使用less进行css的开发和维护。
生产环境(线上)就使用less编译后的css文件。(less可以直接编译成css)