javascript - 自定义形状 block

标签 javascript jquery html css svg

我需要为网页创建这样的元素:

enter image description here

如您所见,3 个 Angular 是圆的,1 个 Angular 是斜的。 边界将需要在 block 的不同状态期间改变。 此元素下方还会有照片背景。

为此,所有的 CSS 和 JS 解决方案都很丑陋和麻烦。

我的想法是:我们可以使用 svg 元素绘制这个形状,然后能够根据需要使用 js 操作边框颜色吗?

有一个带圆 Angular 的 svg 元素:

<svg width="400" height="180">
  <rect x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:red;stroke:black;stroke-width:5;opacity:0.5">
  Sorry, your browser does not support inline SVG.
</svg>

画这个:

enter image description here

我的问题是:我们能否使这个 svg 中的一个 Angular 倾斜,然后在其中放置内容?也许通过将这个 svg 作为元素的背景提供。

最佳答案

我尝试在 CSS 中重新创建形状。正如您所说,它有点令人不满意且繁琐,但我还是会分享它。

不过这只适用于现代浏览器。

.box{
    border:5px solid orange;
    background-color:#eee;
    width:100px;
    height:100px;
    padding:30px;
    border-radius:20px;
    position:relative;
}
.box::after{
    content:'';
    position:absolute;
    top: -23px;
    left: -25px;
    width:40px;
    height:40px;
    border-right:5px solid orange;
    background:#fff;
    transform:rotate(45deg);
}
<div class="box">Content</div>

关于javascript - 自定义形状 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29656883/

相关文章:

javascript - Controller 之间的 Angular 和传递对象

java - [JAVA]从网页获取html链接

javascript - 动态创建任意属性的过滤器

javascript - 有什么理由从外部调用 Backbone.View.render 吗?

jquery $.post 在加载回调函数中不起作用?

javascript - 移除的 DOM 元素仍然出现在页面上

javascript - jQuery随机定位死循环问题

jQuery 从相同的类名中选择第一个对象

php - 如何在图像周围添加图像边框?

javascript - 使用谷歌浏览器扩展程序设置代理