更改占位符的字体系列

Posted

技术标签:

【中文标题】更改占位符的字体系列【英文标题】:Changing font-family for placeholder 【发布时间】:2013-01-09 13:34:41 【问题描述】:

输入字段是否可以有一个 font-family 并且它是另一个占位符?

我已尝试使用 CSS 中已定义的 @font-face 更改输入占位符的 font-family,但它不起作用:

CSS

    .mainLoginInput::-webkit-input-placeholder  
      font-family: 'myFont', Arial, Helvetica, sans-serif;
    
    
    .mainLoginInput:-moz-placeholder  
      font-family: 'myFont', Arial, Helvetica, sans-serif;
    

HTML

    <input class="mainLoginInput" type="text" placeholder="Username"  />

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

如果有人想要所有浏览器的占位符选择器:

.mainLoginInput::-webkit-input-placeholder 
  font-family: 'myFont', Arial, Helvetica, sans-serif;


.mainLoginInput:-ms-input-placeholder 
  font-family: 'myFont', Arial, Helvetica, sans-serif;


.mainLoginInput:-moz-placeholder 
  font-family: 'myFont', Arial, Helvetica, sans-serif;


.mainLoginInput::-moz-placeholder 
  font-family: 'myFont', Arial, Helvetica, sans-serif;

【讨论】:

-moz-placeholder 被添加两次的任何原因? (也许我不明白这些单:或双:: 带有: 的那个是firefox v18 及更低版本。他们采用了双重版本来遵循 webkit 语义【参考方案2】:

将此用于主要浏览器支持:

HTML:

<input type="text" placeholder="placeholder text.." class="mainLoginInput" />

CSS:

.mainLoginInput::placeholder  /* Chrome, Firefox, Opera, Safari 10.1+ */
  font-family: 'myFont', Arial, Helvetica, sans-serif;
  opacity: 1; /* Firefox */


.mainLoginInput:-ms-input-placeholder  /* Internet Explorer 10-11 */
  font-family: 'myFont', Arial, Helvetica, sans-serif;


.mainLoginInput::-ms-input-placeholder  /* Microsoft Edge */
  font-family: 'myFont', Arial, Helvetica, sans-serif;

详情参考link

【讨论】:

【参考方案3】:

找到了……

Firefox 19+ 用户的前缀是::-moz-placeholder

代码看起来像这样

.mainLoginInput::-moz-placeholder 
   font-family: 'myFont', Arial, Helvetica, sans-serif;  

【讨论】:

如果你支持 IE 10 还有::-ms-input-placeholder【参考方案4】:

就这样

.mainLoginInput::placeholder
     font-family: -Your font here-;

【讨论】:

【参考方案5】:

这里是::placeholder伪元素的完整使用:

::-webkit-input-placeholder  /* Chrome/Opera/Safari */
  color: pink;

::-moz-placeholder  /* Firefox 19+ */
 color: pink;

:-ms-input-placeholder  /* IE 10+ */
 color: pink;

:-moz-placeholder  /* Firefox 18- */
 color: pink;

Firefox 中的所有占位符都应用了不透明度值,因此为了解决这个问题,我们需要重置该值:

::-moz-placeholder 
  opacity: 1;

Source

【讨论】:

以上是关于更改占位符的字体系列的主要内容,如果未能解决你的问题,请参考以下文章

更改占位符字体,在搜索栏下方移动芯片/标签

在 IE 中更改占位符文本的字体大小和边距

快速设置 UITextfield 占位符的字体

用于 chrome 占位符的字体的 css 技巧

更改占位符的 css 属性

如何更改输入标签占位符的语言?