小技巧:带分隔线左右布局的实现
2010年01月06日 | HTML/CSS

经常会碰到类似于这样的两栏(或多栏),中间有条分隔线。
由于左右两侧内容不固定,简单的使用border只能实现单侧的分隔线。
可以给左栏定义border-right,右栏定义border-left;
然后再给左栏设置margin-right:-1px;或者右栏设置margin-left:-1px;,使他们的border重叠,这样就可以实现完美的分隔线啦!
可运行示例查看效果:
<style type="text/css" > * {padding:0;margin:0;} body {font-size:12px;line-height:1.5em;} a {color:#FFFFBF;text-decoration:none;} a:hover {color:#FFFF77;text-decoration:underline;} .wrap {width:350px;padding:10px;margin:30px auto;background: #132E35;color:#fff;overflow:hidden;zoom:1;-webkit-border-radius: 10px;-moz-border-radius: 10px;-khtml-border-radius: 10px;border-radius: 10px;box-shadow:0 0 3px #000000, 0 0 4px #000000, 0 0 3px #000000;-moz-box-shadow:0 0 3px #000000, 0 0 4px #000000, 0 0 3px #000000;-webkit-box-shadow:0 0 3px #000000, 0 0 4px #000000, 0 0 3px #000000;-khtml-box-shadow:0 0 3px #000000, 0 0 4px #000000, 0 0 3px #000000;} .wrap h2 {font-size:14px;margin-bottom:5px;} .wrap .pic {float:left;width:100px;padding-right:8px;margin-right:-1px;border-right:solid #425555 1px;} .wrap .pic img {display:block;} .wrap .content {float:left;width:233px;border-left:solid #425555 1px;text-indent:2em;padding-left:8px;color: #DCE4E4;} </style> <div class="wrap"> <h2><a href="http://www.vfresh.org/" title="">粉丝站预测《暗黑3》第五职业 盗贼或将回归</a></h2> <div class="pic"> <img src="http://www.vfresh.org/wp-content/uploads/2010/01/d3.png" alt="" title="" /> </div> <div class="content"> 两个粉丝站的预测结果可算不谋而合,如果不出意料的话,暗黑3的第五职业可能是射手与盗贼的结合体。 <a href="http://www.vfresh.org/" title="">[详细内容]</a> </div> </div>
注意:此法在非IE中无法实现dashed/dotted等非直线(solid)的分隔线,因为这些虚线无法完美地重叠,而且各个浏览器的错位方式都不一样,所以不建议在这些浏览器中使用这个方法操作虚线。但IE浏览器中是可以完美重叠的。


5 条留言
不错的方法
[回复]
真不错。。博主厉害,向你学习哈
[回复]
学习了 很灵活 谢谢
[回复]
楼主所说的应该是两侧内容高度不固定。 不失为一妙计。
[回复]
呵,这个方法我在做一个项目时想了很久才发现的,不过没有测试非直线 的情况,谢谢博主提供这么好的文章。
[回复]