首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带边界图像的边界半径

带边界图像的边界半径
EN

Stack Overflow用户
提问于 2020-05-27 20:21:49
回答 2查看 5K关注 0票数 2

在下面的代码中,我希望这两个div都是圆的。但第一个应用border-image的是正方形。我怎么才能把它修好,让它也变圆呢?

代码语言:javascript
复制
div {
  float: left;
  width: 130px;
  height: 130px;
  margin: auto;
  
  border: 30px solid transparent;
  border-radius: 50%;
  border-image: linear-gradient(45deg, red, blue) 30;
}

div + div {
  margin-left: 1em;
  border-image: none;
  border-color: green;
}
代码语言:javascript
复制
<div></div>
<div></div>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-05-27 20:38:41

不可能把它们结合起来。W3规范说:

一个盒子的背景,而不是它的边框图像,被剪裁到适当的曲线上(由“背景剪辑”决定)。其他剪辑到边框或填充边缘的效果(如“可见”以外的“溢出”)也必须剪辑到曲线上。被替换元素的内容总是被裁剪到内容边缘曲线。此外,边框边缘曲线外的区域不接受代表元素的鼠标事件。

但是,您可以通过使用css梯度来达到同样的效果。

代码语言:javascript
复制
#cont{
  background: -webkit-linear-gradient(left top, crimson 0%, blue 100%);
  width: 300px;
  height: 300px;
  border-radius: 1000px;
  padding: 10px;
}

#box{
  background: white;
  width: 300px;
  height: 300px;
  border-radius: 1000px;
}
代码语言:javascript
复制
<div id="cont">
  <div id="box"></div>
</div>

票数 6
EN

Stack Overflow用户

发布于 2020-05-27 20:34:26

您可以使用径向梯度背景图像.你可以用掩模图像来掩盖它。border-image不适用于border-radius

代码语言:javascript
复制
div {
  float: left;
  width: 190px;
  height: 190px;
  margin: auto;
  /* border: 30px solid transparent;
     border-radius: 50%;
    border-image: linear-gradient(45deg, red, blue) 30;*/
  border-radius: 50%;
  background: linear-gradient(45deg, red, blue);
  -webkit-mask-image: radial-gradient(transparent 0 65px, #000 65.5px);
          mask-image: radial-gradient(transparent 0 65px, #000 65.5px);
}

div+div {
  margin-left: 1em;
  border-image: none;
  border-color: green;
}
代码语言:javascript
复制
<div></div>
<div></div>

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

https://stackoverflow.com/questions/62052199

复制
相关文章

相似问题

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