You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现带斜对角边框的CSS div 兼容border-radius属性?

方案1:伪元素独立形变实现(兼容性最好)

这种方式把边框和背景效果交给单独的伪元素处理,skew只会作用于伪元素,完全不会影响内部内容的显示,也支持自定义圆角:

.target-box {
  position: relative;
  width: 300px;
  padding: 16px 24px;
  /* 预留边框宽度的内边距 */
  box-sizing: border-box;
  border-radius: 8px 0 8px 8px;
  overflow: hidden;
  z-index: 1;
}
/* 边框层伪元素 */
.target-box::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  /* 单独对伪元素做skew变换,调整角度适配设计要求 */
  transform: skewX(-15deg);
  transform-origin: top right;
  border: 2px solid #2563eb;
  border-radius: 8px;
  z-index: -1;
}
/* 背景层如果需要也可以单独做伪元素,和边框层逻辑一致 */
.target-box::after {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  right: 2px;
  bottom: 2px;
  transform: skewX(-15deg);
  transform-origin: top right;
  background: #eff6ff;
  border-radius: 6px;
  z-index: -2;
}

方案2:多重线性渐变实现(代码更简洁)

如果不需要兼容太老旧的浏览器,用渐变组合实现效果更灵活,不需要额外处理形变适配:

.target-box {
  width: 300px;
  padding: 16px 24px;
  border: 2px solid transparent;
  border-radius: 8px;
  /* 第一层是内部背景,第二层是边框渐变层 */
  background: 
    linear-gradient(#fff, #fff) padding-box,
    linear-gradient(135deg, transparent 24px, #2563eb 0) border-box;
}

如果需要调整斜角的大小,修改上面transparent后的数值即可,不需要调整其他属性

内容的提问来源于stack exchange,提问作者Maya Hamdan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 19:54:01