HTML输入渐变文本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML输入渐变文本相关的知识,希望对你有一定的参考价值。

一直在寻找解决方案,但没有成功,所以我想在这里问。

我正在尝试对输入字段应用线性渐变,就像我对按钮所见,如图所示。

enter image description here

我玩过不同的CSS选项,但未能成功。

最佳版本是占位符的样式,但输入值不是。如果我尝试设置输入值的样式,那么事情就会出错。

建议将不胜感激。

button
  background-color: dodgerblue;
  height: 60px;
  width: 60px;
  border-radius: 50%;
  font-size: 32px


button i
  background: -webkit-linear-gradient(#ffffff70, #ffffff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;


input
  background-color: dodgerblue;
  height: 60px;
  width: 360px;
  font-size: 32px


input::placeholder
  background: -webkit-linear-gradient(#ffffff70, #ffffff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;


/*
input:focus 
    background: -webkit-linear-gradient(#ffffff70, #ffffff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;

*/
<button><i>X</i></button>

<hr />

<input placeholder="SEARCH"/>
答案

您将需要两个背景层。一种用于文本,一种用于背景颜色。

不幸的是,由于已知的错误https://bugzilla.mozilla.org/show_bug.cgi?id=1571244,这在Firefox上不起作用]

input 
  background-color: dodgerblue;
  color:transparent;
  height: 60px;
  width: 360px;
  font-size: 32px


input::placeholder 
  background: linear-gradient(#ffffff70, #ffffff);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;


input:not(:placeholder-shown) 
  background: 
    linear-gradient(#ffffff70, #ffffff), 
    dodgerblue;
  -webkit-background-clip: text, padding-box;
          background-clip: text, padding-box;
  -webkit-text-fill-color: transparent;
<input placeholder="SEARCH">
另一答案

如果您尝试在占位符文本上设置渐变,最好的选择是完全省略或删除占位符,并使用所选字体和文本渐变在输入上方设置另一个div。

以上是关于HTML输入渐变文本的主要内容,如果未能解决你的问题,请参考以下文章

批量创建文本文档

HTML输入渐变文本

个人项目--词频统计

python 读取文本文档中的数据

如何用浏览器打开用记事本编写的代码

Swift:由字符串分隔的组件