webrebuild.org第四届年会——金秋四城联动

小技巧:带分隔线左右布局的实现


经常会碰到类似于这样的两栏(或多栏),中间有条分隔线。
由于左右两侧内容不固定,简单的使用border只能实现单侧的分隔线。

可以给左栏定义border-right,右栏定义border-left
然后再给左栏设置margin-right:-1px;或者右栏设置margin-left:-1px;,使他们的border重叠,这样就可以实现完美的分隔线啦!

可运行示例查看效果:

html
<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浏览器中是可以完美重叠的。

相关阅读

  1. 使用css给图片添加阴影
  2. 有感于yahoo对css bug的利用:margin重叠
  3. 浏览器特定选择器(hack)
  4. HTML默认样式
  5. 纯CSS的图片展示效果

5 条留言

alxe
2010年1月14日 15:45:04

不错的方法

[回复]

sugar
2010年2月4日 11:36:58

真不错。。博主厉害,向你学习哈

[回复]

Anne
2010年6月30日 10:47:55

学习了 很灵活 谢谢

[回复]

2010年7月19日 15:04:58

楼主所说的应该是两侧内容高度不固定。 不失为一妙计。

[回复]

路人-专注前台
2010年8月18日 19:18:51

呵,这个方法我在做一个项目时想了很久才发现的,不过没有测试非直线 的情况,谢谢博主提供这么好的文章。

[回复]