Ich gestalte ein Eingabefeld mit einem abgerundeten Rand (Rahmenradius) und versuche, dem Rand einen Verlaufseffekt hinzuzufügen. Ich kann erfolgreich Farbverläufe und abgerundete Ränder erstellen, aber nicht beides gleichzeitig. Entweder gibt es abgerundete Ecken, aber keinen Farbverlauf, oder es gibt einen Farbverlauf, aber keine abgerundeten Ecken.
-webkit-border-radius: 5px; -webkit-border-image: -webkit-gradient(linear, 0 0, 0 100 %, from(#b0bbc4), to(#ced9de)) 1 100 %;
Gibt es eine Möglichkeit, diese beiden CSS-Eigenschaften gleichzeitig wirksam werden zu lassen, oder ist dies nicht möglich?
这是可能的,并且不需要额外的标记,而是使用了一个
::after
伪元素。它涉及在下方放置一个带有渐变背景的伪元素,并对其进行裁剪。这在所有当前浏览器中都可以工作,无需供应商前缀或hack(甚至是IE),但如果您想要支持旧版本的IE,您应该考虑使用纯色回退、javascript和/或自定义的MSIE CSS扩展(即
filter
,类似CSSPie的矢量技巧等)。这是一个实时示例(jsfiddle版本):
上面的额外样式是为了展示:
box-shadow
一起工作得很好,无论是否使用inset
再次强调,这适用于IE、Firefox和Webkit/Blink浏览器。
可能不可能,根据W3C规范:
这可能是因为
border-image
可以采用一些可能复杂的图案。如果你想要一个圆形的图像边框,你需要自己创建一个。