ul,li做的一个类似表格的框,设置border后,中间相交的部分因为重叠变粗

如图,有什么优雅的解决方案么,不想一个一个的设置border-right
clipboard.png

clipboard.png

阅读 13.7k
9 个回答

html:

<ul>
        <li><a href="#">1</a></li>
        <li><a href="#">2</a></li>
        <li><a href="#">3</a></li>
        <li><a href="#">4</a></li>
        <li><a href="#">5</a></li>
    </ul>

css:

   *{ margin:0; padding:0;}
    ul{ 
        width: 520px; 
        height: 312px; 
        margin: 50px auto; 
    }
    ul li{ 
        list-style: none; 
        width: 100px; 
        height: 100px; 
        float: left; 
        border: 1px solid #999; 
        margin: 0 0 -1px -1px;
    }  

只要给每个li设置css属性 margin:0 0 -width -width 就可以了,其中的width是我们给li设置的边框宽度

在 head 标签内设置 div ul li {...}

只给左边第一个设置左边框,所有都是右边框;

/*style*/
.assert-item {
    border-right: 1px solid #ddd;
}
.assert-item:first-child {
    border-left: 1px solid #ddd
}
li {
    border-right: 1px solid #ECECEC;
    border-bottom: 1px solid #ECECEC;
}

li:nth-child(3),
li:nth-child(6),
li:nth-child(9){
    border-right: 0;
}

可以使用负margin解决。margin的值等于边框宽度的相反数。

li {margin: -1px 0 0 -1px;}

ul设置上边框和左边框,li设置下边框和右边框不就行了么

li{
  margin:0 0 0 0 -1px;
}

li只要设置右边和下边的边框即可,border-right,border-bottom

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏