当前位置: 首页 > 知识库问答 >
问题:

使用CSS自动添加所需字段星号以形成输入

杜阳炎
2023-03-14

克服此代码无法按预期工作这一不幸事实的好方法是:

<div class="required">
    <label>Name:</label>
    <input type="text">
</div>

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

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

这一点很重要,不仅是为了防止我改变主意将星号放在何处,而且对于表单布局不允许星号位于标准位置的奇怪情况也很重要。它还可以用于检查表单或突出显示未正确完成的控件的验证。

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

有没有什么好的解决方案能够充分利用不可能实现的代码的所有或大部分优点?


共有3个答案

谭京
2023-03-14

虽然这是公认的答案,但请忽略我,使用下面建议的:after语法。我的解决方案无法访问。

通过使用星号图片的背景图像并设置标签/输入/外部div的背景和星号图像大小的填充,可以实现类似的结果。大概是这样的:

.required input {
   padding-right: 25px;
   background-image: url(...);
   background-position: right top;
}

这将把星号放在文本框内,但将星号放在div.required而不是上。所需的输入可能会更符合您的要求,即使有点不够优雅。

此方法不需要额外的输入。

陆栋
2023-03-14
.required label {
    font-weight: bold;
}
.required label:after {
    color: #e32;
    content: ' *';
    display:inline;
}

摆弄你的确切结构:http://jsfiddle.net/bQ859/

朱自明
2023-03-14

这就是你想要的吗?

http://jsfiddle.net/erqrN/1/

<label class="required">Name:</label>
<input type="text">

<style>
  .required:after {
    content:" *";
    color: red;
  }
</style>
.required:after {
  content:" *";
  color: red;
}
<label class="required">Name:</label>
<input type="text">
 类似资料:
  • 问题内容: 有什么好方法可以克服不幸的事实,即该代码无法按预期运行: 在理想情况下,所有必填项都将带有一个小星号,表明该字段是必需的。这种解决方案是不可能的,因为CSS插入在元素内容之后,而不是元素本身之后,但是很理想。在具有数千个必填字段的站点上,我可以将星号移动到输入的前面,而只更改一行(到),也可以将其移动到标签的末尾()或标签的前面,或收纳盒上的位置等… 这不仅很重要,不仅以防万一我改变主

  • 问题内容: 我不太确定如何处理此问题。我希望我能到达那里。 例如,我在一个页面上有一张充满地址的表。这些计数是动态的(可以是5或10或任何其他计数)。我希望可以在一页上进行编辑。 我的方法是创建wtforms一个表单编辑一个地址,并乘以它在Jinja2的和附加到HTML propertys并在 从itereation,这样我就可以提取人工数据的每一行,并把它放回我的形式,当我想评估一下。 因此,此

  • 问题内容: 我已经阅读了许多关于动态添加字段集的博客和文章,但是它们都给出了非常复杂的答案。我所需要的不是那么复杂。 我的HTML代码: 因此,用户将在该字段中输入一个整数值(我正在使用javascript检查验证)。在单击链接时,将出现相应数量的输入字段供他输入。我想使用javascript实现此目的。 我不是javascript专业人士。我在考虑如何通过链接检索用户在字段中填写的整数并显示相应

  • 我正在尝试制作一个程序,询问用户他们想要输入多少分数。然后,在他们输入成绩后,用星号打印出一个水平条形图,其中有多少成绩落在某个范围内(范围是0-9、10-19、20-29等到100)。现在,我的代码接受用户输入,存储输入的分数并打印介于指定范围内但不正确的值(即,如果两个分数介于80-89之间,它将打印80-89:*然后80-89:*在其下方,而不是80-89:*)。最后,我想不出比打印多个if

  • 问题内容: 可以说我有这段: 在此段中加双引号的CSS代码是什么?(因此它将呈现“这是我的段落”) 问题答案: 使用 伪元素 :

  • 问题内容: 在MySQL中,是否可以在自动递增前面附加一个字母。我的数据库中有几个表,其中一些表具有通过自动增量创建的唯一ID。我希望能够通过前面的字母来区分自动生成的数字。 这不是绝对必需的功能,但只会帮助简化小型任务。 问题答案: 不幸的是你不能那样做。至少不是在sql中。自动增量字段是整数类型,因此在其中添加字母会违反约束。 我希望这可以引导您朝正确的方向发展。