在没有Javascript或HTML的情况下为表单输入赋值,就像outlook.com所做的那样

在没有Javascript或HTML的情况下为表单输入赋值,就像outlook.com所做的那样,javascript,html,css,Javascript,Html,Css,如果您看到outlook.com,就会看到一个输入框,其中有一个默认值,灰色的“Email、phone或Skype”。一旦开始在该输入框中键入,该默认值将消失,如果删除输入框中的所有文本,将再次出现默认提示。这是一个很好的方法来最小化我的网站上的文本,以避免每个表单的每个输入框都有一个单独的标签 现在,您可能认为这是由Javascript完成的,但事实并非如此。如果禁用浏览器的Javascript,outlook.com页面仍将显示相同的行为 我的问题是我怎么能做那样的事?ie在我的输入框上显示

如果您看到outlook.com,就会看到一个输入框,其中有一个默认值,灰色的“Email、phone或Skype”。一旦开始在该输入框中键入,该默认值将消失,如果删除输入框中的所有文本,将再次出现默认提示。这是一个很好的方法来最小化我的网站上的文本,以避免每个表单的每个输入框都有一个单独的标签

现在,您可能认为这是由Javascript完成的,但事实并非如此。如果禁用浏览器的Javascript,outlook.com页面仍将显示相同的行为

我的问题是我怎么能做那样的事?ie在我的输入框上显示一个默认值,然后在用户实际开始在这些框中输入时隐藏/删除它,并且全部不使用Javascript。我知道这一定是可能的,就像outlook.com所做的那样。但是怎么做呢


谢谢。

将其放入您的HTML代码中,看看
占位符的魔力

#魔术{
高度:20px;
宽度:200px;
填充物:5px;
}


这称为占位符文本。这是通过向HTML元素添加一个
占位符
属性来完成的。因此,它是由HTML完成的,没有它,您就无法真正完成。也许有一些CSS黑魔法可以做到这一点,但我不知道有哪一种能做到这一点——我见过一些黑客使用
::before
伪类来做类似的事情,但并非在所有情况下都能做到,通常更麻烦。@vlaz您也可以使用javascript模仿类似的行为。facebook的DraftJS就是一个很好的例子——他们在
contenteditable
div上使用自定义占位符。一切都是可能的。关于占位符tho的精彩解释@我知道你可以通过JS来完成。事实上,由于占位符是HTML5的一个属性,如果你想把它向后移植到像IE8这样的老浏览器,你必须使用JS。我把重点放在OP的(有点奇怪的)要求上,不使用HTML.OMG!非常感谢你@Sivcan Singh你救了我!