您需要切割块的角,以便切割部分的背景是透明的。背景将是图像,因此三角形不起作用。在这种情况下,切掉部分的整个块必须有框架,因此存在问题。
我用创建了一个切片器clip-path,但是盒子边框就像盒子本身一样被切片了。结果,结果是这样的:
html,
body,
.bdiv,
.mainblock {
height: 100%;
width: 100%;
overflow: hidden;
}
.bdiv {
display: table;
}
.mainblock {
display: table-cell;
vertical-align: middle;
}
.mainblock>div {
position: relative;
width: 500px;
background: #444;
margin: 0 auto;
}
.content {
padding: 10px 30px;
text-align: center;
font-size: 16px;
font-family: sans-serif;
color: ddd;
}
.head-text {
clip-path: polygon(460px 0, 100% 30px, 100% 100%, 0 100%, 0 0);
font-size: 18px;
color: #eee;
border: 5px solid #fff;
background: #333;
}
.cont-text {
background: #000;
}
.cont-text>form input {
padding: 5px;
width: 40%;
}
<html>
<body style="background: #444;">
<div class="bdiv">
<div class="mainblock">
<div>
<div class="content head-text">Приветствую!</div>
<div class="content cont-text">
<form>
<input type="button" value="Привет">
<input type="button" value="Пока">
</form>
</div>
</div>
</div>
</div>
</body>
</html>
当然,您可以在切片顶部添加一个绝对块线作为框架,但我认为这还没有完成。但那又如何呢?我需要 2 个这样的切口,一个如图所示,第二个在下方左侧。

这是另一个 svg 选项:
SVG解决方案
在这里,三个菜单按钮由三个补丁组成。相同的补丁包含在蒙版中,用于使背景可见。
该解决方案是通用的,因为不必每次都选择按钮的颜色及其轮廓。它将始终与所选页面背景协调一致。要检查、替换背景或在全视图中打开片段。
尝试用不同的图片替换背景。我将鼠标悬停在按钮上,原则上向它们添加链接并不困难。一个 SVG 块中的所有元素。最好将它添加到 Html 页面内联。
2017 年 8 月 23 日更新
根据问题作者评论中的评论细化示例
此效果是由于块中的文本未包含在应用选择器的组中
:hover。我通过将块和文本组合成一组来解决这个问题。通过更改透明度添加背景和文本动画
下面是修改后的例子:
具有相同嵌套 div 的解决方案
clip-path: