我正在寻找一种在占位符中设置星号样式的方法。
占位符中这样的纯文本不满足我:
你的邮件*
请注意,占位符文本是可变的,因此静态背景不会发挥作用
:after
工作,但你需要定位占位符而不是输入元素......然后你可以使用position: absolute;
和top, left
属性来移动*
你想要的任何地方......
演示(我不确定其他语法,但我已经在 webkit 上进行了测试,因为我使用的是 firefox < 17,所以如果任何浏览器出现问题,请告诉我)
HTML
<input type="text" placeholder="E-Mail" />
CSS
::-webkit-input-placeholder:after {
content: '*';
}
:-moz-placeholder:after { /* Firefox 18- */
content: '*';
}
::-moz-placeholder:after { /* Firefox 19+ */
content: '*';
}
:-ms-input-placeholder:after {
content: '*';
}
这应该可以解决问题。您可以到此处查找要添加到占位符的任何 HTML 实体。确保您的头部有一个使用字符集 UTF-8 的元标记。
<head>
<meta charset="utf-8">
</head>
<input type="text" id="email" class="form-control input-lg formData" placeholder="Your Email*"/>
更好的方法是将星号保留在占位符中作为后备,因为这仅适用于 Webkit 浏览器。因此,对于其他浏览器,您的用户不知道哪个字段是必填字段。
然后你面临另一个问题 - 占位符中有两个星号。这可以通过javascript很容易地修复。
我写了一篇关于这个的文章:http: //d.pr/1zQu
我发现最简单的方法是给输入字段一个背景图像:
<!DOCTYPE html>
<html>
<head>
<style>
input.mandatory {
padding: 2px;
height: 30px;
width: 200px;
background-image: url("http://www.fileformat.info/info/unicode/char/002a/asterisk.png");
background-position: 160px -10px;
background-repeat: no-repeat;
background-size: 30%;
}
</style>
</head>
<body>
<input class='mandatory' type='text' placeholder='Username'>
</body>
</html>