占位符文本仅在 Internet Explorer 中可见

Posted

技术标签:

【中文标题】占位符文本仅在 Internet Explorer 中可见【英文标题】:Placeholder text only visible in Internet Explorer 【发布时间】:2015-11-19 14:36:02 【问题描述】:

我为地址表单设置了一个占位符,为访问者提供了如何格式化地址的示例。占位符文本在 IE 中可见,但在其他浏览器(chrome、firefox、safari)中是透明的。

如何修复它以使其在所有浏览器中显示?

 .form-control 
  display: block;
  width: 100%;
  height: 34px;
  padding: 6px 12px;
  font-size: 14px;
  line-height: 1.42857143;
  color: #555;
  background-color: #fff;
  background-image: none;
  border: 1px solid #ccc;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
          box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
  -webkit-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
          transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;

.form-control:focus 
  border-color: #66afe9;
  outline: 0;
  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);
          box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, .6);

.form-control::-moz-placeholder 
  color: #999;
  opacity: 1;

.form-control:-ms-input-placeholder 
  color: #999;

.form-control::-webkit-input-placeholder 
  color: #999;


.form-control:-moz-placeholder 
  color: #c0392b;


.form-control::-moz-placeholder 
  color: #c0392b;
<div class="form-group">
    <label>Recipients Address</label>
    <textarea class="form-control" id="message" name="message" placeholder="Enter the address in the same format as you would write it on a envelope.

EXAMPLE:
Thomas Nolan Kaszas II
5322 Otter Lane
Middleberge FL 32068" rows="8"></textarea>
</div>

【问题讨论】:

按预期工作。铬 44.0.2403.157 @Cheslab 截图添加 请提供minimal reproducible example 它对我来说仍然可以正常工作,虽然它看起来不像你的截图中的样子 【参考方案1】:

显然你有半透明的文本区域,它与默认的灰色占位符颜色相结合,使文本完全不可读。您可以使用以下规则更改占位符的文本颜色

::-webkit-input-placeholder color:#c0392b;
::-moz-placeholder          color:#c0392b;/* Firefox 19+ */
:-moz-placeholder           color:#c0392b;/* Firefox 18- */
:-ms-input-placeholder      color:#c0392b;

【讨论】:

【参考方案2】:

我想这可能是以下两种情况之一: 1)您的 RGBA 您将最后一个值设置为 0,这将使文本完全不可见。试试:rgba(0,0,0,0.5);

2) 尝试在占位符文本中使用\n 换行,而不是实际换行。

Can you have multiline html5 placeholder text in a <textarea>?

【讨论】:

我将最后一个值更改为 5 但没有更改。我更新了原始帖子中的 CSS。 它出现在我的浏览器中,只是超级微弱。 @pwz2000 最后一个值应该在 0 和 1 之间,其中 0 表示不可见,1 表示完全可见。 50% 透明可以写成0.5 也可以写成.5

以上是关于占位符文本仅在 Internet Explorer 中可见的主要内容,如果未能解决你的问题,请参考以下文章

占位符不适用于 Internet Explorer

占位符 Internet Explorer 11 未显示

占位符属性在 Internet Explorer 中不起作用

为 Internet Explorer 设置占位符? [复制]

在 Internet Explorer 中制作隐形“占位符”很热门?

Internet Explorer 缺乏占位符支持,特别是密码字段