子元素盖住父元素边框

做TAB选项卡页的时候,当前活动的选项卡有边框,同时下边和面板之间无边框

记得以前实现过,但再用的时候却又不会了.现在实现如下.

// tab页标题区域的HTML : 一个div下的若干span,每个span对应一个选项卡.

<div class="tabs">

  <span class="tab-label">Home</span>

  <span class="tab-label active">Profile</span>

</div>

// 选项卡下面的线,是tabs框的下边框

.tabs{

  border-bottom:1px solid #ddd;

}

// 活动选项卡的边框中下边框是透明的,其它三边照常

.tab-label.active{

  display: inline-block;/*如果是行内元素,且不添加这个,那么父元素就不会包含子元素的padding部分.结果导致不能完全包含子元素*/

  padding: 8px 14px;

  border:1px solid #ddd;

  /*加上下面这几个关键样式,就能让红圈处无边框*/

  margin-bottom:-1px;

  background-color:#fff;

  border-bottom-color: transparent;

}


// 子元素的margin-bottom:-1px:

  导致父元素高度由底部缩减1像素,那么底边框位置向上抬升1px,正好与子元素的底边框重合,或者说进入了子元素的范围内,并且是被子元素压住了.

// background-color:#fff;

  子元素设白色背景,于是父元素底边框在经过此子元素的范围内时被遮盖了.

// border-bottom-color: transparent;

  此时子元素底边框再设置透明色,也看不见了.

最终实现图片红圈处的效果

原文地址:https://www.cnblogs.com/mirrortom/p/8479447.html