css多重边框

一、使用box-shadow实现多重边框

html

<div class="multiple"></div>

css

.multiple{
  background: yellowgreen;
  box-shadow: 0 0 0 10px #655,0 0 0 20px deeppink;
  margin: 200px;
  width :300px;
  height:200px;
}

效果图

 

值得说明的是,box-shadow是层层叠加的,第一层投影位于最顶层,依次类推。因此你需要按照此规律扩张半径。比如上面的代码,如果我们想在外层在加一个5px的外框,那么久需要指定扩张半径的值为25px(20px+5px)。上述方法所创建出的“假的边框”出现在元素的外圈,他们并不会响应鼠标事件,比如悬停或者点击,如果这一点非常重要,你可以给box-shadow属性加上inset关键字,来使投影绘制在元素的内圈,注意此时需要额外的内边距俩腾出足够的空间,代码如下。

 

css

.multiple{
  background: yellowgreen;
  box-shadow: inset 0 0 0 10px #655,inset 0 0 0 20px deeppink;
  padding: 20px;
  margin: 200px;
  width :300px;
  height:200px;
}

加padding和不加padding效果图

二、使用outline实现二重边框(缝边效果)

 html

<div class="multiple"></div>

css

.multiple{
  background: yellowgreen;
  border: 10px solid #655;
  outline: 10px solid deeppink;
  width :300px;
  height:200px;
  margin: 100px;
}

效果图

注意:

1. 这种方法只适用于双层边框的场景;

2. 边框不一定融合border-radius产生的圆角

3. 可以接受负值,因此可以实现缝边效果,如下:

css

.multiple{
  background: #655;
  border-radius: 20px;
  outline: 2px dashed white;
  outline-offset: -15px;  
  width :300px;
  height:200px;
  margin: 100px;
}

效果图

 

 使用border+outline也可以实现这种效果:

css

.multiple{
  background: #655;
  border: 2px dashed white;
  outline: 10px solid #655;
  width :300px;
  height:200px;
  margin: 100px;
}

效果图

 

posted @ 2017-11-20 15:35  孟丽媛  Views(266)  Comments(0Edit  收藏  举报