我构建了一个在占位符中包含问题的表单。现在我需要为必填字段添加一个红色星号。通常我们可以使用span
为星号提供不同的样式,但在我的示例中,我不能在占位符中添加span
。
* {
margin: 0;
padding: 0;
font-family: Arial, Helvetica, sans-serif;
}
body {
background-image: linear-gradient(rgba(0, 0, 0, 0.8), rgba(0, 0, 0, 0.8)), url(/assets/1.png);
background-position: center;
background-size: cover;
}
.container {
width: 80%;
max-width: 700px;
min-height: 520px;
height: auto;
margin: 8% auto;
background: #fff;
border-radius: 15px;
position: relative;
padding: 90px 0;
overflow: auto;
}
h2 {
text-align: center;
margin-bottom: 80px;
color: #333;
}
.container form {
width: 280px;
text-align: center;
margin: 0 auto;
position: absolute;
left: 0;
right: 0;
margin: auto;
}
form input {
width: 100%;
padding: 10px 5px;
margin: 10px 0;
border: 0;
border-bottom: 1px solid #999;
outline: none;
background: transparent;
}
::placeholder {
color: #777;
}
.btn-box {
width: 100%;
margin: 30px auto 30px auto;
text-align: center;
}
<div class="container">
<form class="form1">
<h2>Let's Start Building!</h2>
<input type="email" placeholder="E-mail" required>
<div class="btn-box">
<button class="BN" type="button">Next</button>
</div>
</form>
</div>
https://paulund.co.uk/add-required-asterisk-with-css有没有办法可以在我的代码中使用这个网站的方法?
4条答案
按热度按时间yx2lnoni1#
这并不理想,但是既然你说你不能添加元素,也没有提到使用JS,我尝试了一个只使用css的解决方案......同样,这不是一个理想的情况。我不知道在这个页面之前或之后发生了什么。我在包含按钮的div上使用
::before
添加了星号,并将其设置为position:relative
。而星号被设置为position:absolute
并移到输入字段旁边。我已经准备好了干草叉和火把。7d7tgy0s2#
如果您可以向HTML中添加,则与输入相关联的标签会很有帮助,例如,请参见MDN
将与元素关联具有一些主要优点:
标签文本不仅在视觉上与其对应的文本输入相关联;它也是以编程方式与之关联的。这意味着,例如,当用户聚焦于表单输入时,屏幕阅读器将读出标签,从而使辅助技术用户更容易理解应该输入哪些数据。您可以单击关联的标签以聚焦/激活输入,以及输入本身。这种增加的命中区域为试图激活输入的任何人提供了优势,包括那些使用触摸屏设备的人。
占位符消失后,它仍会保留,以便提醒用户需要什么,您可以设置它的格式。例如:
bvuwiixz3#
我可以很有把握地假设OP(akaOriginalPoster)不使用
<span>
的原因是因为<input>
有width: 100%
。每当display: inline
(即<span>
)或inline-block
在有width: 100%
的元素之前时,该元素就会被强制占用width: 100%
的前一个元素下面的空间。只需减小
<input>
的width
,然后使用<span>
<input>
具有width: 90%
和<span class='asterisk'>*</span>
。<fieldset>
和<legend>
的semantic elements。<div class="btn-box">
。margin
s,padding
,text-align
,和font-size
,这是禁欲主义更好的海事组织。type='button'
。请参见下面<form>
部分中的<button>
。此外,Demo B使用以下内容显示星号:
<label>
而不是<span>
。此外,Demo C使用以下内容显示星号:
::after
被分配给<fieldset>
元素,而不是像前面的演示中使用的<label>
或<span>
那样实际使用额外的元素。**Also Note:**The
font-size
s are absolute values (px
😬) which I would not normally use but the OP's demo is not responsive.<form>
中的<form>
<form>
中的<button>
在用户单击时具有继承行为,<form>
将根据HTML或JavaScript中设置的任何适用指令执行validate,然后如果一切正常,则提交数据。如果<button>
具有type="button"
,<button>
在没有JavaScript的情况下无法执行任何操作,这意味着HTML属性required
仅限于通过在悬停<input>
时显示消息来验证用户输入。在Demo B和Demo C中,
<button>
没有type="button"
。请输入*不是*电子邮件地址的内容,并将其行为与Demo A进行比较。在Demo B或Demo C中输入有效的电子邮件地址后,输入的数据消失,这意味着它已经提交(当然,它没有任何JavaScript,所以它不会提交到任何地方)。演示A
演示B
一个二个一个一个
演示C
j2qf4p5b4#
但是如何在打字时隐藏星星呢?