点击上方蓝字关注“小郑搞码事”,每天都能学到知识,搞懂一个问题!
先来看一张效果图:
这种情况,经常会在一些导航栏中见到,要求每行中最后一列的右边框消失。实现的方式也有很多:
1、比如:如果是不需要兼容IE8-,那么使用CSS3新增的选择器毫无疑问是一种好的办法,如下代码
2、最容易想的到的办法估计就是:给需要去掉右边框的元素直接添加一个特定的class也是一个办法。不过这样显示的不够优雅......
3、下面建议一个技巧性的写法。就是通过添加反向边框并且增加一个负的margin来实现。
实例的DOM:
这里假定的是每行排列3个li元素,每个li元素宽度100px,div.ul-container宽度是300px。
给每个li设置一个左边框,如下效果图所示:
接下来,我们将容器 ul-container 设置为 overflow:hidden ,并且将 ul 左移一个像素 margin-left:-1px。 这样 ul 中第一列的所有边框都因为左移了一像素并且被 overflow:hidden 而消失了,造成了下一个 li 的右边框看着像左边框一样,其实只是个障眼法:
这样一来,就得到了我们想要的效果了。
总结一下:
这种做法每个li都会生成一个左边框与上一个li元素分开,只是在视觉上看上去像是上一个 li 元素的右边框。这种处理办法也是通常的处理方式。当然,方式随意发挥,没有规定......