CSS按钮样式调整需求:保持polygon形状,设置黄色文字与4px黄色边框
解决方案
你需要调整边框的实现方式,因为clip-path会直接裁剪元素的边框,导致部分边框被切掉。这里用伪元素来实现符合要求的多边形边框:
.myButton { background-color: transparent; border: none; /* 去掉原边框,改用伪元素实现 */ display: inline-block; cursor: pointer; color: yellow; font-family: Arial; font-size: 20px; font-weight: bold; padding: 12px 23px; text-decoration: none; position: relative; /* 为伪元素定位做准备 */ clip-path: polygon(0% 0%, 75% 0%, 100% 50%, 75% 100%, 0% 100%); } .myButton::before { content: ''; position: absolute; top: -4px; /* 向外扩展4px,对应边框宽度 */ left: -4px; right: -4px; bottom: -4px; border: 4px solid yellow; clip-path: inherit; /* 继承父元素的多边形裁剪路径 */ z-index: -1; /* 放在文字下方 */ }
关键调整说明:
- 移除原元素的
border和无效的box-shadow参数 - 给按钮添加
position: relative,让伪元素可以相对它定位 - 用
::before伪元素创建一个比按钮大8px(上下左右各4px)的容器,设置黄色边框并继承父元素的clip-path,确保边框贴合多边形形状 - 把伪元素的
z-index设为-1,避免遮挡按钮文字
这样就能实现:文字黄色、背景透明、4px黄色四边完整边框,同时保持你想要的多边形形状。
内容的提问来源于stack exchange,提问作者محمد زین عباس
相关产品推荐
相关产品推荐

