是否可以对输入边框应用线性渐变颜色?
我尝试了以下方法:
input{
border: 5pt solid linear-gradient(rgba(0, 25, 50, 0.5), rgba(0, 0, 25, 0.5));
}
上面代码的问题是,你不能使用线性梯度作为一种颜色。
澄清一下,我不想改变输入的背景色,只改变边框色。
JSFIDDLE:
http://jsfiddle.net/o1yhod9t/
你不能直接添加渐变到border
属性,因为第三个参数只接受一个颜色。相反,您必须使用border-image
属性,如下面的代码片段所示。
请注意,目前浏览器对该属性的支持非常低。为了更好的浏览器支持,同样可以使用background-image
属性来模拟。
input {
border-image-source: linear-gradient(rgba(0, 51, 102, 0.5), rgba(0, 0, 51, 0.5));
border-width: 5pt;
border-image-slice: 1;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/prefixfree/1.0.7/prefixfree.min.js"></script>
<input type="text" />
我发现原来的答案没有提供设置边界半径的方法。你可以通过一些奇怪的CSS元素组合来实现:
input {
padding: 0.5rem;
border: double 3px transparent;
border-radius: 6px;
background-image: linear-gradient(white, white),
linear-gradient(to right, orange, yellow);
background-origin: border-box;
background-clip: padding-box, border-box;
}
这有效地创建了分层渐变。内在的那个(适合元素的位)只是白色的,所以它看起来没什么不寻常的。然后在它周围加上您想要的实际梯度(这可以像复杂或简单一样)你喜欢的)。
最后,您设置了一个透明的边框(具有相关的边框半径)为了得到你的弧形角),在裁剪背景到相关的领域。第一个背景(白色的)被剪辑到填充框,这意味着它占据了内容
的所有空间
- 填充。然后第二个背景(我们想要的边框)被剪裁到边框本身的边缘。
所以我们的渐变被另一个白色有效地覆盖了背景,除了边界。因此,您可以调整大小边框的任意厚度,渐变就会填补它。
原始来源:https://theadhocracy.co.uk/wrote/gradient-borders-with-rounded-corners-on-input-fields
我用的是顺风,参考:https://blog.logrocket.com/guide-adding-gradients-tailwind-css/#input-border-gradient
<div class=" h-12 w-full p-0.5 rounded-lg mt-1.5 bg-gradient-to-r from-purple-400 via-pink-600 to-indigo-500">
<input
class="p-2 h-full w-full rounded-lg focus:outline-none"
type="text"
placeholder="Enter movie/show"
/>
</div>
输入