首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >抵消纯css中的边框效果

抵消纯css中的边框效果
EN

Stack Overflow用户
提问于 2016-11-10 21:13:06
回答 2查看 2.3K关注 0票数 1

我正在尝试创建一种偏移边框效果。这可以用纯css来完成吗?

这些是按钮,所以会有不同的大小和颜色。

EN

回答 2

Stack Overflow用户

发布于 2016-11-10 22:03:01

我使用了伪元素:after来创建偏移边框效果。

代码语言:javascript
复制
body {
  background: black;
  padding: 30px;
}
div {
  background: white;
  height: 75px;
  width: 175px;
  position: relative;
}
div:after {
  content: '';
  background: transparent;
  border: 1px solid white;
  top: 7px;
  right: 7px;
  bottom: -7px;
  left: -7px;
  position: absolute;
  z-index: -1;
}
代码语言:javascript
复制
<div></div>

票数 3
EN

Stack Overflow用户

发布于 2016-11-10 21:21:46

更新

正如web-tiki pointed out在对这个答案的评论中所说的那样,你可以用box-shadow完全实现整个效果。在这里看看他们的JSFiddle演示:https://jsfiddle.net/5a0bvyup

注意:在我的回答中,我将前景框设置为红色而不是白色,以证明此“偏移边框”不会与初始元素重叠。你需要自己把它改回白色。

左侧边框和底部边框

你可以用box-shadow很容易地实现左边框和下边框。你只需要创建一个与背景颜色匹配的实心阴影,然后在它后面添加第二个与前景颜色匹配的阴影,偏移一个像素:

代码语言:javascript
复制
body {
  background: black;
  padding: 30px;
}

div {
  background: red;
  height: 72px;
  width: 192px;
  
  box-shadow: -2px 2px 0 5px black, -7px 7px 0 1px white;
}
代码语言:javascript
复制
<div></div>

上边界和右边界

然后,您可以使用伪元素(::before::after)填充这些额外的边框:

代码语言:javascript
复制
body {
  background: black;
  padding: 30px;
}

div {
  background: red;
  height: 72px;
  width: 192px;
  
  box-shadow: -2px 2px 0 5px black, -7px 7px 0 1px white;
  position: relative;
}

div::before {
  background: white;
  content: '';
  position: absolute;
  height: 1px;
  width: 7px;
  top: 6px;
  right: 100%;
}

div::after {
  background: white;
  content: '';
  position: absolute;
  height: 7px;
  width: 1px;
  top: 100%;
  right: 6px;
}
代码语言:javascript
复制
<div></div>

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40528518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档