Firefox上的样式占位符

时间:2013-08-23 09:38:34

标签: css firefox placeholder

我想要做的是让占位符出现在中心 50%top和50%left 上。它似乎在Chrome中很好,但在Firefox 23上却没有。我有一个例子here。 我的风格在这里:

textarea::-moz-placeholder {
     position: relative;
     font-size: 16px;
     font-style: italic;
     color: #ABABAB;
     top: 50%;
     text-align: center;
}

textarea::-webkit-input-placeholder {
    position: relative;
    font-size: 16px;
    font-style: italic;
    color: #ABABAB;
    top: 50%;
    text-align: center;
}

如果有人能提供帮助,我将不胜感激,谢谢!

2 个答案:

答案 0 :(得分:2)

我尝试了一些奇怪的东西,但这似乎很合适:
jsFiddle

您必须在required上添加textarea属性:

<textarea placeholder="Placeholder" required="required"></textarea>

以下是 CSS

textarea {
    height: 300px;
    width: 300px;
    /* center the text by default */
    text-align:center;
    resize: none;
}

/* align the text left when insert */
textarea:focus {text-align: left;} 
/* textarea not empty will have text align left */
textarea:not(:invalid) {text-align: left;}
/* remove the red shadow of firefox if textarea is empty */
textarea:invalid {box-shadow: none;}
/* hide the placeholder on focus */
textarea:focus::-moz-placeholder {opacity: 0;}

textarea::-moz-placeholder {
    position: relative;
    font-size: 16px;
    font-style: italic;
    color: #ABABAB;
    /* the main trick to center the placeholder vertically */
    line-height:300px;
}

textarea::-webkit-input-placeholder {
    position: relative;
    font-size: 16px;
    font-style: italic;
    color: #ABABAB;    
    line-height: 300px; 
    /* keep the placeholder centered under chrome */
    text-align: center;
}

答案 1 :(得分:0)

在你的css中使用填充而不是给出位置:

textarea::-moz-placeholder {
 position: relative;
 font-size: 16px;
 font-style: italic;
 color: #ABABAB;
 padding-top: 50px;
 padding-left:50px;
 text-align: center;
}

textarea::-webkit-input-placeholder {
position: relative;
font-size: 16px;
font-style: italic;
color: #ABABAB;
padding-top: 50px;
padding-left:50px;
text-align: center;
}

您可以根据需要调整填充。