【问题标题】:Curved border with stroke in pure CSS?纯CSS中带有笔划的弯曲边框?
【发布时间】:2017-05-27 07:57:59
【问题描述】:

我想知道是否有可能仅使用 CSS 来实现弯曲边框(带有笔划)?目前我正在使用图像为我的网站标题创建弯曲边框:

我想将其更改为 CSS 解决方案,这样我就不必在内容数量发生变化时更改图像 - 我需要这些是动态和响应式的,我已经设法使用边界半径:

这对我来说效果更好,但我想知道是否可以为其添加笔触以使其看起来更像图像表示?任何帮助是极大的赞赏。这是我为实现此目的而编写的代码:

<div class="slider">
  <div class="slide">
    <!-- Content -->
  </div>
</div>

CSS:

.slider {
  background: #21639e;
}
.slider .slide {
  background: url("image.jpg") no-repeat #21639e;
  border-radius: 100%/0 0 30px 30px;
}

我确实尝试将 border-bottom: 5px solid #fff; 添加到 .slide 类,但它最终看起来像这样:

我创建了一个jsfiddle 供您测试我想要实现的目标。

【问题讨论】:

  • 你能粘贴一个工作的sn-p吗?
  • 更新了一个有效的 sn-p。

标签: css border css-shapes


【解决方案1】:

是的,您可以尝试使用盒子阴影来创建这种边框。在元素的外侧应用白框阴影将使其看起来像笔触/边框。

这 - border-bottom: 5px solid #fff; 产生了一种不同的效果,因为我们只将底部边框应用于元素。左侧和右侧的边框不存在(零宽度),因此当您靠近边缘时,线条会变细。

.slider {
  height: 500px;
  background: #21639e;
}
.slider .slide {
  height: 200px;  
  background: url("http://placehold.it/800x800/FF00FF") no-repeat #21639e;
  border-radius: 100%/0 0 30px 30px;
  box-shadow: 0px 6px 0px white;
}
<div class="slider">
  <div class="slide">
    Some content
  </div>
</div>

以下是您的Fiddle 的更新版本。


为了获得更优美的曲线,您还可以尝试以下方法。它使用一个比.slide 更宽的伪元素,然后在其中居中放置图像。 (我觉得这种方法使它看起来更接近原始图像,但选择是你的

.slider {
  height: 500px;
  background: #21639e;
}
.slider .slide {
  position: relative;
  height: 200px;
  width: 100%;
  overflow: hidden;
}
.slider .slide:before {
  position: absolute;
  content: '';
  left: -2%;
  top: -6px;
  width: 104%;
  height: 100%;
  background: url("http://placehold.it/800x800/FF00FF") no-repeat center center #21639e;
  border-radius: 100%/0 0 30px 30px;
  box-shadow: 0px 6px 0px white;
}
<div class="slider">
  <div class="slide">
    Some content
  </div>
</div>

【讨论】:

  • 这太完美了!非常感谢!
  • 我刚刚和我的经理讨论了如何让曲线更向外弯曲(就像我的图片中一样),所以你的额外方法非常有帮助!我现在要实现它。
  • border-radius: 100%/0 0 30px 30px; 到底是做什么的?我知道边界半径是如何工作的,但我以前从未见过半径除以百分比。这是如何工作的?
  • @Demnogonis 表示使用/时两轴的半径。不使用时,相同的值适用于两个轴。我不在办公桌前,当我回到我的电脑时会给你一个包含更多信息的链接。
  • @Demnogonis:这是规格的链接 - w3.org/TR/css3-border/#the-border-radius
猜你喜欢
  • 2018-10-28
  • 1970-01-01
  • 2019-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多