0

我正在尝试使用border-image速记属性制作像这样的自定义css边框但失败了。有没有办法做部分边框?也许有更好的方法来实现我想要做的事情?我总是可以只插入这张图片,但一旦你这样做,它似乎不会很好地调整大小。

CSS 标题图片

4

3 回答 3

3

我们也可以通过直接定位content内部来实现这一点,container如下所示。

这里我们已经定位了content使用边距,我们也可以通过绝对定位内容来做到这一点。

.container {
  border: 5px solid #000;
  border-bottom: 0;
  height: 10px;
  margin-top: 15px;
}
.content {
  background: #fff;
  text-align: center;
  border-left: 5px solid #000;
  border-right: 5px solid #000;
  height: 25px;
  line-height: 25px;
  width: 150px;
  margin: -15px auto 0; /* height 25px + 5px border = 30/2 = 15 */
}
<div class="container">
  <div class="content">Header</div>
</div>

于 2019-01-14T06:58:40.807 回答
1

这是一个响应式解决方案,代码更少且透明:

.container {
  text-align: center;
  overflow: hidden;
  border:5px solid;
  border-image:linear-gradient(to bottom,transparent 10px,#000 10px,#000 100%) 4;
  height:50px;
  margin:5px;
}

.top {
  display: inline-block;
  position: relative;
  padding: 0 10px;
}

.top::before,
.top::after {
  content: "";
  position: absolute;
  top: calc(50% - 8px);
  width: 100vw;
  height: 15px;
  padding: 5px 0;
  box-sizing: border-box;
  background: #000 content-box;
}

.top::before {
  right: 100%;
  border-right: 5px solid;
}

.top::after {
  left: 100%;
  border-left: 5px solid;
}

body {
 background:pink;
}
<div class="container">
  <div class="top">Hello</div>
</div>

<div class="container">
  <div class="top">More Hello</div>
</div>

<div class="container">
  <div class="top">H</div>
</div>

于 2019-01-14T08:57:08.073 回答
1

您可以使用display:flexto 包装和“播放”border到 div 里面wrap

.wrap{
display:flex;
width:100%;
}
.wrap div{
width:calc(100vw / 3);
}
.header{
    text-align: center;
    border-right: 5px solid black;
    border-left: 5px solid black;
}
.border{
margin-top: 5px;
height:8px;
border-top: 5px solid black;
}
.b-left{
border-left: 5px solid black;
}
.b-right{
border-right: 5px solid black;
}
<div class="wrap">
      <div class="border b-left"></div>
      <div class="header">Header</div>
      <div class="border b-right"></div>
</div>

于 2019-01-14T06:16:31.683 回答