CSS3 三 Angular 形/镂空边框

标签 css border css-shapes

我想知道是否有一种“简单”的方法可以使用 CSS3 执行如下操作,我想避免使用图像和绝对定位或类似的操作,并且更愿意使用某些 CSS 方法来实现此目的。

enter image description here

我也想避免对这种样式使用任何固定高度,因为我将在大小和颜色各不相同的各种元素上使用相同的样式。

最佳答案

您可以在 CSS 中使用简单的剪辑路径:

clip-path:polygon(0 0, 100% 0, 95% 50%, 100% 100%, 0 100%, 5% 50%);

结果(在 Chrome 中):

enter image description here

ONLINE DEMO

但请注意,目前还没有对所有浏览器提供很好的支持。目前是not work in FF据我所知(我相信您可以使用 SVG 代替 FF)。

更新

好吧,在尝试了 SVG 之后(我不是 SVG 专家),我想出了一个可以在 FF 中工作的“原型(prototype)”:

在 HTML 中:

<!-- For firefox -->
<svg class="svg-graphic" width="250" height="36" viewBox="0 0 250 36" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" version="1.1">
    <clipPath id="mask">
        <polygon points="0, 0, 250, 0, 235, 18, 248, 35, 1, 35, 15, 18" />
    </clipPath>
</svg>

然后在CSS中将其ID设置为剪切路径:

clip-path:url(#mask);

它将在 Firefox 中生成:

enter image description here

(用此代码更新了 fiddle )

关于CSS3 三 Angular 形/镂空边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711689/

相关文章:

html - border curved css - 带 flex 端的圆

javascript - 使用jQuery将元素移动到倒数第二个h2之前

html - 为什么我的边距会崩溃,即使我对所有内容都有边框?

HTML 下拉列表(选择),在每个值(选项)后带有文本换行和边框

html - 使用 CSS 绘制重叠的椭圆

html - 带有箭头和边框的仅 CSS 工具提示

javascript - 如何离线托管 Material Design 图标?

javascript - 在 Joomla (1.7.0) 中点击显示嵌套列表

html - CSS - 模糊过滤器片刻后停止工作

html - border curved css - 带 flex 端的圆