使用CSS自动添加“必填字段”星号以形成输入

前端之家收集整理的这篇文章主要介绍了使用CSS自动添加“必填字段”星号以形成输入前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是一个好的办法来克服这个不幸的事实,这个代码将无法按预期工作:
<div class="required">
    <label>Name:</label>
    <input type="text">
</div>

<style>
    .required input:after { content:"*"; }
</style>

在一个完美的世界中,所有需要的输入都会得到一个小星号,表示该字段是必需的。这个解决方案不可能,因为CSS被插入在元素内容之后,而不是在元素本身之后,但是类似的东西将是理想的。在具有上千个必填字段的网站上,我可以将输入前面的星号移动一行(:后::之前),或者将其移动到标签的末尾(.required label:after)或在标签前面,或在容纳盒上的位置等…

这是重要的,不只是在我改变我的想法,在哪里放置星号无处不在,而且对于奇怪的情况下,表单布局不允许在标准位置的星号。它也适用于检查表单或突出显示未正确完成的控件的验证。

最后,它不添加额外的标记

有没有任何好的解决方案具有所有或大部分的优点的不可能的代码

解决方法

可以通过使用星号的图片的背景图像并设置标签/输入/外部div的背景和星号图像的大小的填充来实现类似的结果。
这样的东西:
.required input {
   padding-right: 25px;
   background-image: url(...);
   background-position: right top;
}

这将把星号INSIDE在文本框中,但把相同的div.required而不是.required输入可能会更多的你正在寻找,如果一点不太优雅。

方法不需要额外的输入。

我不断得到这个帖子的奇数upvote。这个答案是OP的权利,但在大多数情况下可能不会是最好的选择。 The :after styntax is much better

猜你在找的CSS相关文章