【发布时间】:2014-11-26 14:05:27
【问题描述】:
我想从 CSS 中创建一个带有渐变边框和 1px 内阴影的渐变箭头形状按钮。
我已经创建了一个图像来显示按钮和样式规则:
这是我目前所拥有的:
.button {
color: #FFF;
background-color: #D02180 !important;
background: -webkit-gradient(linear, 0 0, 0 100%, from(#f84aa4), to(#d02181));
background: -webkit-linear-gradient(#f84aa4, #d02181);
background: -moz-linear-gradient(#f84aa4, #d02181);
background: -o-linear-gradient(#f84aa4, #d02181);
background: linear-gradient(#f84aa4, #d02181);
padding: 5px 10px;
border-radius: 6px;
-moz-border-radius: 6px;
-webkit-border-radius: 6px;
border: 1px solid #ab1465;
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
}
<a class="button">Next</a>
跨浏览器支持是一个主要的事情,所以如果一切都可以通过 CSS 完成,除了渐变边框,也可以。在这种情况下,边框将具有一种简单的颜色——#ab1465。
主要问题从渐变开始。我可以借助 css 伪元素制作箭头形状,但我需要一个跨浏览器解决方案来为整个箭头形状提供一个连续渐变。
【问题讨论】:
-
主要问题从渐变开始。我可以在 css 伪类的帮助下制作箭头形状,但我无法制作一个跨浏览器解决方案来为孔箭头形状提供连续渐变。
-
如果背景颜色是纯色的,您可以使用伪元素来伪造剪切。否则,您可以查看 CSS 形状,但您需要提供备用。大多数开发人员在实现这样的事情时会使用图像
-
图像解决方案是否有点“旧式”解决方案?图像精灵按钮在普通 PC 上看起来不错,但在视网膜显示器上很难看。比需要两倍和三倍大小的图像精灵。我想避免图像解决方案。如果 CSS 不起作用 SVG sprite 可能是一个解决方案。你怎么看?我在这里找到了一种可能的 CSS 方式:jsfiddle.net/pixelass/2mQjZ/59/light 但它在 Safari 中并不完美(尝试缩放!)
-
如果没有 CSS 形状和后备,现在的 CSS 将不会是完美的
标签: css button gradient css-shapes