@多重边框

首先呢,多重边框,从字面上理解就知道我们的目标是希望目标元素的边框是一层又一层的。

很显然,border-image这种东西就不要考虑啦~ LEA姐姐告诉我们通过box-shadow这个属性能够实现多重边框:

 box-shadow: *h-shadow* *v-shadow* *blur* *spread* *color* inset;

神奇的是一个box-shadow里面可以写好多组
类似于上面的数值,这就比border(只有一层)好用多了有木有!而如果只希望呈现出一般solid边框的效果,只需要酱紫:

.wrapper{
   margin: 300px auto; 
   width: 300px; 
   height: 200px; 
   background: yellowgreen; 
   box-shadow: 0 0 0 10px purple,0 0 0 15px pink,0 0 0 25px #ccc,0 0 0 30px orange inset;
}

CSS Secrets @多重边框 - CSS娃娃 - CSS娃娃的博客

但是亲们发现没有,有两点是需要我们稍微留心一下的:

  1. 每一组值当中的shadow宽度并不是在前一组值的基础上计算的,而是都相对于div.wrapper的“边”来计算;
  2. 在颜色后面加上一个inset,边框就真的跑到里面去了呢~

然而我会告诉你还有两点也需要注意吗?

  1. box-shadow不会被box-sizing所影响;
  2. :hover的时候,box-shadow(outside the div)的部分是不会被算在内噢~

当我们只需要两层边框的时候,除了border之外,别忘了还有个outline在默默地等候着我们的召唤。

 .wrapper{
    margin: 300px auto; 
    width: 300px; 
    height: 200px; 
    background: yellowgreen; 
    border: 10px solid pink; 
    outline: 5px dashed purple;
}

CSS Secrets @多重边框 - CSS娃娃 - CSS娃娃的博客

outline好包容,它把border都紧紧怀抱住了!
moreover,还有个outline-offset也比较讨人喜欢呢!

.wrapper{
    margin: 300px auto;
    width: 300px;
    height: 200px;
    background: yellowgreen;
    border: 10px solid pink;
    outline: 5px dashed purple;
    outline-offset: -20px;
}

CSS Secrets @多重边框 - CSS娃娃 - CSS娃娃的博客

只要将outline-offset的值设为负数,它就有可能跑到div.wrapper的里面,LEA姐姐说这是缝边的效果。
But!尽管它跑到了.wrapper的里面,但它多border的爱是不变的,因为这个负值还是从border的最外面开始算起的!真爱啊有木有!

further more,亲们要知道,outline虽然很包容,但它不能因为border-radius的存在而改变自己那么方的实质。outline很方,至少现在很方。但是呢~ box-shadow就可以因为有border-radius的存在而产生一层一层又一层的圆角!看下方!上面是box-shadow的表现,下面是outline的表现(瞧他是有多么固执,但是说不定哪一天,它就弯了,哇哈哈哈哈......)。
CSS Secrets @多重边框 - CSS娃娃 - CSS娃娃的博客
CSS Secrets @多重边框 - CSS娃娃 - CSS娃娃的博客
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.多重边框 我们可以通过使用border-image来写一个多重边框,或使用多个元素来模拟多重边框,不过我们有更...
    FlyingWWS阅读 2,499评论 2 5
  • 在CSS中,要实现同一种效果可能有很多种方式,就比如今天所要讲的多重边框,有人可能会想,那还不简单?要多少边框直接...
    前端王睿阅读 776评论 0 4
  • 如果我们想为一个元素设置边框,很自然的会利用 border 属性,比如说,我想得到如下效果。 非常简单的,我们只需...
    ghwaphon阅读 832评论 0 0
  • 1. box-shadow方案 box-shadow还接受第四个参数,表示扩张半径,可以使用第四个参数来模仿边框。...
    Elevens_regret阅读 266评论 0 0
  • 夫妻俩人起的冲突,90%跟原生家庭和童年经历有关,只有10%和伴侣有关。两人现在所打的仗,大多打的都是过去的糊涂账...
    瑞敏谈成长阅读 214评论 0 0

友情链接更多精彩内容